@effect/ai-openai 4.0.0-beta.33 → 4.0.0-beta.34
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/dist/OpenAiClient.d.ts.map +1 -1
- package/dist/OpenAiClient.js +59 -10
- package/dist/OpenAiClient.js.map +1 -1
- package/dist/OpenAiEmbeddingModel.d.ts +85 -0
- package/dist/OpenAiEmbeddingModel.d.ts.map +1 -0
- package/dist/OpenAiEmbeddingModel.js +116 -0
- package/dist/OpenAiEmbeddingModel.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/OpenAiClient.ts +64 -9
- package/src/OpenAiEmbeddingModel.ts +200 -0
- package/src/index.ts +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiClient.d.ts","sourceRoot":"","sources":["../src/OpenAiClient.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"OpenAiClient.d.ts","sourceRoot":"","sources":["../src/OpenAiClient.ts"],"names":[],"mappings":"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"}
|
package/dist/OpenAiClient.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import * as Array from "effect/Array";
|
|
10
10
|
import * as Cause from "effect/Cause";
|
|
11
11
|
import * as Effect from "effect/Effect";
|
|
12
|
+
import * as Exit from "effect/Exit";
|
|
12
13
|
import { identity } from "effect/Function";
|
|
13
14
|
import * as Function from "effect/Function";
|
|
14
15
|
import * as Layer from "effect/Layer";
|
|
@@ -180,13 +181,35 @@ const makeSocket = /*#__PURE__*/Effect.gen(function* () {
|
|
|
180
181
|
description: "Failed to send message over WebSocket"
|
|
181
182
|
})
|
|
182
183
|
})));
|
|
184
|
+
const cancel = Effect.suspend(() => write(JSON.stringify({
|
|
185
|
+
type: "response.cancel"
|
|
186
|
+
}))).pipe(Effect.ignore);
|
|
187
|
+
const reset = () => {
|
|
188
|
+
currentQueue = null;
|
|
189
|
+
};
|
|
183
190
|
const decoder = new TextDecoder();
|
|
184
|
-
const decode = Schema.decodeUnknownSync(Schema.fromJsonString(Generated.ResponseStreamEvent));
|
|
185
191
|
yield* socket.runRaw(msg => {
|
|
186
192
|
if (!currentQueue) return;
|
|
187
193
|
const text = typeof msg === "string" ? msg : decoder.decode(msg);
|
|
188
194
|
try {
|
|
189
|
-
|
|
195
|
+
const event = decodeEvent(text);
|
|
196
|
+
if (event.type === "error") {
|
|
197
|
+
tracker.clearUnsafe();
|
|
198
|
+
}
|
|
199
|
+
if (event.type === "error" && "status" in event) {
|
|
200
|
+
return Queue.fail(currentQueue, AiError.make({
|
|
201
|
+
module: "OpenAiClient",
|
|
202
|
+
method: "createResponseStream",
|
|
203
|
+
reason: AiError.reasonFromHttpStatus({
|
|
204
|
+
status: event.status,
|
|
205
|
+
metadata: {
|
|
206
|
+
...event.error,
|
|
207
|
+
description: event.error.message
|
|
208
|
+
}
|
|
209
|
+
})
|
|
210
|
+
}));
|
|
211
|
+
}
|
|
212
|
+
Queue.offerUnsafe(currentQueue, event);
|
|
190
213
|
} catch {}
|
|
191
214
|
}).pipe(Effect.catchCause(cause => {
|
|
192
215
|
tracker.clearUnsafe();
|
|
@@ -205,11 +228,13 @@ const makeSocket = /*#__PURE__*/Effect.gen(function* () {
|
|
|
205
228
|
description: Cause.pretty(cause)
|
|
206
229
|
})
|
|
207
230
|
})) : Effect.void;
|
|
208
|
-
}), Effect.
|
|
231
|
+
}), Effect.repeat(Schedule.exponential(100, 1.5).pipe(Schedule.either(Schedule.spaced({
|
|
209
232
|
seconds: 5
|
|
210
|
-
})), Schedule.jittered)), Effect.
|
|
233
|
+
})), Schedule.jittered)), Effect.forkScoped);
|
|
211
234
|
return {
|
|
212
|
-
send
|
|
235
|
+
send,
|
|
236
|
+
cancel,
|
|
237
|
+
reset
|
|
213
238
|
};
|
|
214
239
|
})
|
|
215
240
|
});
|
|
@@ -218,20 +243,44 @@ const makeSocket = /*#__PURE__*/Effect.gen(function* () {
|
|
|
218
243
|
return OpenAiSocket.serviceMap({
|
|
219
244
|
createResponseStream(options) {
|
|
220
245
|
const stream = Effect.gen(function* () {
|
|
221
|
-
yield* Effect.acquireRelease(semaphore.take(1), () => semaphore.release(1)
|
|
246
|
+
yield* Effect.acquireRelease(semaphore.take(1), () => semaphore.release(1), {
|
|
247
|
+
interruptible: true
|
|
248
|
+
});
|
|
222
249
|
const {
|
|
223
|
-
send
|
|
250
|
+
send,
|
|
251
|
+
cancel,
|
|
252
|
+
reset
|
|
224
253
|
} = yield* RcRef.get(queueRef);
|
|
225
254
|
const incoming = yield* Queue.unbounded();
|
|
226
|
-
|
|
255
|
+
let done = false;
|
|
256
|
+
yield* Effect.acquireRelease(send(incoming, options), (_, exit) => {
|
|
257
|
+
reset();
|
|
258
|
+
if (Exit.isFailure(exit) && !Exit.hasInterrupts(exit)) return Effect.void;else if (done) return Effect.void;
|
|
259
|
+
return cancel;
|
|
260
|
+
}, {
|
|
261
|
+
interruptible: true
|
|
262
|
+
}).pipe(Effect.forkScoped({
|
|
227
263
|
startImmediately: true
|
|
228
|
-
});
|
|
229
|
-
return Stream.fromQueue(incoming).pipe(Stream.takeUntil(e =>
|
|
264
|
+
}));
|
|
265
|
+
return Stream.fromQueue(incoming).pipe(Stream.takeUntil(e => {
|
|
266
|
+
done = e.type === "response.completed" || e.type === "response.incomplete";
|
|
267
|
+
return done;
|
|
268
|
+
}));
|
|
230
269
|
}).pipe(Stream.unwrap);
|
|
231
270
|
return Effect.succeed([HttpClientResponse.fromWeb(request, new Response()), stream]);
|
|
232
271
|
}
|
|
233
272
|
}).pipe(ServiceMap.add(ResponseIdTracker.ResponseIdTracker, tracker));
|
|
234
273
|
});
|
|
274
|
+
const ErrorEvent = /*#__PURE__*/Schema.Struct({
|
|
275
|
+
type: /*#__PURE__*/Schema.Literal("error"),
|
|
276
|
+
status: Schema.Number,
|
|
277
|
+
error: /*#__PURE__*/Schema.Struct({
|
|
278
|
+
type: Schema.String,
|
|
279
|
+
message: Schema.String
|
|
280
|
+
})
|
|
281
|
+
});
|
|
282
|
+
const AllEvents = /*#__PURE__*/Schema.Union([Generated.ResponseStreamEvent, ErrorEvent]);
|
|
283
|
+
const decodeEvent = /*#__PURE__*/Schema.decodeUnknownSync(/*#__PURE__*/Schema.fromJsonString(AllEvents));
|
|
235
284
|
/**
|
|
236
285
|
* Uses OpenAI's websocket mode for all responses within the provided effect.
|
|
237
286
|
*
|
package/dist/OpenAiClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiClient.js","names":["Array","Cause","Effect","identity","Function","Layer","Predicate","Queue","RcRef","Redacted","Schedule","Schema","Scope","Semaphore","ServiceMap","Stream","AiError","ResponseIdTracker","Sse","Headers","HttpBody","HttpClient","HttpClientRequest","HttpClientResponse","Socket","Generated","Errors","OpenAiConfig","OpenAiClient","Service","RedactedOpenAiHeaders","OpenAiOrganization","OpenAiProject","make","fnUntraced","options","baseClient","apiUrl","httpClient","pipe","mapRequest","flow","prependUrl","apiKey","bearerToken","value","organizationId","setHeader","projectId","acceptJson","transformClient","httpClientOk","filterStatusOk","client","config","getOrUndefined","isNotUndefined","createResponse","payload","includeResponse","catchTags","HttpClientError","error","mapHttpClientError","SchemaError","fail","mapSchemaError","buildResponseStream","response","stream","decodeText","pipeThroughChannel","decodeDataSchema","ResponseStreamEvent","takeUntil","event","data","type","map","Retry","die","fromEffect","createResponseStream","servicesWith","services","socket","OpenAiSocket","execute","post","body","jsonUnsafe","catchTag","createEmbedding","of","updateService","CurrentRedactedNames","appendAll","Object","values","layer","effect","layerConfig","gen","undefined","makeSocket","tracker","request","orDie","preprocess","makeWebSocket","url","replace","WebSocketConstructor","f","headers","queueRef","idleTimeToLive","acquire","write","writer","currentQueue","send","queue","message","suspend","JSON","stringify","mapError","_error","module","method","reason","NetworkError","urlParams","hash","description","decoder","TextDecoder","decode","decodeUnknownSync","fromJsonString","runRaw","msg","text","offerUnsafe","catchCause","cause","clearUnsafe","pretty","void","retry","exponential","either","spaced","seconds","jittered","forkScoped","semaphore","makeUnsafe","serviceMap","acquireRelease","take","release","get","incoming","unbounded","startImmediately","fromQueue","e","unwrap","succeed","fromWeb","Response","add","withWebSocketMode","scopedWith","scope","flatMap","provide","provideServices","layerWebSocketMode","effectServices"],"sources":["../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OpenAiClient.js","names":["Array","Cause","Effect","Exit","identity","Function","Layer","Predicate","Queue","RcRef","Redacted","Schedule","Schema","Scope","Semaphore","ServiceMap","Stream","AiError","ResponseIdTracker","Sse","Headers","HttpBody","HttpClient","HttpClientRequest","HttpClientResponse","Socket","Generated","Errors","OpenAiConfig","OpenAiClient","Service","RedactedOpenAiHeaders","OpenAiOrganization","OpenAiProject","make","fnUntraced","options","baseClient","apiUrl","httpClient","pipe","mapRequest","flow","prependUrl","apiKey","bearerToken","value","organizationId","setHeader","projectId","acceptJson","transformClient","httpClientOk","filterStatusOk","client","config","getOrUndefined","isNotUndefined","createResponse","payload","includeResponse","catchTags","HttpClientError","error","mapHttpClientError","SchemaError","fail","mapSchemaError","buildResponseStream","response","stream","decodeText","pipeThroughChannel","decodeDataSchema","ResponseStreamEvent","takeUntil","event","data","type","map","Retry","die","fromEffect","createResponseStream","servicesWith","services","socket","OpenAiSocket","execute","post","body","jsonUnsafe","catchTag","createEmbedding","of","updateService","CurrentRedactedNames","appendAll","Object","values","layer","effect","layerConfig","gen","undefined","makeSocket","tracker","request","orDie","preprocess","makeWebSocket","url","replace","WebSocketConstructor","f","headers","queueRef","idleTimeToLive","acquire","write","writer","currentQueue","send","queue","message","suspend","JSON","stringify","mapError","_error","module","method","reason","NetworkError","urlParams","hash","description","cancel","ignore","reset","decoder","TextDecoder","runRaw","msg","text","decode","decodeEvent","clearUnsafe","reasonFromHttpStatus","status","metadata","offerUnsafe","catchCause","cause","pretty","void","repeat","exponential","either","spaced","seconds","jittered","forkScoped","semaphore","makeUnsafe","serviceMap","acquireRelease","take","release","interruptible","get","incoming","unbounded","done","_","exit","isFailure","hasInterrupts","startImmediately","fromQueue","e","unwrap","succeed","fromWeb","Response","add","ErrorEvent","Struct","Literal","Number","String","AllEvents","Union","decodeUnknownSync","fromJsonString","withWebSocketMode","scopedWith","scope","flatMap","provide","provideServices","layerWebSocketMode","effectServices"],"sources":["../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Embedding Model implementation.
|
|
3
|
+
*
|
|
4
|
+
* Provides an EmbeddingModel implementation for OpenAI's embeddings API.
|
|
5
|
+
*
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
*/
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as Layer from "effect/Layer";
|
|
10
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
11
|
+
import * as EmbeddingModel from "effect/unstable/ai/EmbeddingModel";
|
|
12
|
+
import * as AiModel from "effect/unstable/ai/Model";
|
|
13
|
+
import { OpenAiClient } from "./OpenAiClient.ts";
|
|
14
|
+
/**
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category models
|
|
17
|
+
*/
|
|
18
|
+
export type Model = "text-embedding-ada-002" | "text-embedding-3-small" | "text-embedding-3-large";
|
|
19
|
+
declare const Config_base: ServiceMap.ServiceClass<Config, "@effect/ai-openai/OpenAiEmbeddingModel/Config", {
|
|
20
|
+
readonly [x: string]: unknown;
|
|
21
|
+
readonly encoding_format?: "float" | "base64";
|
|
22
|
+
readonly dimensions?: number;
|
|
23
|
+
readonly user?: string;
|
|
24
|
+
readonly model?: string;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Service definition for OpenAI embedding model configuration.
|
|
28
|
+
*
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @category services
|
|
31
|
+
*/
|
|
32
|
+
export declare class Config extends Config_base {
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
* @category constructors
|
|
37
|
+
*/
|
|
38
|
+
export declare const model: (model: (string & {}) | Model, options: {
|
|
39
|
+
readonly dimensions: number;
|
|
40
|
+
readonly config?: Omit<typeof Config.Service, "model" | "dimensions">;
|
|
41
|
+
}) => AiModel.Model<"openai", EmbeddingModel.EmbeddingModel | EmbeddingModel.Dimensions, OpenAiClient>;
|
|
42
|
+
/**
|
|
43
|
+
* Creates an OpenAI embedding model service.
|
|
44
|
+
*
|
|
45
|
+
* @since 1.0.0
|
|
46
|
+
* @category constructors
|
|
47
|
+
*/
|
|
48
|
+
export declare const make: (args_0: {
|
|
49
|
+
readonly model: (string & {}) | Model;
|
|
50
|
+
readonly config?: Omit<typeof Config.Service, "model"> | undefined;
|
|
51
|
+
}) => Effect.Effect<EmbeddingModel.Service, never, OpenAiClient>;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a layer for the OpenAI embedding model.
|
|
54
|
+
*
|
|
55
|
+
* @since 1.0.0
|
|
56
|
+
* @category layers
|
|
57
|
+
*/
|
|
58
|
+
export declare const layer: (options: {
|
|
59
|
+
readonly model: (string & {}) | Model;
|
|
60
|
+
readonly config?: Omit<typeof Config.Service, "model"> | undefined;
|
|
61
|
+
}) => Layer.Layer<EmbeddingModel.EmbeddingModel, never, OpenAiClient>;
|
|
62
|
+
/**
|
|
63
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
64
|
+
*
|
|
65
|
+
* @since 1.0.0
|
|
66
|
+
* @category configuration
|
|
67
|
+
*/
|
|
68
|
+
export declare const withConfigOverride: {
|
|
69
|
+
/**
|
|
70
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
71
|
+
*
|
|
72
|
+
* @since 1.0.0
|
|
73
|
+
* @category configuration
|
|
74
|
+
*/
|
|
75
|
+
(overrides: typeof Config.Service): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Config>>;
|
|
76
|
+
/**
|
|
77
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
78
|
+
*
|
|
79
|
+
* @since 1.0.0
|
|
80
|
+
* @category configuration
|
|
81
|
+
*/
|
|
82
|
+
<A, E, R>(self: Effect.Effect<A, E, R>, overrides: typeof Config.Service): Effect.Effect<A, E, Exclude<R, Config>>;
|
|
83
|
+
};
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=OpenAiEmbeddingModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiEmbeddingModel.d.ts","sourceRoot":"","sources":["../src/OpenAiEmbeddingModel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAG/C,OAAO,KAAK,cAAc,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,CAAA;;;;;;;;AAElG;;;;;GAKG;AACH,qBAAa,MAAO,SAAQ,WAawB;CAAG;AAEvD;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK,EAC5B,SAAS;IACP,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,CAAA;CACtE,KACA,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,cAAc,GAAG,cAAc,CAAC,UAAU,EAAE,YAAY,CAc/F,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,IAAI;oBACC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK;sBACnB,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS;gEAgBlE,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CACnE,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,CACN,CAAA;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE;IAC/B;;;;;OAKG;IACH,CAAC,SAAS,EAAE,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACtH;;;;;OAKG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;CAwBhH,CAAA"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Embedding Model implementation.
|
|
3
|
+
*
|
|
4
|
+
* Provides an EmbeddingModel implementation for OpenAI's embeddings API.
|
|
5
|
+
*
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
*/
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import { dual } from "effect/Function";
|
|
10
|
+
import * as Layer from "effect/Layer";
|
|
11
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
12
|
+
import * as AiError from "effect/unstable/ai/AiError";
|
|
13
|
+
import * as EmbeddingModel from "effect/unstable/ai/EmbeddingModel";
|
|
14
|
+
import * as AiModel from "effect/unstable/ai/Model";
|
|
15
|
+
import { OpenAiClient } from "./OpenAiClient.js";
|
|
16
|
+
/**
|
|
17
|
+
* Service definition for OpenAI embedding model configuration.
|
|
18
|
+
*
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
* @category services
|
|
21
|
+
*/
|
|
22
|
+
export class Config extends /*#__PURE__*/ServiceMap.Service()("@effect/ai-openai/OpenAiEmbeddingModel/Config") {}
|
|
23
|
+
/**
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
* @category constructors
|
|
26
|
+
*/
|
|
27
|
+
export const model = (model, options) => AiModel.make("openai", model, Layer.merge(layer({
|
|
28
|
+
model,
|
|
29
|
+
config: {
|
|
30
|
+
...options.config,
|
|
31
|
+
dimensions: options.dimensions
|
|
32
|
+
}
|
|
33
|
+
}), Layer.succeed(EmbeddingModel.Dimensions, options.dimensions)));
|
|
34
|
+
/**
|
|
35
|
+
* Creates an OpenAI embedding model service.
|
|
36
|
+
*
|
|
37
|
+
* @since 1.0.0
|
|
38
|
+
* @category constructors
|
|
39
|
+
*/
|
|
40
|
+
export const make = /*#__PURE__*/Effect.fnUntraced(function* ({
|
|
41
|
+
model,
|
|
42
|
+
config: providerConfig
|
|
43
|
+
}) {
|
|
44
|
+
const client = yield* OpenAiClient;
|
|
45
|
+
const makeConfig = Effect.gen(function* () {
|
|
46
|
+
const services = yield* Effect.services();
|
|
47
|
+
return {
|
|
48
|
+
model,
|
|
49
|
+
...providerConfig,
|
|
50
|
+
...services.mapUnsafe.get(Config.key)
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
return yield* EmbeddingModel.make({
|
|
54
|
+
embedMany: Effect.fnUntraced(function* ({
|
|
55
|
+
inputs
|
|
56
|
+
}) {
|
|
57
|
+
const config = yield* makeConfig;
|
|
58
|
+
const response = yield* client.createEmbedding({
|
|
59
|
+
...config,
|
|
60
|
+
input: inputs
|
|
61
|
+
});
|
|
62
|
+
return yield* mapProviderResponse(inputs.length, response);
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* Creates a layer for the OpenAI embedding model.
|
|
68
|
+
*
|
|
69
|
+
* @since 1.0.0
|
|
70
|
+
* @category layers
|
|
71
|
+
*/
|
|
72
|
+
export const layer = options => Layer.effect(EmbeddingModel.EmbeddingModel, make(options));
|
|
73
|
+
/**
|
|
74
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
75
|
+
*
|
|
76
|
+
* @since 1.0.0
|
|
77
|
+
* @category configuration
|
|
78
|
+
*/
|
|
79
|
+
export const withConfigOverride = /*#__PURE__*/dual(2, (self, overrides) => Effect.flatMap(Effect.serviceOption(Config), config => Effect.provideService(self, Config, {
|
|
80
|
+
...(config._tag === "Some" ? config.value : {}),
|
|
81
|
+
...overrides
|
|
82
|
+
})));
|
|
83
|
+
const mapProviderResponse = (inputLength, response) => {
|
|
84
|
+
if (response.data.length !== inputLength) {
|
|
85
|
+
return Effect.fail(invalidOutput("Provider returned " + response.data.length + " embeddings but expected " + inputLength));
|
|
86
|
+
}
|
|
87
|
+
const results = new Array(inputLength);
|
|
88
|
+
const seen = new Set();
|
|
89
|
+
for (const entry of response.data) {
|
|
90
|
+
if (!Number.isInteger(entry.index) || entry.index < 0 || entry.index >= inputLength) {
|
|
91
|
+
return Effect.fail(invalidOutput("Provider returned invalid embedding index: " + entry.index));
|
|
92
|
+
}
|
|
93
|
+
if (seen.has(entry.index)) {
|
|
94
|
+
return Effect.fail(invalidOutput("Provider returned duplicate embedding index: " + entry.index));
|
|
95
|
+
}
|
|
96
|
+
seen.add(entry.index);
|
|
97
|
+
results[entry.index] = [...entry.embedding];
|
|
98
|
+
}
|
|
99
|
+
if (seen.size !== inputLength) {
|
|
100
|
+
return Effect.fail(invalidOutput("Provider returned embeddings for " + seen.size + " inputs but expected " + inputLength));
|
|
101
|
+
}
|
|
102
|
+
return Effect.succeed({
|
|
103
|
+
results,
|
|
104
|
+
usage: {
|
|
105
|
+
inputTokens: response.usage?.prompt_tokens
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
const invalidOutput = description => AiError.make({
|
|
110
|
+
module: "OpenAiEmbeddingModel",
|
|
111
|
+
method: "embedMany",
|
|
112
|
+
reason: new AiError.InvalidOutputError({
|
|
113
|
+
description
|
|
114
|
+
})
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=OpenAiEmbeddingModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiEmbeddingModel.js","names":["Effect","dual","Layer","ServiceMap","AiError","EmbeddingModel","AiModel","OpenAiClient","Config","Service","model","options","make","merge","layer","config","dimensions","succeed","Dimensions","fnUntraced","providerConfig","client","makeConfig","gen","services","mapUnsafe","get","key","embedMany","inputs","response","createEmbedding","input","mapProviderResponse","length","effect","withConfigOverride","self","overrides","flatMap","serviceOption","provideService","_tag","value","inputLength","data","fail","invalidOutput","results","Array","seen","Set","entry","Number","isInteger","index","has","add","embedding","size","usage","inputTokens","prompt_tokens","description","module","method","reason","InvalidOutputError"],"sources":["../src/OpenAiEmbeddingModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,14 @@ export * as OpenAiClient from "./OpenAiClient.ts";
|
|
|
18
18
|
* @since 1.0.0
|
|
19
19
|
*/
|
|
20
20
|
export * as OpenAiConfig from "./OpenAiConfig.ts";
|
|
21
|
+
/**
|
|
22
|
+
* OpenAI Embedding Model implementation.
|
|
23
|
+
*
|
|
24
|
+
* Provides an EmbeddingModel implementation for OpenAI's embeddings API.
|
|
25
|
+
*
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
*/
|
|
28
|
+
export * as OpenAiEmbeddingModel from "./OpenAiEmbeddingModel.ts";
|
|
21
29
|
/**
|
|
22
30
|
* OpenAI error metadata augmentation.
|
|
23
31
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;GAOG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;GAOG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;;;;;GAOG;AACH,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAE/D;;;;;;;;GAQG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;;;;;;GAOG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;GAOG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;;;GAMG;AACH,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AAEjE;;;;;;;GAOG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;;;;;;GAOG;AACH,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAE/D;;;;;;;;GAQG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;;;;;;GAOG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,14 @@ export * as OpenAiClient from "./OpenAiClient.js";
|
|
|
19
19
|
* @since 1.0.0
|
|
20
20
|
*/
|
|
21
21
|
export * as OpenAiConfig from "./OpenAiConfig.js";
|
|
22
|
+
/**
|
|
23
|
+
* OpenAI Embedding Model implementation.
|
|
24
|
+
*
|
|
25
|
+
* Provides an EmbeddingModel implementation for OpenAI's embeddings API.
|
|
26
|
+
*
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
*/
|
|
29
|
+
export * as OpenAiEmbeddingModel from "./OpenAiEmbeddingModel.js";
|
|
22
30
|
/**
|
|
23
31
|
* OpenAI error metadata augmentation.
|
|
24
32
|
*
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Generated","OpenAiClient","OpenAiConfig","OpenAiError","OpenAiLanguageModel","OpenAiTelemetry","OpenAiTool"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,SAAS,MAAM,gBAAgB;AAE3C;;;;;;;;AAQA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;;;;;;AAQA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;;;;;;AAQA,OAAO,KAAKC,mBAAmB,MAAM,0BAA0B;AAE/D;;;;;;;;;AASA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;;;;;;AAQA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Generated","OpenAiClient","OpenAiConfig","OpenAiEmbeddingModel","OpenAiError","OpenAiLanguageModel","OpenAiTelemetry","OpenAiTool"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,SAAS,MAAM,gBAAgB;AAE3C;;;;;;;;AAQA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;;;;;AAOA,OAAO,KAAKC,oBAAoB,MAAM,2BAA2B;AAEjE;;;;;;;;AAQA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;;;;;;AAQA,OAAO,KAAKC,mBAAmB,MAAM,0BAA0B;AAE/D;;;;;;;;;AASA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;;;;;;AAQA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/ai-openai",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.34",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "An OpenAI provider integration for Effect AI SDK",
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"provenance": true
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"effect": "^4.0.0-beta.
|
|
46
|
+
"effect": "^4.0.0-beta.34"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"effect": "^4.0.0-beta.
|
|
49
|
+
"effect": "^4.0.0-beta.34"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"codegen": "effect-utils codegen",
|
package/src/OpenAiClient.ts
CHANGED
|
@@ -10,6 +10,7 @@ import * as Array from "effect/Array"
|
|
|
10
10
|
import * as Cause from "effect/Cause"
|
|
11
11
|
import type * as Config from "effect/Config"
|
|
12
12
|
import * as Effect from "effect/Effect"
|
|
13
|
+
import * as Exit from "effect/Exit"
|
|
13
14
|
import { identity } from "effect/Function"
|
|
14
15
|
import * as Function from "effect/Function"
|
|
15
16
|
import * as Layer from "effect/Layer"
|
|
@@ -420,13 +421,39 @@ const makeSocket = Effect.gen(function*() {
|
|
|
420
421
|
)
|
|
421
422
|
)
|
|
422
423
|
|
|
424
|
+
const cancel = Effect.suspend(() => write(JSON.stringify({ type: "response.cancel" }))).pipe(
|
|
425
|
+
Effect.ignore
|
|
426
|
+
)
|
|
427
|
+
const reset = () => {
|
|
428
|
+
currentQueue = null
|
|
429
|
+
}
|
|
430
|
+
|
|
423
431
|
const decoder = new TextDecoder()
|
|
424
|
-
const decode = Schema.decodeUnknownSync(Schema.fromJsonString(Generated.ResponseStreamEvent))
|
|
425
432
|
yield* socket.runRaw((msg) => {
|
|
426
433
|
if (!currentQueue) return
|
|
427
434
|
const text = typeof msg === "string" ? msg : decoder.decode(msg)
|
|
428
435
|
try {
|
|
429
|
-
|
|
436
|
+
const event = decodeEvent(text)
|
|
437
|
+
if (event.type === "error") {
|
|
438
|
+
tracker.clearUnsafe()
|
|
439
|
+
}
|
|
440
|
+
if (event.type === "error" && "status" in event) {
|
|
441
|
+
return Queue.fail(
|
|
442
|
+
currentQueue,
|
|
443
|
+
AiError.make({
|
|
444
|
+
module: "OpenAiClient",
|
|
445
|
+
method: "createResponseStream",
|
|
446
|
+
reason: AiError.reasonFromHttpStatus({
|
|
447
|
+
status: event.status,
|
|
448
|
+
metadata: {
|
|
449
|
+
...event.error,
|
|
450
|
+
description: event.error.message
|
|
451
|
+
}
|
|
452
|
+
})
|
|
453
|
+
})
|
|
454
|
+
)
|
|
455
|
+
}
|
|
456
|
+
Queue.offerUnsafe(currentQueue, event)
|
|
430
457
|
} catch {}
|
|
431
458
|
}).pipe(
|
|
432
459
|
Effect.catchCause((cause) => {
|
|
@@ -452,17 +479,16 @@ const makeSocket = Effect.gen(function*() {
|
|
|
452
479
|
) :
|
|
453
480
|
Effect.void
|
|
454
481
|
}),
|
|
455
|
-
Effect.
|
|
482
|
+
Effect.repeat(
|
|
456
483
|
Schedule.exponential(100, 1.5).pipe(
|
|
457
484
|
Schedule.either(Schedule.spaced({ seconds: 5 })),
|
|
458
485
|
Schedule.jittered
|
|
459
486
|
)
|
|
460
487
|
),
|
|
461
|
-
Effect.orDie,
|
|
462
488
|
Effect.forkScoped
|
|
463
489
|
)
|
|
464
490
|
|
|
465
|
-
return { send } as const
|
|
491
|
+
return { send, cancel, reset } as const
|
|
466
492
|
})
|
|
467
493
|
})
|
|
468
494
|
|
|
@@ -474,13 +500,30 @@ const makeSocket = Effect.gen(function*() {
|
|
|
474
500
|
const stream = Effect.gen(function*() {
|
|
475
501
|
yield* Effect.acquireRelease(
|
|
476
502
|
semaphore.take(1),
|
|
477
|
-
() => semaphore.release(1)
|
|
503
|
+
() => semaphore.release(1),
|
|
504
|
+
{ interruptible: true }
|
|
478
505
|
)
|
|
479
|
-
const { send } = yield* RcRef.get(queueRef)
|
|
506
|
+
const { send, cancel, reset } = yield* RcRef.get(queueRef)
|
|
480
507
|
const incoming = yield* Queue.unbounded<ResponseStreamEvent, AiError.AiError | Cause.Done>()
|
|
481
|
-
|
|
508
|
+
let done = false
|
|
509
|
+
|
|
510
|
+
yield* Effect.acquireRelease(
|
|
511
|
+
send(incoming, options),
|
|
512
|
+
(_, exit) => {
|
|
513
|
+
reset()
|
|
514
|
+
if (Exit.isFailure(exit) && !Exit.hasInterrupts(exit)) return Effect.void
|
|
515
|
+
else if (done) return Effect.void
|
|
516
|
+
return cancel
|
|
517
|
+
},
|
|
518
|
+
{ interruptible: true }
|
|
519
|
+
).pipe(
|
|
520
|
+
Effect.forkScoped({ startImmediately: true })
|
|
521
|
+
)
|
|
482
522
|
return Stream.fromQueue(incoming).pipe(
|
|
483
|
-
Stream.takeUntil((e) =>
|
|
523
|
+
Stream.takeUntil((e) => {
|
|
524
|
+
done = e.type === "response.completed" || e.type === "response.incomplete"
|
|
525
|
+
return done
|
|
526
|
+
})
|
|
484
527
|
)
|
|
485
528
|
}).pipe(Stream.unwrap)
|
|
486
529
|
|
|
@@ -494,6 +537,18 @@ const makeSocket = Effect.gen(function*() {
|
|
|
494
537
|
)
|
|
495
538
|
})
|
|
496
539
|
|
|
540
|
+
const ErrorEvent = Schema.Struct({
|
|
541
|
+
type: Schema.Literal("error"),
|
|
542
|
+
status: Schema.Number,
|
|
543
|
+
error: Schema.Struct({
|
|
544
|
+
type: Schema.String,
|
|
545
|
+
message: Schema.String
|
|
546
|
+
})
|
|
547
|
+
})
|
|
548
|
+
|
|
549
|
+
const AllEvents = Schema.Union([Generated.ResponseStreamEvent, ErrorEvent])
|
|
550
|
+
const decodeEvent = Schema.decodeUnknownSync(Schema.fromJsonString(AllEvents))
|
|
551
|
+
|
|
497
552
|
/**
|
|
498
553
|
* Uses OpenAI's websocket mode for all responses within the provided effect.
|
|
499
554
|
*
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Embedding Model implementation.
|
|
3
|
+
*
|
|
4
|
+
* Provides an EmbeddingModel implementation for OpenAI's embeddings API.
|
|
5
|
+
*
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
*/
|
|
8
|
+
import * as Effect from "effect/Effect"
|
|
9
|
+
import { dual } from "effect/Function"
|
|
10
|
+
import * as Layer from "effect/Layer"
|
|
11
|
+
import * as ServiceMap from "effect/ServiceMap"
|
|
12
|
+
import type { Simplify } from "effect/Types"
|
|
13
|
+
import * as AiError from "effect/unstable/ai/AiError"
|
|
14
|
+
import * as EmbeddingModel from "effect/unstable/ai/EmbeddingModel"
|
|
15
|
+
import * as AiModel from "effect/unstable/ai/Model"
|
|
16
|
+
import type * as Generated from "./Generated.ts"
|
|
17
|
+
import { OpenAiClient } from "./OpenAiClient.ts"
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
* @category models
|
|
22
|
+
*/
|
|
23
|
+
export type Model = "text-embedding-ada-002" | "text-embedding-3-small" | "text-embedding-3-large"
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Service definition for OpenAI embedding model configuration.
|
|
27
|
+
*
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category services
|
|
30
|
+
*/
|
|
31
|
+
export class Config extends ServiceMap.Service<
|
|
32
|
+
Config,
|
|
33
|
+
Simplify<
|
|
34
|
+
& Partial<
|
|
35
|
+
Omit<
|
|
36
|
+
typeof Generated.CreateEmbeddingRequest.Encoded,
|
|
37
|
+
"input"
|
|
38
|
+
>
|
|
39
|
+
>
|
|
40
|
+
& {
|
|
41
|
+
readonly [x: string]: unknown
|
|
42
|
+
}
|
|
43
|
+
>
|
|
44
|
+
>()("@effect/ai-openai/OpenAiEmbeddingModel/Config") {}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
* @category constructors
|
|
49
|
+
*/
|
|
50
|
+
export const model = (
|
|
51
|
+
model: (string & {}) | Model,
|
|
52
|
+
options: {
|
|
53
|
+
readonly dimensions: number
|
|
54
|
+
readonly config?: Omit<typeof Config.Service, "model" | "dimensions">
|
|
55
|
+
}
|
|
56
|
+
): AiModel.Model<"openai", EmbeddingModel.EmbeddingModel | EmbeddingModel.Dimensions, OpenAiClient> =>
|
|
57
|
+
AiModel.make(
|
|
58
|
+
"openai",
|
|
59
|
+
model,
|
|
60
|
+
Layer.merge(
|
|
61
|
+
layer({
|
|
62
|
+
model,
|
|
63
|
+
config: {
|
|
64
|
+
...options.config,
|
|
65
|
+
dimensions: options.dimensions
|
|
66
|
+
}
|
|
67
|
+
}),
|
|
68
|
+
Layer.succeed(EmbeddingModel.Dimensions, options.dimensions)
|
|
69
|
+
)
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Creates an OpenAI embedding model service.
|
|
74
|
+
*
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
* @category constructors
|
|
77
|
+
*/
|
|
78
|
+
export const make = Effect.fnUntraced(function*({ model, config: providerConfig }: {
|
|
79
|
+
readonly model: (string & {}) | Model
|
|
80
|
+
readonly config?: Omit<typeof Config.Service, "model"> | undefined
|
|
81
|
+
}): Effect.fn.Return<EmbeddingModel.Service, never, OpenAiClient> {
|
|
82
|
+
const client = yield* OpenAiClient
|
|
83
|
+
|
|
84
|
+
const makeConfig = Effect.gen(function*() {
|
|
85
|
+
const services = yield* Effect.services<never>()
|
|
86
|
+
return { model, ...providerConfig, ...services.mapUnsafe.get(Config.key) }
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
return yield* EmbeddingModel.make({
|
|
90
|
+
embedMany: Effect.fnUntraced(function*({ inputs }) {
|
|
91
|
+
const config = yield* makeConfig
|
|
92
|
+
const response = yield* client.createEmbedding({ ...config, input: inputs })
|
|
93
|
+
return yield* mapProviderResponse(inputs.length, response)
|
|
94
|
+
})
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Creates a layer for the OpenAI embedding model.
|
|
100
|
+
*
|
|
101
|
+
* @since 1.0.0
|
|
102
|
+
* @category layers
|
|
103
|
+
*/
|
|
104
|
+
export const layer = (options: {
|
|
105
|
+
readonly model: (string & {}) | Model
|
|
106
|
+
readonly config?: Omit<typeof Config.Service, "model"> | undefined
|
|
107
|
+
}): Layer.Layer<EmbeddingModel.EmbeddingModel, never, OpenAiClient> =>
|
|
108
|
+
Layer.effect(EmbeddingModel.EmbeddingModel, make(options))
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
112
|
+
*
|
|
113
|
+
* @since 1.0.0
|
|
114
|
+
* @category configuration
|
|
115
|
+
*/
|
|
116
|
+
export const withConfigOverride: {
|
|
117
|
+
/**
|
|
118
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
119
|
+
*
|
|
120
|
+
* @since 1.0.0
|
|
121
|
+
* @category configuration
|
|
122
|
+
*/
|
|
123
|
+
(overrides: typeof Config.Service): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Config>>
|
|
124
|
+
/**
|
|
125
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
126
|
+
*
|
|
127
|
+
* @since 1.0.0
|
|
128
|
+
* @category configuration
|
|
129
|
+
*/
|
|
130
|
+
<A, E, R>(self: Effect.Effect<A, E, R>, overrides: typeof Config.Service): Effect.Effect<A, E, Exclude<R, Config>>
|
|
131
|
+
} = dual<
|
|
132
|
+
/**
|
|
133
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
134
|
+
*
|
|
135
|
+
* @since 1.0.0
|
|
136
|
+
* @category configuration
|
|
137
|
+
*/
|
|
138
|
+
(overrides: typeof Config.Service) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Config>>,
|
|
139
|
+
/**
|
|
140
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
141
|
+
*
|
|
142
|
+
* @since 1.0.0
|
|
143
|
+
* @category configuration
|
|
144
|
+
*/
|
|
145
|
+
<A, E, R>(self: Effect.Effect<A, E, R>, overrides: typeof Config.Service) => Effect.Effect<A, E, Exclude<R, Config>>
|
|
146
|
+
>(2, (self, overrides) =>
|
|
147
|
+
Effect.flatMap(
|
|
148
|
+
Effect.serviceOption(Config),
|
|
149
|
+
(config) =>
|
|
150
|
+
Effect.provideService(self, Config, {
|
|
151
|
+
...(config._tag === "Some" ? config.value : {}),
|
|
152
|
+
...overrides
|
|
153
|
+
})
|
|
154
|
+
))
|
|
155
|
+
|
|
156
|
+
const mapProviderResponse = (
|
|
157
|
+
inputLength: number,
|
|
158
|
+
response: typeof Generated.CreateEmbeddingResponse.Type
|
|
159
|
+
): Effect.Effect<EmbeddingModel.ProviderResponse, AiError.AiError> => {
|
|
160
|
+
if (response.data.length !== inputLength) {
|
|
161
|
+
return Effect.fail(
|
|
162
|
+
invalidOutput("Provider returned " + response.data.length + " embeddings but expected " + inputLength)
|
|
163
|
+
)
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const results = new Array<Array<number>>(inputLength)
|
|
167
|
+
const seen = new Set<number>()
|
|
168
|
+
|
|
169
|
+
for (const entry of response.data) {
|
|
170
|
+
if (!Number.isInteger(entry.index) || entry.index < 0 || entry.index >= inputLength) {
|
|
171
|
+
return Effect.fail(invalidOutput("Provider returned invalid embedding index: " + entry.index))
|
|
172
|
+
}
|
|
173
|
+
if (seen.has(entry.index)) {
|
|
174
|
+
return Effect.fail(invalidOutput("Provider returned duplicate embedding index: " + entry.index))
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
seen.add(entry.index)
|
|
178
|
+
results[entry.index] = [...entry.embedding]
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (seen.size !== inputLength) {
|
|
182
|
+
return Effect.fail(
|
|
183
|
+
invalidOutput("Provider returned embeddings for " + seen.size + " inputs but expected " + inputLength)
|
|
184
|
+
)
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return Effect.succeed({
|
|
188
|
+
results,
|
|
189
|
+
usage: {
|
|
190
|
+
inputTokens: response.usage?.prompt_tokens
|
|
191
|
+
}
|
|
192
|
+
})
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const invalidOutput = (description: string): AiError.AiError =>
|
|
196
|
+
AiError.make({
|
|
197
|
+
module: "OpenAiEmbeddingModel",
|
|
198
|
+
method: "embedMany",
|
|
199
|
+
reason: new AiError.InvalidOutputError({ description })
|
|
200
|
+
})
|
package/src/index.ts
CHANGED
|
@@ -24,6 +24,15 @@ export * as OpenAiClient from "./OpenAiClient.ts"
|
|
|
24
24
|
*/
|
|
25
25
|
export * as OpenAiConfig from "./OpenAiConfig.ts"
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* OpenAI Embedding Model implementation.
|
|
29
|
+
*
|
|
30
|
+
* Provides an EmbeddingModel implementation for OpenAI's embeddings API.
|
|
31
|
+
*
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
*/
|
|
34
|
+
export * as OpenAiEmbeddingModel from "./OpenAiEmbeddingModel.ts"
|
|
35
|
+
|
|
27
36
|
/**
|
|
28
37
|
* OpenAI error metadata augmentation.
|
|
29
38
|
*
|