@effect/ai-openai 0.11.0 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/OpenAiEmbeddings/package.json +6 -0
- package/OpenAiTelemetry/package.json +6 -0
- package/dist/cjs/Generated.js +1910 -316
- package/dist/cjs/Generated.js.map +1 -1
- package/dist/cjs/OpenAiClient.js +88 -60
- package/dist/cjs/OpenAiClient.js.map +1 -1
- package/dist/cjs/OpenAiCompletions.js +82 -6
- package/dist/cjs/OpenAiCompletions.js.map +1 -1
- package/dist/cjs/OpenAiEmbeddings.js +95 -0
- package/dist/cjs/OpenAiEmbeddings.js.map +1 -0
- package/dist/cjs/OpenAiTelemetry.js +39 -0
- package/dist/cjs/OpenAiTelemetry.js.map +1 -0
- package/dist/cjs/index.js +5 -1
- package/dist/dts/Generated.d.ts +2789 -517
- package/dist/dts/Generated.d.ts.map +1 -1
- package/dist/dts/OpenAiClient.d.ts +15 -1
- package/dist/dts/OpenAiClient.d.ts.map +1 -1
- package/dist/dts/OpenAiCompletions.d.ts +8 -2
- package/dist/dts/OpenAiCompletions.d.ts.map +1 -1
- package/dist/dts/OpenAiConfig.d.ts +12 -1
- package/dist/dts/OpenAiConfig.d.ts.map +1 -1
- package/dist/dts/OpenAiEmbeddings.d.ts +51 -0
- package/dist/dts/OpenAiEmbeddings.d.ts.map +1 -0
- package/dist/dts/OpenAiTelemetry.d.ts +107 -0
- package/dist/dts/OpenAiTelemetry.d.ts.map +1 -0
- package/dist/dts/index.d.ts +8 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/Generated.js +1612 -311
- package/dist/esm/Generated.js.map +1 -1
- package/dist/esm/OpenAiClient.js +88 -60
- package/dist/esm/OpenAiClient.js.map +1 -1
- package/dist/esm/OpenAiCompletions.js +82 -6
- package/dist/esm/OpenAiCompletions.js.map +1 -1
- package/dist/esm/OpenAiEmbeddings.js +83 -0
- package/dist/esm/OpenAiEmbeddings.js.map +1 -0
- package/dist/esm/OpenAiTelemetry.js +30 -0
- package/dist/esm/OpenAiTelemetry.js.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +22 -6
- package/src/Generated.ts +1892 -398
- package/src/OpenAiClient.ts +118 -67
- package/src/OpenAiCompletions.ts +108 -14
- package/src/OpenAiEmbeddings.ts +149 -0
- package/src/OpenAiTelemetry.ts +159 -0
- package/src/index.ts +10 -0
package/dist/esm/OpenAiClient.js
CHANGED
|
@@ -32,59 +32,80 @@ export const make = options => Effect.gen(function* () {
|
|
|
32
32
|
const httpClientOk = HttpClient.filterStatusOk(httpClient);
|
|
33
33
|
const client = Generated.make(httpClient);
|
|
34
34
|
const streamRequest = request => httpClientOk.execute(request).pipe(Effect.map(r => r.stream), Stream.unwrapScoped, Stream.decodeText(), Stream.pipeThroughChannel(Sse.makeChannel()), Stream.takeWhile(event => event.data !== "[DONE]"), Stream.map(event => JSON.parse(event.data)));
|
|
35
|
-
const stream = request =>
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
role: choice.delta.role
|
|
64
|
-
};
|
|
65
|
-
parts[toolCall.index] = toolPart;
|
|
35
|
+
const stream = request => Stream.suspend(() => {
|
|
36
|
+
const finishReasons = [];
|
|
37
|
+
return streamRequest(HttpClientRequest.post("/chat/completions", {
|
|
38
|
+
body: HttpBody.unsafeJson({
|
|
39
|
+
...request,
|
|
40
|
+
stream: true,
|
|
41
|
+
stream_options: {
|
|
42
|
+
include_usage: true
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
})).pipe(Stream.mapAccum(new Map(), (acc, chunk) => {
|
|
46
|
+
const parts = [];
|
|
47
|
+
if (chunk.usage !== null) {
|
|
48
|
+
parts.push({
|
|
49
|
+
_tag: "Usage",
|
|
50
|
+
id: chunk.id,
|
|
51
|
+
model: chunk.model,
|
|
52
|
+
inputTokens: chunk.usage.prompt_tokens,
|
|
53
|
+
outputTokens: chunk.usage.completion_tokens,
|
|
54
|
+
finishReasons,
|
|
55
|
+
systemFingerprint: chunk.system_fingerprint,
|
|
56
|
+
serviceTier: chunk.service_tier
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
for (let i = 0; i < chunk.choices.length; i++) {
|
|
60
|
+
const choice = chunk.choices[i];
|
|
61
|
+
if (choice.finish_reason !== null) {
|
|
62
|
+
finishReasons.push(choice.finish_reason);
|
|
66
63
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
64
|
+
if ("content" in choice.delta && typeof choice.delta.content === "string") {
|
|
65
|
+
let part = acc.get(choice.index);
|
|
66
|
+
part = {
|
|
67
|
+
_tag: "Content",
|
|
68
|
+
content: choice.delta.content
|
|
69
|
+
};
|
|
70
|
+
acc.set(choice.index, part);
|
|
71
|
+
parts.push(part);
|
|
72
|
+
} else if ("tool_calls" in choice.delta && Array.isArray(choice.delta.tool_calls)) {
|
|
73
|
+
const parts = acc.get(choice.index) ?? [];
|
|
74
|
+
for (const toolCall of choice.delta.tool_calls) {
|
|
75
|
+
const part = parts[toolCall.index];
|
|
76
|
+
const toolPart = part?._tag === "ToolCall" ? {
|
|
77
|
+
...part,
|
|
78
|
+
arguments: part.arguments + toolCall.function.arguments
|
|
79
|
+
} : {
|
|
74
80
|
_tag: "ToolCall",
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
+
...toolCall,
|
|
82
|
+
...toolCall.function,
|
|
83
|
+
role: choice.delta.role
|
|
84
|
+
};
|
|
85
|
+
parts[toolCall.index] = toolPart;
|
|
86
|
+
}
|
|
87
|
+
acc.set(choice.index, parts);
|
|
88
|
+
} else if (choice.finish_reason === "tool_calls") {
|
|
89
|
+
const toolParts = acc.get(choice.index);
|
|
90
|
+
for (const part of toolParts) {
|
|
91
|
+
try {
|
|
92
|
+
const args = JSON.parse(part.arguments);
|
|
93
|
+
parts.push({
|
|
94
|
+
_tag: "ToolCall",
|
|
95
|
+
id: part.id,
|
|
96
|
+
name: part.name,
|
|
97
|
+
arguments: args
|
|
98
|
+
});
|
|
99
|
+
// eslint-disable-next-line no-empty
|
|
100
|
+
} catch {}
|
|
101
|
+
}
|
|
81
102
|
}
|
|
82
103
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}))
|
|
87
|
-
})
|
|
104
|
+
return [acc, parts.length === 0 ? Option.none() : Option.some(new StreamChunk({
|
|
105
|
+
parts
|
|
106
|
+
}))];
|
|
107
|
+
}), Stream.filterMap(identity));
|
|
108
|
+
});
|
|
88
109
|
return OpenAiClient.of({
|
|
89
110
|
client,
|
|
90
111
|
streamRequest,
|
|
@@ -123,17 +144,24 @@ export class StreamChunk extends Data.Class {
|
|
|
123
144
|
});
|
|
124
145
|
}
|
|
125
146
|
const part = this.parts[0];
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
147
|
+
switch (part._tag) {
|
|
148
|
+
case "Content":
|
|
149
|
+
return AiResponse.AiResponse.fromText({
|
|
150
|
+
role: AiRole.model,
|
|
151
|
+
content: part.content
|
|
152
|
+
});
|
|
153
|
+
case "ToolCall":
|
|
154
|
+
return new AiResponse.AiResponse({
|
|
155
|
+
role: AiRole.model,
|
|
156
|
+
parts: Chunk.of(AiResponse.ToolCallPart.fromUnknown({
|
|
157
|
+
id: part.id,
|
|
158
|
+
name: part.name,
|
|
159
|
+
params: part.arguments
|
|
160
|
+
}))
|
|
161
|
+
});
|
|
162
|
+
case "Usage":
|
|
163
|
+
return AiResponse.AiResponse.empty;
|
|
164
|
+
}
|
|
137
165
|
}
|
|
138
166
|
}
|
|
139
167
|
//# sourceMappingURL=OpenAiClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiClient.js","names":["AiResponse","AiRole","Sse","HttpBody","HttpClient","HttpClientRequest","Chunk","Config","Context","Data","Effect","identity","Layer","Option","Redacted","Stream","Generated","OpenAiClient","Tag","make","options","gen","httpClient","pipe","mapRequest","request","prependUrl","apiUrl","apiKey","bearerToken","organizationId","undefined","setHeader","value","projectId","acceptJson","transformClient","httpClientOk","filterStatusOk","client","streamRequest","execute","map","r","stream","unwrapScoped","decodeText","pipeThroughChannel","makeChannel","takeWhile","event","data","JSON","parse","post","body","unsafeJson","mapAccum","Map","acc","chunk","parts","i","choices","length","choice","delta","content","part","get","index","
|
|
1
|
+
{"version":3,"file":"OpenAiClient.js","names":["AiResponse","AiRole","Sse","HttpBody","HttpClient","HttpClientRequest","Chunk","Config","Context","Data","Effect","identity","Layer","Option","Redacted","Stream","Generated","OpenAiClient","Tag","make","options","gen","httpClient","pipe","mapRequest","request","prependUrl","apiUrl","apiKey","bearerToken","organizationId","undefined","setHeader","value","projectId","acceptJson","transformClient","httpClientOk","filterStatusOk","client","streamRequest","execute","map","r","stream","unwrapScoped","decodeText","pipeThroughChannel","makeChannel","takeWhile","event","data","JSON","parse","suspend","finishReasons","post","body","unsafeJson","stream_options","include_usage","mapAccum","Map","acc","chunk","parts","usage","push","_tag","id","model","inputTokens","prompt_tokens","outputTokens","completion_tokens","systemFingerprint","system_fingerprint","serviceTier","service_tier","i","choices","length","choice","finish_reason","delta","content","part","get","index","set","Array","isArray","tool_calls","toolCall","toolPart","arguments","function","role","toolParts","args","name","none","some","StreamChunk","filterMap","of","layer","effect","layerConfig","unwrap","flatMap","Class","text","asAiResponse","fromText","ToolCallPart","fromUnknown","params","empty"],"sources":["../../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -8,9 +8,11 @@ import * as Completions from "@effect/ai/Completions";
|
|
|
8
8
|
import * as Arr from "effect/Array";
|
|
9
9
|
import * as Effect from "effect/Effect";
|
|
10
10
|
import * as Layer from "effect/Layer";
|
|
11
|
+
import * as Predicate from "effect/Predicate";
|
|
11
12
|
import * as Stream from "effect/Stream";
|
|
12
13
|
import { OpenAiClient } from "./OpenAiClient.js";
|
|
13
14
|
import { OpenAiConfig } from "./OpenAiConfig.js";
|
|
15
|
+
import { addGenAIAnnotations } from "./OpenAiTelemetry.js";
|
|
14
16
|
import * as OpenAiTokenizer from "./OpenAiTokenizer.js";
|
|
15
17
|
const make = options => Effect.gen(function* () {
|
|
16
18
|
const client = yield* OpenAiClient;
|
|
@@ -54,21 +56,30 @@ const make = options => Effect.gen(function* () {
|
|
|
54
56
|
}));
|
|
55
57
|
};
|
|
56
58
|
return yield* Completions.make({
|
|
57
|
-
create(
|
|
58
|
-
|
|
59
|
+
create({
|
|
60
|
+
span,
|
|
61
|
+
...options
|
|
62
|
+
}) {
|
|
63
|
+
return makeRequest(options).pipe(Effect.tap(request => annotateRequest(span, request)), Effect.flatMap(client.client.createChatCompletion), Effect.tap(response => annotateChatResponse(span, response)), Effect.flatMap(response => makeResponse(response, "create", options.tools.length === 1 && options.tools[0].structured ? options.tools[0] : undefined)), Effect.catchAll(cause => Effect.fail(new AiError({
|
|
59
64
|
module: "OpenAiCompletions",
|
|
60
65
|
method: "create",
|
|
61
66
|
description: "An error occurred",
|
|
62
67
|
cause
|
|
63
|
-
})))
|
|
68
|
+
}))));
|
|
64
69
|
},
|
|
65
|
-
stream(
|
|
66
|
-
|
|
70
|
+
stream({
|
|
71
|
+
span,
|
|
72
|
+
...options
|
|
73
|
+
}) {
|
|
74
|
+
return makeRequest(options).pipe(Effect.tap(request => annotateRequest(span, request)), Effect.map(client.stream), Stream.unwrap, Stream.tap(response => {
|
|
75
|
+
annotateStreamResponse(span, response);
|
|
76
|
+
return Effect.void;
|
|
77
|
+
}), Stream.map(response => response.asAiResponse), Stream.catchAll(cause => Effect.fail(new AiError({
|
|
67
78
|
module: "OpenAiCompletions",
|
|
68
79
|
method: "stream",
|
|
69
80
|
description: "An error occurred",
|
|
70
81
|
cause
|
|
71
|
-
})))
|
|
82
|
+
}))));
|
|
72
83
|
}
|
|
73
84
|
});
|
|
74
85
|
});
|
|
@@ -213,4 +224,69 @@ const makeSystemMessage = content => {
|
|
|
213
224
|
};
|
|
214
225
|
};
|
|
215
226
|
const safeName = name => name.replace(/[^a-zA-Z0-9_-]/g, "_").replace(/_+/, "_");
|
|
227
|
+
const annotateRequest = (span, request) => {
|
|
228
|
+
addGenAIAnnotations(span, {
|
|
229
|
+
system: "openai",
|
|
230
|
+
operation: {
|
|
231
|
+
name: "chat"
|
|
232
|
+
},
|
|
233
|
+
request: {
|
|
234
|
+
model: request.model,
|
|
235
|
+
temperature: request.temperature,
|
|
236
|
+
topP: request.top_p,
|
|
237
|
+
maxTokens: request.max_tokens,
|
|
238
|
+
stopSequences: Arr.ensure(request.stop).filter(Predicate.isNotNullable),
|
|
239
|
+
frequencyPenalty: request.frequency_penalty,
|
|
240
|
+
presencePenalty: request.presence_penalty,
|
|
241
|
+
seed: request.seed
|
|
242
|
+
},
|
|
243
|
+
openai: {
|
|
244
|
+
request: {
|
|
245
|
+
responseFormat: request.response_format?.type,
|
|
246
|
+
serviceTier: request.service_tier
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
const annotateChatResponse = (span, response) => {
|
|
252
|
+
addGenAIAnnotations(span, {
|
|
253
|
+
response: {
|
|
254
|
+
id: response.id,
|
|
255
|
+
model: response.model,
|
|
256
|
+
finishReasons: response.choices.map(choice => choice.finish_reason)
|
|
257
|
+
},
|
|
258
|
+
usage: {
|
|
259
|
+
inputTokens: response.usage?.prompt_tokens,
|
|
260
|
+
outputTokens: response.usage?.completion_tokens
|
|
261
|
+
},
|
|
262
|
+
openai: {
|
|
263
|
+
response: {
|
|
264
|
+
systemFingerprint: response.system_fingerprint,
|
|
265
|
+
serviceTier: response.service_tier
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
};
|
|
270
|
+
const annotateStreamResponse = (span, response) => {
|
|
271
|
+
const usage = response.parts.find(part => part._tag === "Usage");
|
|
272
|
+
if (Predicate.isNotNullable(usage)) {
|
|
273
|
+
addGenAIAnnotations(span, {
|
|
274
|
+
response: {
|
|
275
|
+
id: usage.id,
|
|
276
|
+
model: usage.model,
|
|
277
|
+
finishReasons: usage.finishReasons
|
|
278
|
+
},
|
|
279
|
+
usage: {
|
|
280
|
+
inputTokens: usage.inputTokens,
|
|
281
|
+
outputTokens: usage.outputTokens
|
|
282
|
+
},
|
|
283
|
+
openai: {
|
|
284
|
+
response: {
|
|
285
|
+
systemFingerprint: usage.systemFingerprint,
|
|
286
|
+
serviceTier: usage.serviceTier
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
};
|
|
216
292
|
//# sourceMappingURL=OpenAiCompletions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiCompletions.js","names":["AiError","AiResponse","AiRole","Completions","Arr","Effect","Layer","Stream","OpenAiClient","OpenAiConfig","OpenAiTokenizer","make","options","gen","client","config","getOrUndefined","makeRequest","input","required","system","tools","useStructured","length","structured","map","context","model","unsafeMap","get","key","messages","makeMessages","response_format","type","json_schema","strict","name","description","schema","parameters","undefined","tool","function","tool_choice","create","pipe","flatMap","createChatCompletion","catchAll","cause","fail","module","method","response","makeResponse","stream","unwrap","asAiResponse","layerCompletions","effect","layer","merge","_tag","makeSystemMessage","value","message","push","convertMessage","formatRole","role","safeName","parts","toolCalls","flushContent","content","flushToolCalls","tool_calls","part","id","arguments","JSON","stringify","params","tool_call_id","toolCallId","makeContentPart","image_url","url","asDataUri","detail","quality","text","structuredTool","head","choices","mapError","choice","empty","withToolCallsJson","res","fromText","toolCall","succeed","replace"],"sources":["../../src/OpenAiCompletions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OpenAiCompletions.js","names":["AiError","AiResponse","AiRole","Completions","Arr","Effect","Layer","Predicate","Stream","OpenAiClient","OpenAiConfig","addGenAIAnnotations","OpenAiTokenizer","make","options","gen","client","config","getOrUndefined","makeRequest","input","required","system","tools","useStructured","length","structured","map","context","model","unsafeMap","get","key","messages","makeMessages","response_format","type","json_schema","strict","name","description","schema","parameters","undefined","tool","function","tool_choice","create","span","pipe","tap","request","annotateRequest","flatMap","createChatCompletion","response","annotateChatResponse","makeResponse","catchAll","cause","fail","module","method","stream","unwrap","annotateStreamResponse","void","asAiResponse","layerCompletions","effect","layer","merge","_tag","makeSystemMessage","value","message","push","convertMessage","formatRole","role","safeName","parts","toolCalls","flushContent","content","flushToolCalls","tool_calls","part","id","arguments","JSON","stringify","params","tool_call_id","toolCallId","makeContentPart","image_url","url","asDataUri","detail","quality","text","structuredTool","head","choices","mapError","choice","empty","withToolCallsJson","res","fromText","toolCall","succeed","replace","operation","temperature","topP","top_p","maxTokens","max_tokens","stopSequences","ensure","stop","filter","isNotNullable","frequencyPenalty","frequency_penalty","presencePenalty","presence_penalty","seed","openai","responseFormat","serviceTier","service_tier","finishReasons","finish_reason","usage","inputTokens","prompt_tokens","outputTokens","completion_tokens","systemFingerprint","system_fingerprint","find"],"sources":["../../src/OpenAiCompletions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import { AiError } from "@effect/ai/AiError";
|
|
5
|
+
import * as Embeddings from "@effect/ai/Embeddings";
|
|
6
|
+
import * as Context from "effect/Context";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as Layer from "effect/Layer";
|
|
9
|
+
import { OpenAiClient } from "./OpenAiClient.js";
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category tags
|
|
13
|
+
*/
|
|
14
|
+
export class OpenAiEmbeddingsConfig extends /*#__PURE__*/Context.Tag("@effect/ai-openai/OpenAiEmbeddings/Config")() {
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
static getOrUndefined = /*#__PURE__*/Effect.map( /*#__PURE__*/Effect.context(), context => context.unsafeMap.get(OpenAiEmbeddingsConfig.key));
|
|
19
|
+
}
|
|
20
|
+
const makeRequest = (client, input, parentConfig, options) => Effect.context().pipe(Effect.flatMap(context => {
|
|
21
|
+
const localConfig = context.unsafeMap.get(OpenAiEmbeddingsConfig.key);
|
|
22
|
+
return client.client.createEmbedding({
|
|
23
|
+
input,
|
|
24
|
+
model: options.model,
|
|
25
|
+
...parentConfig,
|
|
26
|
+
...localConfig
|
|
27
|
+
});
|
|
28
|
+
}), Effect.map(response => response.data.map(({
|
|
29
|
+
embedding,
|
|
30
|
+
index
|
|
31
|
+
}) => ({
|
|
32
|
+
embeddings: embedding,
|
|
33
|
+
index
|
|
34
|
+
}))), Effect.mapError(cause => {
|
|
35
|
+
const common = {
|
|
36
|
+
module: "OpenAiEmbeddings",
|
|
37
|
+
method: "embed",
|
|
38
|
+
cause
|
|
39
|
+
};
|
|
40
|
+
if (cause._tag === "ParseError") {
|
|
41
|
+
return new AiError({
|
|
42
|
+
description: "Malformed input detected in request",
|
|
43
|
+
...common
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return new AiError({
|
|
47
|
+
description: "An error occurred with the OpenAI API",
|
|
48
|
+
...common
|
|
49
|
+
});
|
|
50
|
+
}));
|
|
51
|
+
const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
52
|
+
const client = yield* OpenAiClient;
|
|
53
|
+
const parentConfig = yield* OpenAiEmbeddingsConfig.getOrUndefined;
|
|
54
|
+
return yield* Embeddings.make({
|
|
55
|
+
cache: options.cache,
|
|
56
|
+
maxBatchSize: options.maxBatchSize ?? 2048,
|
|
57
|
+
embedMany(input) {
|
|
58
|
+
return makeRequest(client, input, parentConfig, options);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
const makeDataLoader = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
63
|
+
const client = yield* OpenAiClient;
|
|
64
|
+
const parentConfig = yield* OpenAiEmbeddingsConfig.getOrUndefined;
|
|
65
|
+
return yield* Embeddings.makeDataLoader({
|
|
66
|
+
window: options.window,
|
|
67
|
+
maxBatchSize: options.maxBatchSize ?? 2048,
|
|
68
|
+
embedMany(input) {
|
|
69
|
+
return makeRequest(client, input, parentConfig, options);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* @since 1.0.0
|
|
75
|
+
* @category layers
|
|
76
|
+
*/
|
|
77
|
+
export const layer = options => Layer.effect(Embeddings.Embeddings, make(options));
|
|
78
|
+
/**
|
|
79
|
+
* @since 1.0.0
|
|
80
|
+
* @category layers
|
|
81
|
+
*/
|
|
82
|
+
export const layerDataLoader = options => Layer.scoped(Embeddings.Embeddings, makeDataLoader(options));
|
|
83
|
+
//# sourceMappingURL=OpenAiEmbeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiEmbeddings.js","names":["AiError","Embeddings","Context","Effect","Layer","OpenAiClient","OpenAiEmbeddingsConfig","Tag","getOrUndefined","map","context","unsafeMap","get","key","makeRequest","client","input","parentConfig","options","pipe","flatMap","localConfig","createEmbedding","model","response","data","embedding","index","embeddings","mapError","cause","common","module","method","_tag","description","make","fnUntraced","cache","maxBatchSize","embedMany","makeDataLoader","window","layer","effect","layerDataLoader","scoped"],"sources":["../../src/OpenAiEmbeddings.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,OAAO,KAAKC,UAAU,MAAM,uBAAuB;AACnD,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AAEzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAGrC,SAASC,YAAY,QAAQ,mBAAmB;AAQhD;;;;AAIA,OAAM,MAAOC,sBAAuB,sBAAQJ,OAAO,CAACK,GAAG,CAAC,2CAA2C,CAAC,EAUjG;EACD;;;EAGA,OAAgBC,cAAc,gBAAqEL,MAAM,CAACM,GAAG,eAC3GN,MAAM,CAACO,OAAO,EAAS,EACtBA,OAAO,IAAKA,OAAO,CAACC,SAAS,CAACC,GAAG,CAACN,sBAAsB,CAACO,GAAG,CAAC,CAC/D;;AAGH,MAAMC,WAAW,GAAGA,CAClBC,MAA4B,EAC5BC,KAA4B,EAC5BC,YAA+D,EAC/DC,OAOC,KAEDf,MAAM,CAACO,OAAO,EAAS,CAACS,IAAI,CAC1BhB,MAAM,CAACiB,OAAO,CAAEV,OAAO,IAAI;EACzB,MAAMW,WAAW,GAAGX,OAAO,CAACC,SAAS,CAACC,GAAG,CAACN,sBAAsB,CAACO,GAAG,CAAC;EACrE,OAAOE,MAAM,CAACA,MAAM,CAACO,eAAe,CAAC;IACnCN,KAAK;IACLO,KAAK,EAAEL,OAAO,CAACK,KAAK;IACpB,GAAGN,YAAY;IACf,GAAGI;GACJ,CAAC;AACJ,CAAC,CAAC,EACFlB,MAAM,CAACM,GAAG,CAAEe,QAAQ,IAClBA,QAAQ,CAACC,IAAI,CAAChB,GAAG,CAAC,CAAC;EAAEiB,SAAS;EAAEC;AAAK,CAAE,MAAM;EAC3CC,UAAU,EAAEF,SAA0B;EACtCC;CACD,CAAC,CAAC,CACJ,EACDxB,MAAM,CAAC0B,QAAQ,CAAEC,KAAK,IAAI;EACxB,MAAMC,MAAM,GAAG;IACbC,MAAM,EAAE,kBAAkB;IAC1BC,MAAM,EAAE,OAAO;IACfH;GACD;EACD,IAAIA,KAAK,CAACI,IAAI,KAAK,YAAY,EAAE;IAC/B,OAAO,IAAIlC,OAAO,CAAC;MACjBmC,WAAW,EAAE,qCAAqC;MAClD,GAAGJ;KACJ,CAAC;EACJ;EACA,OAAO,IAAI/B,OAAO,CAAC;IACjBmC,WAAW,EAAE,uCAAuC;IACpD,GAAGJ;GACJ,CAAC;AACJ,CAAC,CAAC,CACH;AAEH,MAAMK,IAAI,gBAAGjC,MAAM,CAACkC,UAAU,CAAC,WAAUnB,OAOxC;EACC,MAAMH,MAAM,GAAG,OAAOV,YAAY;EAClC,MAAMY,YAAY,GAAG,OAAOX,sBAAsB,CAACE,cAAc;EACjE,OAAO,OAAOP,UAAU,CAACmC,IAAI,CAAC;IAC5BE,KAAK,EAAEpB,OAAO,CAACoB,KAAK;IACpBC,YAAY,EAAErB,OAAO,CAACqB,YAAY,IAAI,IAAI;IAC1CC,SAASA,CAACxB,KAAK;MACb,OAAOF,WAAW,CAACC,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEC,OAAO,CAAC;IAC1D;GACD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAMuB,cAAc,gBAAGtC,MAAM,CAACkC,UAAU,CAAC,WAAUnB,OAIlD;EACC,MAAMH,MAAM,GAAG,OAAOV,YAAY;EAClC,MAAMY,YAAY,GAAG,OAAOX,sBAAsB,CAACE,cAAc;EACjE,OAAO,OAAOP,UAAU,CAACwC,cAAc,CAAC;IACtCC,MAAM,EAAExB,OAAO,CAACwB,MAAM;IACtBH,YAAY,EAAErB,OAAO,CAACqB,YAAY,IAAI,IAAI;IAC1CC,SAASA,CAACxB,KAAK;MACb,OAAOF,WAAW,CAACC,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEC,OAAO,CAAC;IAC1D;GACD,CAAC;AACJ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMyB,KAAK,GAAIzB,OAOrB,IAA8Dd,KAAK,CAACwC,MAAM,CAAC3C,UAAU,CAACA,UAAU,EAAEmC,IAAI,CAAClB,OAAO,CAAC,CAAC;AAEjH;;;;AAIA,OAAO,MAAM2B,eAAe,GAAI3B,OAI/B,IACCd,KAAK,CAAC0C,MAAM,CAAC7C,UAAU,CAACA,UAAU,EAAEwC,cAAc,CAACvB,OAAO,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as AiTelemetry from "@effect/ai/AiTelemetry";
|
|
5
|
+
import { dual } from "effect/Function";
|
|
6
|
+
import * as Predicate from "effect/Predicate";
|
|
7
|
+
import * as String from "effect/String";
|
|
8
|
+
const addOpenAiRequestAttributes = /*#__PURE__*/AiTelemetry.addSpanAttributes("gen_ai.openai.request", String.camelToSnake);
|
|
9
|
+
const addOpenAiResponseAttributes = /*#__PURE__*/AiTelemetry.addSpanAttributes("gen_ai.openai.response", String.camelToSnake);
|
|
10
|
+
/**
|
|
11
|
+
* Applies the specified OpenAi GenAI telemetry attributes to the provided
|
|
12
|
+
* `Span`.
|
|
13
|
+
*
|
|
14
|
+
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
15
|
+
*
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @since utilities
|
|
18
|
+
*/
|
|
19
|
+
export const addGenAIAnnotations = /*#__PURE__*/dual(2, (span, options) => {
|
|
20
|
+
AiTelemetry.addGenAIAnnotations(span, options);
|
|
21
|
+
if (Predicate.isNotNullable(options.openai)) {
|
|
22
|
+
if (Predicate.isNotNullable(options.openai.request)) {
|
|
23
|
+
addOpenAiRequestAttributes(span, options.openai.request);
|
|
24
|
+
}
|
|
25
|
+
if (Predicate.isNotNullable(options.openai.response)) {
|
|
26
|
+
addOpenAiResponseAttributes(span, options.openai.response);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=OpenAiTelemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiTelemetry.js","names":["AiTelemetry","dual","Predicate","String","addOpenAiRequestAttributes","addSpanAttributes","camelToSnake","addOpenAiResponseAttributes","addGenAIAnnotations","span","options","isNotNullable","openai","request","response"],"sources":["../../src/OpenAiTelemetry.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,WAAW,MAAM,wBAAwB;AACrD,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAyGvC,MAAMC,0BAA0B,gBAAGJ,WAAW,CAACK,iBAAiB,CAAC,uBAAuB,EAAEF,MAAM,CAACG,YAAY,CAE5G;AACD,MAAMC,2BAA2B,gBAAGP,WAAW,CAACK,iBAAiB,CAAC,wBAAwB,EAAEF,MAAM,CAACG,YAAY,CAE9G;AAED;;;;;;;;;AASA,OAAO,MAAME,mBAAmB,gBAAGP,IAAI,CAqBrC,CAAC,EAAE,CAACQ,IAAI,EAAEC,OAAO,KAAI;EACrBV,WAAW,CAACQ,mBAAmB,CAACC,IAAI,EAAEC,OAAO,CAAC;EAC9C,IAAIR,SAAS,CAACS,aAAa,CAACD,OAAO,CAACE,MAAM,CAAC,EAAE;IAC3C,IAAIV,SAAS,CAACS,aAAa,CAACD,OAAO,CAACE,MAAM,CAACC,OAAO,CAAC,EAAE;MACnDT,0BAA0B,CAACK,IAAI,EAAEC,OAAO,CAACE,MAAM,CAACC,OAAO,CAAC;IAC1D;IACA,IAAIX,SAAS,CAACS,aAAa,CAACD,OAAO,CAACE,MAAM,CAACE,QAAQ,CAAC,EAAE;MACpDP,2BAA2B,CAACE,IAAI,EAAEC,OAAO,CAACE,MAAM,CAACE,QAAQ,CAAC;IAC5D;EACF;AACF,CAAC,CAAC","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -14,6 +14,14 @@ export * as OpenAiCompletions from "./OpenAiCompletions.js";
|
|
|
14
14
|
* @since 1.0.0
|
|
15
15
|
*/
|
|
16
16
|
export * as OpenAiConfig from "./OpenAiConfig.js";
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*/
|
|
20
|
+
export * as OpenAiEmbeddings from "./OpenAiEmbeddings.js";
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
*/
|
|
24
|
+
export * as OpenAiTelemetry from "./OpenAiTelemetry.js";
|
|
17
25
|
/**
|
|
18
26
|
* @since 1.0.0
|
|
19
27
|
*/
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Generated","OpenAiClient","OpenAiCompletions","OpenAiConfig","OpenAiTokenizer"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAE3D;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Generated","OpenAiClient","OpenAiCompletions","OpenAiConfig","OpenAiEmbeddings","OpenAiTelemetry","OpenAiTokenizer"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAE3D;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/ai-openai",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"description": "Effect modules for working with AI apis",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
},
|
|
11
11
|
"sideEffects": [],
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"gpt-tokenizer": "^2.
|
|
13
|
+
"gpt-tokenizer": "^2.8.1"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@effect/ai": "^0.8.
|
|
17
|
-
"@effect/experimental": "^0.39.
|
|
18
|
-
"@effect/platform": "^0.75.
|
|
19
|
-
"effect": "^3.12.
|
|
16
|
+
"@effect/ai": "^0.8.2",
|
|
17
|
+
"@effect/experimental": "^0.39.2",
|
|
18
|
+
"@effect/platform": "^0.75.2",
|
|
19
|
+
"effect": "^3.12.8"
|
|
20
20
|
},
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"provenance": true
|
|
@@ -51,6 +51,16 @@
|
|
|
51
51
|
"import": "./dist/esm/OpenAiConfig.js",
|
|
52
52
|
"default": "./dist/cjs/OpenAiConfig.js"
|
|
53
53
|
},
|
|
54
|
+
"./OpenAiEmbeddings": {
|
|
55
|
+
"types": "./dist/dts/OpenAiEmbeddings.d.ts",
|
|
56
|
+
"import": "./dist/esm/OpenAiEmbeddings.js",
|
|
57
|
+
"default": "./dist/cjs/OpenAiEmbeddings.js"
|
|
58
|
+
},
|
|
59
|
+
"./OpenAiTelemetry": {
|
|
60
|
+
"types": "./dist/dts/OpenAiTelemetry.d.ts",
|
|
61
|
+
"import": "./dist/esm/OpenAiTelemetry.js",
|
|
62
|
+
"default": "./dist/cjs/OpenAiTelemetry.js"
|
|
63
|
+
},
|
|
54
64
|
"./OpenAiTokenizer": {
|
|
55
65
|
"types": "./dist/dts/OpenAiTokenizer.d.ts",
|
|
56
66
|
"import": "./dist/esm/OpenAiTokenizer.js",
|
|
@@ -71,6 +81,12 @@
|
|
|
71
81
|
"OpenAiConfig": [
|
|
72
82
|
"./dist/dts/OpenAiConfig.d.ts"
|
|
73
83
|
],
|
|
84
|
+
"OpenAiEmbeddings": [
|
|
85
|
+
"./dist/dts/OpenAiEmbeddings.d.ts"
|
|
86
|
+
],
|
|
87
|
+
"OpenAiTelemetry": [
|
|
88
|
+
"./dist/dts/OpenAiTelemetry.d.ts"
|
|
89
|
+
],
|
|
74
90
|
"OpenAiTokenizer": [
|
|
75
91
|
"./dist/dts/OpenAiTokenizer.d.ts"
|
|
76
92
|
]
|