@effect/ai-openai 4.0.0-beta.7 → 4.0.0-beta.71
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 +66734 -37723
- 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 +167 -27
- package/dist/OpenAiClient.d.ts.map +1 -1
- package/dist/OpenAiClient.js +337 -44
- package/dist/OpenAiClient.js.map +1 -1
- package/dist/OpenAiClientGenerated.d.ts +91 -0
- package/dist/OpenAiClientGenerated.d.ts.map +1 -0
- package/dist/OpenAiClientGenerated.js +84 -0
- package/dist/OpenAiClientGenerated.js.map +1 -0
- package/dist/OpenAiConfig.d.ts +114 -10
- package/dist/OpenAiConfig.d.ts.map +1 -1
- package/dist/OpenAiConfig.js +68 -7
- package/dist/OpenAiConfig.js.map +1 -1
- package/dist/OpenAiEmbeddingModel.d.ts +213 -0
- package/dist/OpenAiEmbeddingModel.d.ts.map +1 -0
- package/dist/OpenAiEmbeddingModel.js +219 -0
- package/dist/OpenAiEmbeddingModel.js.map +1 -0
- package/dist/OpenAiError.d.ts +168 -35
- package/dist/OpenAiError.d.ts.map +1 -1
- package/dist/OpenAiError.js +1 -1
- package/dist/OpenAiLanguageModel.d.ts +384 -62
- package/dist/OpenAiLanguageModel.d.ts.map +1 -1
- package/dist/OpenAiLanguageModel.js +416 -166
- package/dist/OpenAiLanguageModel.js.map +1 -1
- package/dist/OpenAiSchema.d.ts +2298 -0
- package/dist/OpenAiSchema.d.ts.map +1 -0
- package/dist/OpenAiSchema.js +814 -0
- package/dist/OpenAiSchema.js.map +1 -0
- package/dist/OpenAiTelemetry.d.ts +59 -18
- package/dist/OpenAiTelemetry.d.ts.map +1 -1
- package/dist/OpenAiTelemetry.js +35 -8
- package/dist/OpenAiTelemetry.js.map +1 -1
- package/dist/OpenAiTool.d.ts +157 -62
- package/dist/OpenAiTool.d.ts.map +1 -1
- package/dist/OpenAiTool.js +134 -39
- package/dist/OpenAiTool.js.map +1 -1
- package/dist/index.d.ts +19 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -33
- 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 +9858 -5044
- package/src/OpenAiClient.ts +513 -95
- package/src/OpenAiClientGenerated.ts +202 -0
- package/src/OpenAiConfig.ts +115 -11
- package/src/OpenAiEmbeddingModel.ts +357 -0
- package/src/OpenAiError.ts +170 -35
- package/src/OpenAiLanguageModel.ts +802 -167
- package/src/OpenAiSchema.ts +1289 -0
- package/src/OpenAiTelemetry.ts +81 -23
- package/src/OpenAiTool.ts +135 -40
- package/src/index.ts +22 -33
- package/src/internal/errors.ts +6 -4
package/dist/OpenAiClient.js
CHANGED
|
@@ -1,37 +1,84 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The `OpenAiClient` module provides the handwritten Effect service used by
|
|
3
|
+
* the OpenAI integration for Responses API and embedding requests. It builds on
|
|
4
|
+
* the Effect HTTP client, applies OpenAI authentication and organization or
|
|
5
|
+
* project headers, decodes the minimal schemas needed by higher-level modules,
|
|
6
|
+
* and maps transport or decoding failures into `AiError`.
|
|
3
7
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
8
|
+
* The service exposes a configured HTTP client plus helpers for non-streaming
|
|
9
|
+
* responses, server-sent event response streams, and embeddings. It also
|
|
10
|
+
* includes WebSocket mode for response streams when an application wants to use
|
|
11
|
+
* OpenAI's WebSocket transport instead of the default SSE path.
|
|
6
12
|
*
|
|
7
|
-
*
|
|
13
|
+
* **Common tasks**
|
|
14
|
+
*
|
|
15
|
+
* - Construct the service directly with {@link make}
|
|
16
|
+
* - Provide the service with {@link layer} or load settings from `Config` with
|
|
17
|
+
* {@link layerConfig}
|
|
18
|
+
* - Call `createResponse`, `createResponseStream`, or `createEmbedding` from
|
|
19
|
+
* code that depends on the `OpenAiClient` service
|
|
20
|
+
* - Enable WebSocket streaming around an effect with {@link withWebSocketMode}
|
|
21
|
+
* or through layers with {@link layerWebSocketMode}
|
|
22
|
+
*
|
|
23
|
+
* **Gotchas**
|
|
24
|
+
*
|
|
25
|
+
* - The default base URL is `https://api.openai.com/v1`; set `apiUrl` for
|
|
26
|
+
* proxies, local gateways, or compatible deployments.
|
|
27
|
+
* - A constructor `transformClient` is applied when the service is built, while
|
|
28
|
+
* scoped `OpenAiConfig` transforms are applied by request helpers when they
|
|
29
|
+
* run.
|
|
30
|
+
* - WebSocket mode requires a supported `Socket.WebSocketConstructor` layer and
|
|
31
|
+
* serializes response streams through the shared socket service.
|
|
32
|
+
* - This module is intentionally narrower than the generated OpenAI client; use
|
|
33
|
+
* `OpenAiClientGenerated` for direct access to generated endpoint helpers.
|
|
34
|
+
*
|
|
35
|
+
* @since 4.0.0
|
|
8
36
|
*/
|
|
9
37
|
import * as Array from "effect/Array";
|
|
38
|
+
import * as Context from "effect/Context";
|
|
10
39
|
import * as Effect from "effect/Effect";
|
|
11
40
|
import { identity } from "effect/Function";
|
|
41
|
+
import * as Function from "effect/Function";
|
|
12
42
|
import * as Layer from "effect/Layer";
|
|
13
43
|
import * as Predicate from "effect/Predicate";
|
|
44
|
+
import * as Queue from "effect/Queue";
|
|
45
|
+
import * as RcRef from "effect/RcRef";
|
|
14
46
|
import * as Redacted from "effect/Redacted";
|
|
15
|
-
import * as
|
|
47
|
+
import * as Schema from "effect/Schema";
|
|
48
|
+
import * as Scope from "effect/Scope";
|
|
49
|
+
import * as Semaphore from "effect/Semaphore";
|
|
16
50
|
import * as Stream from "effect/Stream";
|
|
51
|
+
import * as AiError from "effect/unstable/ai/AiError";
|
|
52
|
+
import * as ResponseIdTracker from "effect/unstable/ai/ResponseIdTracker";
|
|
17
53
|
import * as Sse from "effect/unstable/encoding/Sse";
|
|
18
54
|
import * as Headers from "effect/unstable/http/Headers";
|
|
19
55
|
import * as HttpBody from "effect/unstable/http/HttpBody";
|
|
20
56
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
21
57
|
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
22
|
-
import * as
|
|
58
|
+
import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
|
|
59
|
+
import * as Socket from "effect/unstable/socket/Socket";
|
|
23
60
|
import * as Errors from "./internal/errors.js";
|
|
24
61
|
import { OpenAiConfig } from "./OpenAiConfig.js";
|
|
62
|
+
import * as OpenAiSchema from "./OpenAiSchema.js";
|
|
25
63
|
// =============================================================================
|
|
26
64
|
// Service Identifier
|
|
27
65
|
// =============================================================================
|
|
28
66
|
/**
|
|
29
67
|
* Service identifier for the OpenAI client.
|
|
30
68
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
69
|
+
* **When to use**
|
|
70
|
+
*
|
|
71
|
+
* Use when accessing or providing the OpenAI client service through Effect's
|
|
72
|
+
* context.
|
|
73
|
+
*
|
|
74
|
+
* @see {@link make} for constructing an OpenAI client effectfully
|
|
75
|
+
* @see {@link layer} for providing a client from explicit options
|
|
76
|
+
* @see {@link layerConfig} for providing a client from `Config`
|
|
77
|
+
*
|
|
78
|
+
* @category services
|
|
79
|
+
* @since 4.0.0
|
|
33
80
|
*/
|
|
34
|
-
export class OpenAiClient extends /*#__PURE__*/
|
|
81
|
+
export class OpenAiClient extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient") {}
|
|
35
82
|
// =============================================================================
|
|
36
83
|
// Constructor
|
|
37
84
|
// =============================================================================
|
|
@@ -42,33 +89,43 @@ const RedactedOpenAiHeaders = {
|
|
|
42
89
|
/**
|
|
43
90
|
* Creates an OpenAI client service with the given options.
|
|
44
91
|
*
|
|
45
|
-
*
|
|
92
|
+
* **When to use**
|
|
93
|
+
*
|
|
94
|
+
* Use to construct the OpenAI client service inside an effect when you need the
|
|
95
|
+
* service value directly.
|
|
96
|
+
*
|
|
97
|
+
* **Details**
|
|
98
|
+
*
|
|
99
|
+
* The returned service uses the current `HttpClient`, prepends `apiUrl` or
|
|
100
|
+
* `https://api.openai.com/v1`, adds the bearer token and optional OpenAI
|
|
101
|
+
* organization/project headers, accepts JSON responses, filters for successful
|
|
102
|
+
* HTTP statuses, and applies `transformClient` when provided.
|
|
103
|
+
*
|
|
104
|
+
* **Gotchas**
|
|
105
|
+
*
|
|
106
|
+
* A scoped `OpenAiConfig.withClientTransform` is applied when request helpers
|
|
107
|
+
* run, after the `transformClient` option supplied to `make`.
|
|
108
|
+
*
|
|
109
|
+
* @see {@link layer} for providing this client from explicit options
|
|
110
|
+
* @see {@link layerConfig} for loading client settings from `Config`
|
|
111
|
+
*
|
|
46
112
|
* @category constructors
|
|
113
|
+
* @since 4.0.0
|
|
47
114
|
*/
|
|
48
115
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
49
116
|
const baseClient = yield* HttpClient.HttpClient;
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
return client;
|
|
59
|
-
})
|
|
60
|
-
});
|
|
61
|
-
const createResponse = payload => client.createResponse({
|
|
62
|
-
payload,
|
|
63
|
-
config: {
|
|
64
|
-
includeResponse: true
|
|
65
|
-
}
|
|
66
|
-
}).pipe(Effect.catchTags({
|
|
117
|
+
const apiUrl = options.apiUrl ?? "https://api.openai.com/v1";
|
|
118
|
+
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)), HttpClient.filterStatusOk, options.transformClient ? options.transformClient : identity);
|
|
119
|
+
const resolveHttpClient = Effect.map(OpenAiConfig.getOrUndefined, config => Predicate.isNotUndefined(config?.transformClient) ? config.transformClient(httpClient) : httpClient);
|
|
120
|
+
const decodeResponse = HttpClientResponse.schemaBodyJson(OpenAiSchema.Response);
|
|
121
|
+
const createResponse = payload => Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/responses", {
|
|
122
|
+
body: HttpBody.jsonUnsafe(payload)
|
|
123
|
+
})).pipe(Effect.flatMap(response => decodeResponse(response).pipe(Effect.map(body => [body, response]))), Effect.catchTags({
|
|
67
124
|
HttpClientError: error => Errors.mapHttpClientError(error, "createResponse"),
|
|
68
125
|
SchemaError: error => Effect.fail(Errors.mapSchemaError(error, "createResponse"))
|
|
69
|
-
}));
|
|
126
|
+
})));
|
|
70
127
|
const buildResponseStream = response => {
|
|
71
|
-
const stream = response.stream.pipe(Stream.decodeText(), Stream.pipeThroughChannel(Sse.decodeDataSchema(
|
|
128
|
+
const stream = response.stream.pipe(Stream.decodeText(), Stream.pipeThroughChannel(Sse.decodeDataSchema(OpenAiSchema.ResponseStreamEvent)), Stream.takeUntil(event => event.data.type === "response.completed" || event.data.type === "response.incomplete"), Stream.map(event => event.data), Stream.catchTags({
|
|
72
129
|
// TODO: handle SSE retries
|
|
73
130
|
Retry: error => Stream.die(error),
|
|
74
131
|
HttpClientError: error => Stream.fromEffect(Errors.mapHttpClientError(error, "createResponseStream")),
|
|
@@ -76,20 +133,25 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
76
133
|
}));
|
|
77
134
|
return [response, stream];
|
|
78
135
|
};
|
|
79
|
-
const createResponseStream = payload =>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
136
|
+
const createResponseStream = payload => Effect.contextWith(services => {
|
|
137
|
+
const socket = Context.getOrUndefined(services, OpenAiSocket);
|
|
138
|
+
if (socket) return socket.createResponseStream(payload);
|
|
139
|
+
return Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/responses", {
|
|
140
|
+
body: HttpBody.jsonUnsafe({
|
|
141
|
+
...payload,
|
|
142
|
+
stream: true
|
|
143
|
+
})
|
|
144
|
+
})).pipe(Effect.map(buildResponseStream), Effect.catchTag("HttpClientError", error => Errors.mapHttpClientError(error, "createResponseStream"))));
|
|
145
|
+
});
|
|
146
|
+
const decodeEmbedding = HttpClientResponse.schemaBodyJson(OpenAiSchema.CreateEmbeddingResponse);
|
|
147
|
+
const createEmbedding = payload => Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/embeddings", {
|
|
148
|
+
body: HttpBody.jsonUnsafe(payload)
|
|
149
|
+
})).pipe(Effect.flatMap(decodeEmbedding), Effect.catchTags({
|
|
88
150
|
HttpClientError: error => Errors.mapHttpClientError(error, "createEmbedding"),
|
|
89
151
|
SchemaError: error => Effect.fail(Errors.mapSchemaError(error, "createEmbedding"))
|
|
90
|
-
}));
|
|
152
|
+
})));
|
|
91
153
|
return OpenAiClient.of({
|
|
92
|
-
client,
|
|
154
|
+
client: httpClient,
|
|
93
155
|
createResponse,
|
|
94
156
|
createResponseStream,
|
|
95
157
|
createEmbedding
|
|
@@ -101,16 +163,37 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
101
163
|
/**
|
|
102
164
|
* Creates a layer for the OpenAI client with the given options.
|
|
103
165
|
*
|
|
104
|
-
*
|
|
166
|
+
* **When to use**
|
|
167
|
+
*
|
|
168
|
+
* Use when you already have explicit `Options` values, such as an API key or
|
|
169
|
+
* custom API URL, and want to provide `OpenAiClient` as a `Layer`.
|
|
170
|
+
*
|
|
171
|
+
* @see {@link make} for constructing the client service effectfully
|
|
172
|
+
* @see {@link layerConfig} for loading client settings from `Config`
|
|
173
|
+
*
|
|
105
174
|
* @category layers
|
|
175
|
+
* @since 4.0.0
|
|
106
176
|
*/
|
|
107
177
|
export const layer = options => Layer.effect(OpenAiClient, make(options));
|
|
108
178
|
/**
|
|
109
|
-
* Creates a layer for the OpenAI client
|
|
110
|
-
*
|
|
179
|
+
* Creates a layer for the OpenAI client from provided `Config` values.
|
|
180
|
+
*
|
|
181
|
+
* **When to use**
|
|
182
|
+
*
|
|
183
|
+
* Use when client settings should be read from Effect `Config` values while
|
|
184
|
+
* providing `OpenAiClient` as a `Layer`.
|
|
185
|
+
*
|
|
186
|
+
* **Details**
|
|
187
|
+
*
|
|
188
|
+
* Only config values supplied in `options` are loaded. Omitted fields are
|
|
189
|
+
* passed to `make` as `undefined`, and `transformClient` is forwarded as a
|
|
190
|
+
* plain option.
|
|
191
|
+
*
|
|
192
|
+
* @see {@link make} for constructing the client service effectfully
|
|
193
|
+
* @see {@link layer} for providing the client from already-resolved options
|
|
111
194
|
*
|
|
112
|
-
* @since 1.0.0
|
|
113
195
|
* @category layers
|
|
196
|
+
* @since 4.0.0
|
|
114
197
|
*/
|
|
115
198
|
export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(function* () {
|
|
116
199
|
const apiKey = Predicate.isNotUndefined(options?.apiKey) ? yield* options.apiKey : undefined;
|
|
@@ -125,4 +208,214 @@ export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(func
|
|
|
125
208
|
transformClient: options?.transformClient
|
|
126
209
|
});
|
|
127
210
|
}));
|
|
211
|
+
/**
|
|
212
|
+
* Service for creating OpenAI response streams over a WebSocket connection.
|
|
213
|
+
*
|
|
214
|
+
* **When to use**
|
|
215
|
+
*
|
|
216
|
+
* Use when code needs direct access to the WebSocket-backed response streaming
|
|
217
|
+
* service rather than wrapping an effect with WebSocket mode.
|
|
218
|
+
*
|
|
219
|
+
* **Details**
|
|
220
|
+
*
|
|
221
|
+
* `createResponseStream` sends a `response.create` message over the WebSocket
|
|
222
|
+
* connection and returns an HTTP response together with a stream of
|
|
223
|
+
* `ResponseStreamEvent` values.
|
|
224
|
+
*
|
|
225
|
+
* **Gotchas**
|
|
226
|
+
*
|
|
227
|
+
* WebSocket response streams are serialized to one request at a time by the
|
|
228
|
+
* shared socket service.
|
|
229
|
+
*
|
|
230
|
+
* @see {@link withWebSocketMode} for enabling WebSocket mode for one effect
|
|
231
|
+
* @see {@link layerWebSocketMode} for providing WebSocket mode through a layer
|
|
232
|
+
*
|
|
233
|
+
* @category Websocket mode
|
|
234
|
+
* @since 4.0.0
|
|
235
|
+
*/
|
|
236
|
+
export class OpenAiSocket extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient/OpenAiSocket") {}
|
|
237
|
+
const makeSocket = /*#__PURE__*/Effect.gen(function* () {
|
|
238
|
+
const client = yield* OpenAiClient;
|
|
239
|
+
const tracker = yield* ResponseIdTracker.make;
|
|
240
|
+
const socketScope = yield* Effect.scope;
|
|
241
|
+
const makeRequest = Effect.flatMap(OpenAiConfig.getOrUndefined, config => {
|
|
242
|
+
const httpClient = Predicate.isNotUndefined(config?.transformClient) ? config.transformClient(client.client) : client.client;
|
|
243
|
+
return Effect.orDie(httpClient.preprocess(HttpClientRequest.post("/responses")));
|
|
244
|
+
});
|
|
245
|
+
const makeWebSocket = yield* Socket.WebSocketConstructor;
|
|
246
|
+
const decoder = new TextDecoder();
|
|
247
|
+
const queueRef = yield* RcRef.make({
|
|
248
|
+
idleTimeToLive: 60_000,
|
|
249
|
+
acquire: Effect.gen(function* () {
|
|
250
|
+
const scope = yield* Effect.scope;
|
|
251
|
+
const request = yield* makeRequest;
|
|
252
|
+
const socket = yield* Socket.makeWebSocket(request.url.replace(/^http/, "ws")).pipe(Effect.provideService(Socket.WebSocketConstructor, url => makeWebSocket(url, {
|
|
253
|
+
headers: request.headers
|
|
254
|
+
})));
|
|
255
|
+
const write = yield* socket.writer;
|
|
256
|
+
yield* Scope.addFinalizerExit(scope, () => {
|
|
257
|
+
tracker.clearUnsafe();
|
|
258
|
+
return Effect.void;
|
|
259
|
+
});
|
|
260
|
+
const incoming = yield* Queue.unbounded();
|
|
261
|
+
const send = message => write(JSON.stringify({
|
|
262
|
+
type: "response.create",
|
|
263
|
+
...message
|
|
264
|
+
})).pipe(Effect.mapError(_error => AiError.make({
|
|
265
|
+
module: "OpenAiClient",
|
|
266
|
+
method: "createResponseStream",
|
|
267
|
+
reason: new AiError.NetworkError({
|
|
268
|
+
reason: "TransportError",
|
|
269
|
+
request: {
|
|
270
|
+
method: "POST",
|
|
271
|
+
url: request.url,
|
|
272
|
+
urlParams: [],
|
|
273
|
+
hash: undefined,
|
|
274
|
+
headers: request.headers
|
|
275
|
+
},
|
|
276
|
+
description: "Failed to send message over WebSocket"
|
|
277
|
+
})
|
|
278
|
+
})));
|
|
279
|
+
yield* socket.runRaw(msg => {
|
|
280
|
+
const text = typeof msg === "string" ? msg : decoder.decode(msg);
|
|
281
|
+
try {
|
|
282
|
+
const event = decodeEvent(text);
|
|
283
|
+
if (event.type === "error" && "status" in event) {
|
|
284
|
+
const status = Number(event.status);
|
|
285
|
+
const error = "error" in event ? event.error : event;
|
|
286
|
+
const json = JSON.stringify(error);
|
|
287
|
+
return Effect.fail(AiError.make({
|
|
288
|
+
module: "OpenAiClient",
|
|
289
|
+
method: "createResponseStream",
|
|
290
|
+
reason: AiError.reasonFromHttpStatus({
|
|
291
|
+
description: json,
|
|
292
|
+
status: isNaN(status) ? 500 : status,
|
|
293
|
+
metadata: error,
|
|
294
|
+
http: {
|
|
295
|
+
body: json,
|
|
296
|
+
request: {
|
|
297
|
+
method: "POST",
|
|
298
|
+
url: request.url,
|
|
299
|
+
urlParams: [],
|
|
300
|
+
hash: undefined,
|
|
301
|
+
headers: request.headers
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
})
|
|
305
|
+
}));
|
|
306
|
+
}
|
|
307
|
+
Queue.offerUnsafe(incoming, event);
|
|
308
|
+
} catch {}
|
|
309
|
+
}).pipe(Effect.catchTag("SocketError", error => AiError.make({
|
|
310
|
+
module: "OpenAiClient",
|
|
311
|
+
method: "createResponseStream",
|
|
312
|
+
reason: new AiError.NetworkError({
|
|
313
|
+
reason: "TransportError",
|
|
314
|
+
request: {
|
|
315
|
+
method: "POST",
|
|
316
|
+
url: request.url,
|
|
317
|
+
urlParams: [],
|
|
318
|
+
hash: undefined,
|
|
319
|
+
headers: request.headers
|
|
320
|
+
},
|
|
321
|
+
description: error.message
|
|
322
|
+
})
|
|
323
|
+
})), Effect.catchCause(cause => Queue.failCause(incoming, cause)), Effect.ensuring(Effect.forkIn(RcRef.invalidate(queueRef), socketScope, {
|
|
324
|
+
startImmediately: true
|
|
325
|
+
})), Effect.forkScoped({
|
|
326
|
+
startImmediately: true
|
|
327
|
+
}));
|
|
328
|
+
return {
|
|
329
|
+
send,
|
|
330
|
+
incoming
|
|
331
|
+
};
|
|
332
|
+
})
|
|
333
|
+
});
|
|
334
|
+
// Prime the websocket
|
|
335
|
+
yield* Effect.scoped(RcRef.get(queueRef));
|
|
336
|
+
// Websocket mode only allows one request at a time
|
|
337
|
+
const semaphore = Semaphore.makeUnsafe(1);
|
|
338
|
+
const request = yield* makeRequest;
|
|
339
|
+
return OpenAiSocket.context({
|
|
340
|
+
createResponseStream(options) {
|
|
341
|
+
const stream = Stream.unwrap(Effect.gen(function* () {
|
|
342
|
+
const scope = yield* Effect.scope;
|
|
343
|
+
yield* Effect.acquireRelease(semaphore.take(1), () => semaphore.release(1), {
|
|
344
|
+
interruptible: true
|
|
345
|
+
});
|
|
346
|
+
const {
|
|
347
|
+
send,
|
|
348
|
+
incoming
|
|
349
|
+
} = yield* RcRef.get(queueRef);
|
|
350
|
+
let done = false;
|
|
351
|
+
yield* Scope.addFinalizerExit(scope, () => done ? Effect.void : RcRef.invalidate(queueRef));
|
|
352
|
+
yield* send(options).pipe(Effect.forkScoped({
|
|
353
|
+
startImmediately: true
|
|
354
|
+
}));
|
|
355
|
+
return Stream.fromQueue(incoming).pipe(Stream.takeUntil(e => {
|
|
356
|
+
done = e.type === "response.completed" || e.type === "response.incomplete";
|
|
357
|
+
return done;
|
|
358
|
+
}));
|
|
359
|
+
}));
|
|
360
|
+
return Effect.succeed([HttpClientResponse.fromWeb(request, new Response()), stream]);
|
|
361
|
+
}
|
|
362
|
+
}).pipe(Context.add(ResponseIdTracker.ResponseIdTracker, tracker));
|
|
363
|
+
});
|
|
364
|
+
const ErrorEvent = /*#__PURE__*/Schema.Struct({
|
|
365
|
+
type: /*#__PURE__*/Schema.Literal("error"),
|
|
366
|
+
status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.withDecodingDefault(/*#__PURE__*/Effect.succeed(500))),
|
|
367
|
+
error: /*#__PURE__*/Schema.Struct({
|
|
368
|
+
type: Schema.String,
|
|
369
|
+
message: Schema.String
|
|
370
|
+
})
|
|
371
|
+
});
|
|
372
|
+
const AllEvents = /*#__PURE__*/Schema.Union([ErrorEvent, OpenAiSchema.ResponseStreamEvent]);
|
|
373
|
+
const decodeEvent = /*#__PURE__*/Schema.decodeUnknownSync(/*#__PURE__*/Schema.fromJsonString(AllEvents));
|
|
374
|
+
/**
|
|
375
|
+
* Uses OpenAI's WebSocket mode for response streams within the provided effect.
|
|
376
|
+
*
|
|
377
|
+
* **When to use**
|
|
378
|
+
*
|
|
379
|
+
* Use to enable WebSocket mode around one effect that creates OpenAI response
|
|
380
|
+
* streams.
|
|
381
|
+
*
|
|
382
|
+
* **Gotchas**
|
|
383
|
+
*
|
|
384
|
+
* This only works with the following WebSocket constructor layers:
|
|
385
|
+
*
|
|
386
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
387
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
388
|
+
*
|
|
389
|
+
* This is because it needs to use non-standard options for setting the Authorization header.
|
|
390
|
+
*
|
|
391
|
+
* @see {@link layerWebSocketMode} for providing WebSocket mode through a layer
|
|
392
|
+
* @see {@link OpenAiSocket} for direct access to the WebSocket-backed streaming service
|
|
393
|
+
*
|
|
394
|
+
* @category Websocket mode
|
|
395
|
+
* @since 4.0.0
|
|
396
|
+
*/
|
|
397
|
+
export const withWebSocketMode = effect => Effect.scopedWith(scope => Effect.flatMap(Scope.provide(makeSocket, scope), services => Effect.provideContext(effect, services)));
|
|
398
|
+
/**
|
|
399
|
+
* Uses OpenAI's websocket mode for all responses that use the Layer.
|
|
400
|
+
*
|
|
401
|
+
* **When to use**
|
|
402
|
+
*
|
|
403
|
+
* Use to provide WebSocket mode through layer composition for effects that use
|
|
404
|
+
* OpenAI response streaming.
|
|
405
|
+
*
|
|
406
|
+
* **Gotchas**
|
|
407
|
+
*
|
|
408
|
+
* This only works with the following WebSocket constructor layers:
|
|
409
|
+
*
|
|
410
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
411
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
412
|
+
*
|
|
413
|
+
* This is because it needs to use non-standard options for setting the Authorization header.
|
|
414
|
+
*
|
|
415
|
+
* @see {@link withWebSocketMode} for enabling WebSocket mode around a single effect
|
|
416
|
+
*
|
|
417
|
+
* @category Websocket mode
|
|
418
|
+
* @since 4.0.0
|
|
419
|
+
*/
|
|
420
|
+
export const layerWebSocketMode = /*#__PURE__*/Layer.effectContext(makeSocket);
|
|
128
421
|
//# 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","Errors","OpenAiConfig","OpenAiSchema","OpenAiClient","Service","RedactedOpenAiHeaders","OpenAiOrganization","OpenAiProject","make","fnUntraced","options","baseClient","apiUrl","httpClient","pipe","mapRequest","flow","prependUrl","apiKey","bearerToken","value","organizationId","setHeader","projectId","acceptJson","filterStatusOk","transformClient","resolveHttpClient","map","getOrUndefined","config","isNotUndefined","decodeResponse","schemaBodyJson","Response","createResponse","payload","flatMap","client","execute","post","body","jsonUnsafe","response","catchTags","HttpClientError","error","mapHttpClientError","SchemaError","fail","mapSchemaError","buildResponseStream","stream","decodeText","pipeThroughChannel","decodeDataSchema","ResponseStreamEvent","takeUntil","event","data","type","Retry","die","fromEffect","createResponseStream","contextWith","services","socket","OpenAiSocket","catchTag","decodeEmbedding","CreateEmbeddingResponse","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","status","Number","json","reasonFromHttpStatus","isNaN","metadata","http","offerUnsafe","catchCause","cause","failCause","ensuring","forkIn","invalidate","startImmediately","forkScoped","scoped","get","semaphore","makeUnsafe","context","unwrap","acquireRelease","take","release","interruptible","done","fromQueue","e","succeed","fromWeb","add","ErrorEvent","Struct","Literal","withDecodingDefault","String","AllEvents","Union","decodeUnknownSync","fromJsonString","withWebSocketMode","scopedWith","provide","provideContext","layerWebSocketMode","effectContext"],"sources":["../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type * as Config from "effect/Config";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as Redacted from "effect/Redacted";
|
|
6
|
+
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
7
|
+
import * as Generated from "./Generated.ts";
|
|
8
|
+
declare const OpenAiClientGenerated_base: Context.ServiceClass<OpenAiClientGenerated, "@effect/ai-openai/OpenAiClientGenerated", Generated.OpenAiClient>;
|
|
9
|
+
/**
|
|
10
|
+
* Service identifier for the generated OpenAI client.
|
|
11
|
+
*
|
|
12
|
+
* @since 4.0.0
|
|
13
|
+
* @category service
|
|
14
|
+
*/
|
|
15
|
+
export declare class OpenAiClientGenerated extends OpenAiClientGenerated_base {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options for configuring the generated OpenAI client.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
21
|
+
* @category models
|
|
22
|
+
*/
|
|
23
|
+
export type Options = {
|
|
24
|
+
/**
|
|
25
|
+
* The OpenAI API key.
|
|
26
|
+
*/
|
|
27
|
+
readonly apiKey?: Redacted.Redacted<string> | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* The base URL for the OpenAI API.
|
|
30
|
+
*
|
|
31
|
+
* @default "https://api.openai.com/v1"
|
|
32
|
+
*/
|
|
33
|
+
readonly apiUrl?: string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Optional organization ID for multi-org accounts.
|
|
36
|
+
*/
|
|
37
|
+
readonly organizationId?: Redacted.Redacted<string> | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Optional project ID for project-scoped requests.
|
|
40
|
+
*/
|
|
41
|
+
readonly projectId?: Redacted.Redacted<string> | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Optional transformer for the HTTP client.
|
|
44
|
+
*/
|
|
45
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Creates a generated OpenAI client service with the given options.
|
|
49
|
+
*
|
|
50
|
+
* @since 4.0.0
|
|
51
|
+
* @category constructors
|
|
52
|
+
*/
|
|
53
|
+
export declare const make: (options: Options) => Effect.Effect<Generated.OpenAiClient, never, HttpClient.HttpClient>;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a layer for the generated OpenAI client with the given options.
|
|
56
|
+
*
|
|
57
|
+
* @since 4.0.0
|
|
58
|
+
* @category layers
|
|
59
|
+
*/
|
|
60
|
+
export declare const layer: (options: Options) => Layer.Layer<OpenAiClientGenerated, never, HttpClient.HttpClient>;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a layer for the generated OpenAI client, loading the requisite
|
|
63
|
+
* configuration via Effect's `Config` module.
|
|
64
|
+
*
|
|
65
|
+
* @since 4.0.0
|
|
66
|
+
* @category layers
|
|
67
|
+
*/
|
|
68
|
+
export declare const layerConfig: (options?: {
|
|
69
|
+
/**
|
|
70
|
+
* The config value to load for the API key.
|
|
71
|
+
*/
|
|
72
|
+
readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* The config value to load for the API URL.
|
|
75
|
+
*/
|
|
76
|
+
readonly apiUrl?: Config.Config<string> | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* The config value to load for the organization ID.
|
|
79
|
+
*/
|
|
80
|
+
readonly organizationId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* The config value to load for the project ID.
|
|
83
|
+
*/
|
|
84
|
+
readonly projectId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Optional transformer for the HTTP client.
|
|
87
|
+
*/
|
|
88
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
89
|
+
}) => Layer.Layer<OpenAiClientGenerated, Config.ConfigError, HttpClient.HttpClient>;
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=OpenAiClientGenerated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiClientGenerated.d.ts","sourceRoot":"","sources":["../src/OpenAiClientGenerated.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAE7D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;;AAO3C;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,0BAE1C;CAAG;AAMJ;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAEvD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAEpC;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAE/D;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAE1D;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;CAClG,CAAA;AAWD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,2FA4ChB,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CACpD,CAAA;AAEpD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU;IACpC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IAElF;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAEnD;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IAE1F;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IAErF;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;CAClG,KAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAwB7E,CAAA"}
|