@effect/ai-openai 4.0.0-beta.5 → 4.0.0-beta.51
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/Generated.d.ts +4060 -4038
- package/dist/Generated.d.ts.map +1 -1
- package/dist/Generated.js +1 -1
- package/dist/Generated.js.map +1 -1
- package/dist/OpenAiClient.d.ts +58 -12
- package/dist/OpenAiClient.d.ts.map +1 -1
- package/dist/OpenAiClient.js +191 -9
- package/dist/OpenAiClient.js.map +1 -1
- package/dist/OpenAiConfig.d.ts +2 -2
- package/dist/OpenAiConfig.d.ts.map +1 -1
- package/dist/OpenAiConfig.js +3 -3
- package/dist/OpenAiConfig.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/OpenAiError.d.ts +22 -32
- package/dist/OpenAiError.d.ts.map +1 -1
- package/dist/OpenAiLanguageModel.d.ts +10 -2
- package/dist/OpenAiLanguageModel.d.ts.map +1 -1
- package/dist/OpenAiLanguageModel.js +187 -68
- package/dist/OpenAiLanguageModel.js.map +1 -1
- package/dist/OpenAiTool.d.ts +24 -24
- 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/dist/internal/errors.js +4 -4
- package/dist/internal/errors.js.map +1 -1
- package/package.json +3 -3
- package/src/Generated.ts +125 -122
- package/src/OpenAiClient.ts +307 -42
- package/src/OpenAiConfig.ts +3 -3
- package/src/OpenAiEmbeddingModel.ts +200 -0
- package/src/OpenAiError.ts +24 -32
- package/src/OpenAiLanguageModel.ts +228 -70
- package/src/index.ts +9 -0
- package/src/internal/errors.ts +6 -4
package/dist/OpenAiClient.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type * as Config from "effect/Config";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
2
3
|
import * as Effect from "effect/Effect";
|
|
3
4
|
import * as Layer from "effect/Layer";
|
|
4
5
|
import * as Redacted from "effect/Redacted";
|
|
5
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
6
6
|
import * as Stream from "effect/Stream";
|
|
7
|
-
import
|
|
7
|
+
import * as AiError from "effect/unstable/ai/AiError";
|
|
8
|
+
import * as ResponseIdTracker from "effect/unstable/ai/ResponseIdTracker";
|
|
8
9
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
9
|
-
import
|
|
10
|
+
import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
|
|
11
|
+
import * as Socket from "effect/unstable/socket/Socket";
|
|
10
12
|
import * as Generated from "./Generated.ts";
|
|
11
13
|
/**
|
|
12
14
|
* The OpenAI client interface.
|
|
@@ -22,14 +24,11 @@ export interface Service {
|
|
|
22
24
|
/**
|
|
23
25
|
* Create a response using the OpenAI responses endpoint.
|
|
24
26
|
*/
|
|
25
|
-
readonly createResponse: (options: typeof Generated.CreateResponse.Encoded) => Effect.Effect<[
|
|
26
|
-
body: typeof Generated.Response.Type,
|
|
27
|
-
response: HttpClientResponse.HttpClientResponse
|
|
28
|
-
], AiError.AiError>;
|
|
27
|
+
readonly createResponse: (options: typeof Generated.CreateResponse.Encoded) => Effect.Effect<readonly [body: typeof Generated.Response.Type, response: HttpClientResponse.HttpClientResponse], AiError.AiError>;
|
|
29
28
|
/**
|
|
30
29
|
* Create a streaming response using the OpenAI responses endpoint.
|
|
31
30
|
*/
|
|
32
|
-
readonly createResponseStream: (options: Omit<typeof Generated.CreateResponse.Encoded, "stream">) => Effect.Effect<[
|
|
31
|
+
readonly createResponseStream: (options: Omit<typeof Generated.CreateResponse.Encoded, "stream">) => Effect.Effect<readonly [
|
|
33
32
|
response: HttpClientResponse.HttpClientResponse,
|
|
34
33
|
stream: Stream.Stream<typeof Generated.ResponseStreamEvent.Type, AiError.AiError>
|
|
35
34
|
], AiError.AiError>;
|
|
@@ -38,7 +37,7 @@ export interface Service {
|
|
|
38
37
|
*/
|
|
39
38
|
readonly createEmbedding: (options: typeof Generated.CreateEmbeddingRequest.Encoded) => Effect.Effect<typeof Generated.CreateEmbeddingResponse.Type, AiError.AiError>;
|
|
40
39
|
}
|
|
41
|
-
declare const OpenAiClient_base:
|
|
40
|
+
declare const OpenAiClient_base: Context.ServiceClass<OpenAiClient, "@effect/ai-openai/OpenAiClient", Service>;
|
|
42
41
|
/**
|
|
43
42
|
* Service identifier for the OpenAI client.
|
|
44
43
|
*
|
|
@@ -102,7 +101,7 @@ export declare const layerConfig: (options?: {
|
|
|
102
101
|
/**
|
|
103
102
|
* The config value to load for the API key.
|
|
104
103
|
*/
|
|
105
|
-
readonly apiKey?: Config.Config<Redacted.Redacted<string
|
|
104
|
+
readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
106
105
|
/**
|
|
107
106
|
* The config value to load for the API URL.
|
|
108
107
|
*/
|
|
@@ -110,15 +109,62 @@ export declare const layerConfig: (options?: {
|
|
|
110
109
|
/**
|
|
111
110
|
* The config value to load for the organization ID.
|
|
112
111
|
*/
|
|
113
|
-
readonly organizationId?: Config.Config<Redacted.Redacted<string
|
|
112
|
+
readonly organizationId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
114
113
|
/**
|
|
115
114
|
* The config value to load for the project ID.
|
|
116
115
|
*/
|
|
117
|
-
readonly projectId?: Config.Config<Redacted.Redacted<string
|
|
116
|
+
readonly projectId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
118
117
|
/**
|
|
119
118
|
* Optional transformer for the HTTP client.
|
|
120
119
|
*/
|
|
121
120
|
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
122
121
|
}) => Layer.Layer<OpenAiClient, Config.ConfigError, HttpClient.HttpClient>;
|
|
122
|
+
/**
|
|
123
|
+
* @since 1.0.0
|
|
124
|
+
* @category Events
|
|
125
|
+
*/
|
|
126
|
+
export type ResponseStreamEvent = typeof Generated.ResponseStreamEvent.Type;
|
|
127
|
+
declare const OpenAiSocket_base: Context.ServiceClass<OpenAiSocket, "@effect/ai-openai/OpenAiClient/OpenAiSocket", {
|
|
128
|
+
/**
|
|
129
|
+
* Create a streaming response using the OpenAI responses endpoint.
|
|
130
|
+
*/
|
|
131
|
+
readonly createResponseStream: (options: Omit<typeof Generated.CreateResponse.Encoded, "stream">) => Effect.Effect<readonly [response: HttpClientResponse.HttpClientResponse, stream: Stream.Stream<ResponseStreamEvent, AiError.AiError>], AiError.AiError>;
|
|
132
|
+
}>;
|
|
133
|
+
/**
|
|
134
|
+
* @since 1.0.0
|
|
135
|
+
* @category Websocket mode
|
|
136
|
+
*/
|
|
137
|
+
export declare class OpenAiSocket extends OpenAiSocket_base {
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Uses OpenAI's websocket mode for all responses within the provided effect.
|
|
141
|
+
*
|
|
142
|
+
* Note: This only works with the following WebSocket constructor layers:
|
|
143
|
+
*
|
|
144
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
145
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
146
|
+
*
|
|
147
|
+
* This is because it needs to use non-standard options for setting the
|
|
148
|
+
* Authorization header.
|
|
149
|
+
*
|
|
150
|
+
* @since 1.0.0
|
|
151
|
+
* @category Websocket mode
|
|
152
|
+
*/
|
|
153
|
+
export declare const withWebSocketMode: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, OpenAiSocket | ResponseIdTracker.ResponseIdTracker> | OpenAiClient | Socket.WebSocketConstructor>;
|
|
154
|
+
/**
|
|
155
|
+
* Uses OpenAI's websocket mode for all responses that use the Layer.
|
|
156
|
+
*
|
|
157
|
+
* Note: This only works with the following WebSocket constructor layers:
|
|
158
|
+
*
|
|
159
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
160
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
161
|
+
*
|
|
162
|
+
* This is because it needs to use non-standard options for setting the
|
|
163
|
+
* Authorization header.
|
|
164
|
+
*
|
|
165
|
+
* @since 1.0.0
|
|
166
|
+
* @category Websocket mode
|
|
167
|
+
*/
|
|
168
|
+
export declare const layerWebSocketMode: Layer.Layer<OpenAiSocket | ResponseIdTracker.ResponseIdTracker, never, OpenAiClient | Socket.WebSocketConstructor>;
|
|
123
169
|
export {};
|
|
124
170
|
//# sourceMappingURL=OpenAiClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiClient.d.ts","sourceRoot":"","sources":["../src/OpenAiClient.ts"],"names":[],"mappings":"AASA,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
|
@@ -7,18 +7,28 @@
|
|
|
7
7
|
* @since 1.0.0
|
|
8
8
|
*/
|
|
9
9
|
import * as Array from "effect/Array";
|
|
10
|
+
import * as Context from "effect/Context";
|
|
10
11
|
import * as Effect from "effect/Effect";
|
|
11
12
|
import { identity } from "effect/Function";
|
|
13
|
+
import * as Function from "effect/Function";
|
|
12
14
|
import * as Layer from "effect/Layer";
|
|
13
15
|
import * as Predicate from "effect/Predicate";
|
|
16
|
+
import * as Queue from "effect/Queue";
|
|
17
|
+
import * as RcRef from "effect/RcRef";
|
|
14
18
|
import * as Redacted from "effect/Redacted";
|
|
15
|
-
import * as
|
|
19
|
+
import * as Schema from "effect/Schema";
|
|
20
|
+
import * as Scope from "effect/Scope";
|
|
21
|
+
import * as Semaphore from "effect/Semaphore";
|
|
16
22
|
import * as Stream from "effect/Stream";
|
|
23
|
+
import * as AiError from "effect/unstable/ai/AiError";
|
|
24
|
+
import * as ResponseIdTracker from "effect/unstable/ai/ResponseIdTracker";
|
|
17
25
|
import * as Sse from "effect/unstable/encoding/Sse";
|
|
18
26
|
import * as Headers from "effect/unstable/http/Headers";
|
|
19
27
|
import * as HttpBody from "effect/unstable/http/HttpBody";
|
|
20
28
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
21
29
|
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
30
|
+
import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
|
|
31
|
+
import * as Socket from "effect/unstable/socket/Socket";
|
|
22
32
|
import * as Generated from "./Generated.js";
|
|
23
33
|
import * as Errors from "./internal/errors.js";
|
|
24
34
|
import { OpenAiConfig } from "./OpenAiConfig.js";
|
|
@@ -31,7 +41,7 @@ import { OpenAiConfig } from "./OpenAiConfig.js";
|
|
|
31
41
|
* @since 1.0.0
|
|
32
42
|
* @category service
|
|
33
43
|
*/
|
|
34
|
-
export class OpenAiClient extends /*#__PURE__*/
|
|
44
|
+
export class OpenAiClient extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient") {}
|
|
35
45
|
// =============================================================================
|
|
36
46
|
// Constructor
|
|
37
47
|
// =============================================================================
|
|
@@ -47,7 +57,8 @@ const RedactedOpenAiHeaders = {
|
|
|
47
57
|
*/
|
|
48
58
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
49
59
|
const baseClient = yield* HttpClient.HttpClient;
|
|
50
|
-
const
|
|
60
|
+
const apiUrl = options.apiUrl ?? "https://api.openai.com/v1";
|
|
61
|
+
const httpClient = baseClient.pipe(HttpClient.mapRequest(Function.flow(HttpClientRequest.prependUrl(apiUrl), options.apiKey ? HttpClientRequest.bearerToken(Redacted.value(options.apiKey)) : identity, options.organizationId ? HttpClientRequest.setHeader(RedactedOpenAiHeaders.OpenAiOrganization, Redacted.value(options.organizationId)) : identity, options.projectId ? HttpClientRequest.setHeader(RedactedOpenAiHeaders.OpenAiProject, Redacted.value(options.projectId)) : identity, HttpClientRequest.acceptJson)), options.transformClient ? options.transformClient : identity);
|
|
51
62
|
const httpClientOk = HttpClient.filterStatusOk(httpClient);
|
|
52
63
|
const client = Generated.make(httpClient, {
|
|
53
64
|
transformClient: Effect.fnUntraced(function* (client) {
|
|
@@ -76,12 +87,16 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
76
87
|
}));
|
|
77
88
|
return [response, stream];
|
|
78
89
|
};
|
|
79
|
-
const createResponseStream = payload =>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
90
|
+
const createResponseStream = payload => Effect.contextWith(services => {
|
|
91
|
+
const socket = Context.getOrUndefined(services, OpenAiSocket);
|
|
92
|
+
if (socket) return socket.createResponseStream(payload);
|
|
93
|
+
return httpClientOk.execute(HttpClientRequest.post("/responses", {
|
|
94
|
+
body: HttpBody.jsonUnsafe({
|
|
95
|
+
...payload,
|
|
96
|
+
stream: true
|
|
97
|
+
})
|
|
98
|
+
})).pipe(Effect.map(buildResponseStream), Effect.catchTag("HttpClientError", error => Errors.mapHttpClientError(error, "createResponseStream")));
|
|
99
|
+
});
|
|
85
100
|
const createEmbedding = payload => client.createEmbedding({
|
|
86
101
|
payload
|
|
87
102
|
}).pipe(Effect.catchTags({
|
|
@@ -125,4 +140,171 @@ export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(func
|
|
|
125
140
|
transformClient: options?.transformClient
|
|
126
141
|
});
|
|
127
142
|
}));
|
|
143
|
+
/**
|
|
144
|
+
* @since 1.0.0
|
|
145
|
+
* @category Websocket mode
|
|
146
|
+
*/
|
|
147
|
+
export class OpenAiSocket extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient/OpenAiSocket") {}
|
|
148
|
+
const makeSocket = /*#__PURE__*/Effect.gen(function* () {
|
|
149
|
+
const client = yield* OpenAiClient;
|
|
150
|
+
const tracker = yield* ResponseIdTracker.make;
|
|
151
|
+
const socketScope = yield* Effect.scope;
|
|
152
|
+
const makeRequest = Effect.orDie(client.client.httpClient.preprocess(HttpClientRequest.post("/responses")));
|
|
153
|
+
const makeWebSocket = yield* Socket.WebSocketConstructor;
|
|
154
|
+
const decoder = new TextDecoder();
|
|
155
|
+
const queueRef = yield* RcRef.make({
|
|
156
|
+
idleTimeToLive: 60_000,
|
|
157
|
+
acquire: Effect.gen(function* () {
|
|
158
|
+
const scope = yield* Effect.scope;
|
|
159
|
+
const request = yield* makeRequest;
|
|
160
|
+
const socket = yield* Socket.makeWebSocket(request.url.replace(/^http/, "ws")).pipe(Effect.provideService(Socket.WebSocketConstructor, url => makeWebSocket(url, {
|
|
161
|
+
headers: request.headers
|
|
162
|
+
})));
|
|
163
|
+
const write = yield* socket.writer;
|
|
164
|
+
yield* Scope.addFinalizerExit(scope, () => {
|
|
165
|
+
tracker.clearUnsafe();
|
|
166
|
+
return Effect.void;
|
|
167
|
+
});
|
|
168
|
+
const incoming = yield* Queue.unbounded();
|
|
169
|
+
const send = message => write(JSON.stringify({
|
|
170
|
+
type: "response.create",
|
|
171
|
+
...message
|
|
172
|
+
})).pipe(Effect.mapError(_error => AiError.make({
|
|
173
|
+
module: "OpenAiClient",
|
|
174
|
+
method: "createResponseStream",
|
|
175
|
+
reason: new AiError.NetworkError({
|
|
176
|
+
reason: "TransportError",
|
|
177
|
+
request: {
|
|
178
|
+
method: "POST",
|
|
179
|
+
url: request.url,
|
|
180
|
+
urlParams: [],
|
|
181
|
+
hash: undefined,
|
|
182
|
+
headers: request.headers
|
|
183
|
+
},
|
|
184
|
+
description: "Failed to send message over WebSocket"
|
|
185
|
+
})
|
|
186
|
+
})));
|
|
187
|
+
yield* socket.runRaw(msg => {
|
|
188
|
+
const text = typeof msg === "string" ? msg : decoder.decode(msg);
|
|
189
|
+
try {
|
|
190
|
+
const event = decodeEvent(text);
|
|
191
|
+
if (event.type === "error" && "status" in event) {
|
|
192
|
+
const json = JSON.stringify(event.error);
|
|
193
|
+
return Effect.fail(AiError.make({
|
|
194
|
+
module: "OpenAiClient",
|
|
195
|
+
method: "createResponseStream",
|
|
196
|
+
reason: AiError.reasonFromHttpStatus({
|
|
197
|
+
description: json,
|
|
198
|
+
status: event.status,
|
|
199
|
+
metadata: event.error,
|
|
200
|
+
http: {
|
|
201
|
+
body: json,
|
|
202
|
+
request: {
|
|
203
|
+
method: "POST",
|
|
204
|
+
url: request.url,
|
|
205
|
+
urlParams: [],
|
|
206
|
+
hash: undefined,
|
|
207
|
+
headers: request.headers
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
})
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
Queue.offerUnsafe(incoming, event);
|
|
214
|
+
} catch {}
|
|
215
|
+
}).pipe(Effect.catchTag("SocketError", error => AiError.make({
|
|
216
|
+
module: "OpenAiClient",
|
|
217
|
+
method: "createResponseStream",
|
|
218
|
+
reason: new AiError.NetworkError({
|
|
219
|
+
reason: "TransportError",
|
|
220
|
+
request: {
|
|
221
|
+
method: "POST",
|
|
222
|
+
url: request.url,
|
|
223
|
+
urlParams: [],
|
|
224
|
+
hash: undefined,
|
|
225
|
+
headers: request.headers
|
|
226
|
+
},
|
|
227
|
+
description: error.message
|
|
228
|
+
})
|
|
229
|
+
}).asEffect()), Effect.catchCause(cause => Queue.failCause(incoming, cause)), Effect.ensuring(Effect.forkIn(RcRef.invalidate(queueRef), socketScope, {
|
|
230
|
+
startImmediately: true
|
|
231
|
+
})), Effect.forkScoped({
|
|
232
|
+
startImmediately: true
|
|
233
|
+
}));
|
|
234
|
+
return {
|
|
235
|
+
send,
|
|
236
|
+
incoming
|
|
237
|
+
};
|
|
238
|
+
})
|
|
239
|
+
});
|
|
240
|
+
// Prime the websocket
|
|
241
|
+
yield* Effect.scoped(RcRef.get(queueRef));
|
|
242
|
+
// Websocket mode only allows one request at a time
|
|
243
|
+
const semaphore = Semaphore.makeUnsafe(1);
|
|
244
|
+
const request = yield* makeRequest;
|
|
245
|
+
return OpenAiSocket.context({
|
|
246
|
+
createResponseStream(options) {
|
|
247
|
+
const stream = Stream.unwrap(Effect.gen(function* () {
|
|
248
|
+
const scope = yield* Effect.scope;
|
|
249
|
+
yield* Effect.acquireRelease(semaphore.take(1), () => semaphore.release(1), {
|
|
250
|
+
interruptible: true
|
|
251
|
+
});
|
|
252
|
+
const {
|
|
253
|
+
send,
|
|
254
|
+
incoming
|
|
255
|
+
} = yield* RcRef.get(queueRef);
|
|
256
|
+
let done = false;
|
|
257
|
+
yield* Scope.addFinalizerExit(scope, () => done ? Effect.void : RcRef.invalidate(queueRef));
|
|
258
|
+
yield* send(options).pipe(Effect.forkScoped({
|
|
259
|
+
startImmediately: true
|
|
260
|
+
}));
|
|
261
|
+
return Stream.fromQueue(incoming).pipe(Stream.takeUntil(e => {
|
|
262
|
+
done = e.type === "response.completed" || e.type === "response.incomplete";
|
|
263
|
+
return done;
|
|
264
|
+
}));
|
|
265
|
+
}));
|
|
266
|
+
return Effect.succeed([HttpClientResponse.fromWeb(request, new Response()), stream]);
|
|
267
|
+
}
|
|
268
|
+
}).pipe(Context.add(ResponseIdTracker.ResponseIdTracker, tracker));
|
|
269
|
+
});
|
|
270
|
+
const ErrorEvent = /*#__PURE__*/Schema.Struct({
|
|
271
|
+
type: /*#__PURE__*/Schema.Literal("error"),
|
|
272
|
+
status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.withDecodingDefault(/*#__PURE__*/Effect.succeed(500))),
|
|
273
|
+
error: /*#__PURE__*/Schema.Struct({
|
|
274
|
+
type: Schema.String,
|
|
275
|
+
message: Schema.String
|
|
276
|
+
})
|
|
277
|
+
});
|
|
278
|
+
const AllEvents = /*#__PURE__*/Schema.Union([ErrorEvent, Generated.ResponseStreamEvent]);
|
|
279
|
+
const decodeEvent = /*#__PURE__*/Schema.decodeUnknownSync(/*#__PURE__*/Schema.fromJsonString(AllEvents));
|
|
280
|
+
/**
|
|
281
|
+
* Uses OpenAI's websocket mode for all responses within the provided effect.
|
|
282
|
+
*
|
|
283
|
+
* Note: This only works with the following WebSocket constructor layers:
|
|
284
|
+
*
|
|
285
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
286
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
287
|
+
*
|
|
288
|
+
* This is because it needs to use non-standard options for setting the
|
|
289
|
+
* Authorization header.
|
|
290
|
+
*
|
|
291
|
+
* @since 1.0.0
|
|
292
|
+
* @category Websocket mode
|
|
293
|
+
*/
|
|
294
|
+
export const withWebSocketMode = effect => Effect.scopedWith(scope => Effect.flatMap(Scope.provide(makeSocket, scope), services => Effect.provideContext(effect, services)));
|
|
295
|
+
/**
|
|
296
|
+
* Uses OpenAI's websocket mode for all responses that use the Layer.
|
|
297
|
+
*
|
|
298
|
+
* Note: This only works with the following WebSocket constructor layers:
|
|
299
|
+
*
|
|
300
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
301
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
302
|
+
*
|
|
303
|
+
* This is because it needs to use non-standard options for setting the
|
|
304
|
+
* Authorization header.
|
|
305
|
+
*
|
|
306
|
+
* @since 1.0.0
|
|
307
|
+
* @category Websocket mode
|
|
308
|
+
*/
|
|
309
|
+
export const layerWebSocketMode = /*#__PURE__*/Layer.effectContext(makeSocket);
|
|
128
310
|
//# sourceMappingURL=OpenAiClient.js.map
|
package/dist/OpenAiClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiClient.js","names":["Array","Effect","identity","Layer","Predicate","Redacted","ServiceMap","Stream","Sse","Headers","HttpBody","HttpClient","HttpClientRequest","Generated","Errors","OpenAiConfig","OpenAiClient","Service","RedactedOpenAiHeaders","OpenAiOrganization","OpenAiProject","make","fnUntraced","options","baseClient","httpClient","pipe","mapRequest","request","prependUrl","apiUrl","isNotUndefined","apiKey","bearerToken","value","organizationId","setHeader","projectId","acceptJson","transformClient","httpClientOk","filterStatusOk","client","config","getOrUndefined","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","execute","post","body","jsonUnsafe","catchTag","createEmbedding","of","updateService","CurrentRedactedNames","appendAll","Object","values","layer","effect","layerConfig","gen","undefined"],"sources":["../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OpenAiClient.js","names":["Array","Context","Effect","identity","Function","Layer","Predicate","Queue","RcRef","Redacted","Schema","Scope","Semaphore","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","contextWith","services","socket","OpenAiSocket","execute","post","body","jsonUnsafe","catchTag","createEmbedding","of","updateService","CurrentRedactedNames","appendAll","Object","values","layer","effect","layerConfig","gen","undefined","makeSocket","tracker","socketScope","scope","makeRequest","orDie","preprocess","makeWebSocket","WebSocketConstructor","decoder","TextDecoder","queueRef","idleTimeToLive","acquire","request","url","replace","provideService","headers","write","writer","addFinalizerExit","clearUnsafe","void","incoming","unbounded","send","message","JSON","stringify","mapError","_error","module","method","reason","NetworkError","urlParams","hash","description","runRaw","msg","text","decode","decodeEvent","json","reasonFromHttpStatus","status","metadata","http","offerUnsafe","asEffect","catchCause","cause","failCause","ensuring","forkIn","invalidate","startImmediately","forkScoped","scoped","get","semaphore","makeUnsafe","context","unwrap","acquireRelease","take","release","interruptible","done","fromQueue","e","succeed","fromWeb","Response","add","ErrorEvent","Struct","Literal","Number","withDecodingDefault","String","AllEvents","Union","decodeUnknownSync","fromJsonString","withWebSocketMode","scopedWith","flatMap","provide","provideContext","layerWebSocketMode","effectContext"],"sources":["../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/OpenAiConfig.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Context from "effect/Context";
|
|
4
5
|
import * as Effect from "effect/Effect";
|
|
5
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
6
6
|
import type { HttpClient } from "effect/unstable/http/HttpClient";
|
|
7
|
-
declare const OpenAiConfig_base:
|
|
7
|
+
declare const OpenAiConfig_base: Context.ServiceClass<OpenAiConfig, "@effect/ai-openai/OpenAiConfig", OpenAiConfig.Service>;
|
|
8
8
|
/**
|
|
9
9
|
* @since 1.0.0
|
|
10
10
|
* @category services
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiConfig.d.ts","sourceRoot":"","sources":["../src/OpenAiConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"OpenAiConfig.d.ts","sourceRoot":"","sources":["../src/OpenAiConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;;AAEjE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAGG;IACnC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC,CAGrF;CACF;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC;;;OAGG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,GAAG,SAAS,CAAA;KAC5E;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAChC;;;OAGG;IACH,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,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,CAAC,CAAC,CAAA;IAClH;;;OAGG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAQvB,CAAA"}
|
package/dist/OpenAiConfig.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Context from "effect/Context";
|
|
4
5
|
import * as Effect from "effect/Effect";
|
|
5
6
|
import { dual } from "effect/Function";
|
|
6
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
7
7
|
/**
|
|
8
8
|
* @since 1.0.0
|
|
9
9
|
* @category services
|
|
10
10
|
*/
|
|
11
|
-
export class OpenAiConfig extends /*#__PURE__*/
|
|
11
|
+
export class OpenAiConfig extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiConfig") {
|
|
12
12
|
/**
|
|
13
13
|
* @since 1.0.0
|
|
14
14
|
*/
|
|
15
|
-
static getOrUndefined = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.
|
|
15
|
+
static getOrUndefined = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.context(), context => context.mapUnsafe.get(OpenAiConfig.key));
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* @since 1.0.0
|
package/dist/OpenAiConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiConfig.js","names":["
|
|
1
|
+
{"version":3,"file":"OpenAiConfig.js","names":["Context","Effect","dual","OpenAiConfig","Service","getOrUndefined","map","context","mapUnsafe","get","key","withClientTransform","self","transformClient","flatMap","config","provideService"],"sources":["../src/OpenAiConfig.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AAGtC;;;;AAIA,OAAM,MAAOC,YAAa,sBAAQH,OAAO,CAACI,OAAO,EAG9C,CAAC,gCAAgC,CAAC;EACnC;;;EAGA,OAAgBC,cAAc,gBAA2DJ,MAAM,CAACK,GAAG,cACjGL,MAAM,CAACM,OAAO,EAAS,EACtBA,OAAO,IAAKA,OAAO,CAACC,SAAS,CAACC,GAAG,CAACN,YAAY,CAACO,GAAG,CAAC,CACrD;;AAgBH;;;;AAIA,OAAO,MAAMC,mBAAmB,gBAc5BT,IAAI,CAAC,CAAC,EAAE,CACVU,IAA4B,EAC5BC,eAAmD,KAEnDZ,MAAM,CAACa,OAAO,CACZX,YAAY,CAACE,cAAc,EAC1BU,MAAM,IAAKd,MAAM,CAACe,cAAc,CAACJ,IAAI,EAAET,YAAY,EAAE;EAAE,GAAGY,MAAM;EAAEF;AAAe,CAAE,CAAC,CACtF,CAAC","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 Context from "effect/Context";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import * as Layer from "effect/Layer";
|
|
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: Context.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,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,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"}
|