@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
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `OpenAiEmbeddingModel` module provides the OpenAI implementation of
|
|
3
|
+
* Effect AI's `EmbeddingModel` service. It adapts the OpenAI embeddings
|
|
4
|
+
* endpoint into Effect AI's batch embedding interface, preserving input order
|
|
5
|
+
* and returning numeric vectors for each requested input.
|
|
6
|
+
*
|
|
7
|
+
* **Mental model**
|
|
8
|
+
*
|
|
9
|
+
* `OpenAiClient` owns transport, authentication, and provider request
|
|
10
|
+
* execution. This module owns embedding-specific configuration, response
|
|
11
|
+
* validation, and the `EmbeddingModel.EmbeddingModel` layer. Use {@link model}
|
|
12
|
+
* when you want an `AiModel` descriptor that also provides the configured
|
|
13
|
+
* embedding dimensions, or {@link layer} / {@link make} when the dimensions are
|
|
14
|
+
* managed separately.
|
|
15
|
+
*
|
|
16
|
+
* **Common tasks**
|
|
17
|
+
*
|
|
18
|
+
* - Provide an OpenAI-backed `EmbeddingModel.EmbeddingModel` from an existing
|
|
19
|
+
* `OpenAiClient`
|
|
20
|
+
* - Configure the OpenAI embedding model id, dimensions, encoding format, and
|
|
21
|
+
* other create-embedding request fields
|
|
22
|
+
* - Scope per-request defaults with {@link Config} and
|
|
23
|
+
* {@link withConfigOverride}
|
|
24
|
+
*
|
|
25
|
+
* **Gotchas**
|
|
26
|
+
*
|
|
27
|
+
* - The service expects OpenAI to return floating-point embedding arrays.
|
|
28
|
+
* Requesting base64 embeddings causes an `InvalidOutputError`.
|
|
29
|
+
* - Provider results are checked for missing, duplicate, or out-of-range
|
|
30
|
+
* indexes before they are exposed as Effect AI embedding results.
|
|
31
|
+
*
|
|
32
|
+
* @since 4.0.0
|
|
33
|
+
*/
|
|
34
|
+
import * as Context from "effect/Context";
|
|
35
|
+
import * as Effect from "effect/Effect";
|
|
36
|
+
import { dual } from "effect/Function";
|
|
37
|
+
import * as Layer from "effect/Layer";
|
|
38
|
+
import * as AiError from "effect/unstable/ai/AiError";
|
|
39
|
+
import * as EmbeddingModel from "effect/unstable/ai/EmbeddingModel";
|
|
40
|
+
import * as AiModel from "effect/unstable/ai/Model";
|
|
41
|
+
import { OpenAiClient } from "./OpenAiClient.js";
|
|
42
|
+
/**
|
|
43
|
+
* Service definition for OpenAI embedding model configuration.
|
|
44
|
+
*
|
|
45
|
+
* **When to use**
|
|
46
|
+
*
|
|
47
|
+
* Use when embedding requests need scoped OpenAI request defaults or overrides
|
|
48
|
+
* from Effect context.
|
|
49
|
+
*
|
|
50
|
+
* **Details**
|
|
51
|
+
*
|
|
52
|
+
* The service stores the OpenAI create-embedding request payload without
|
|
53
|
+
* `input`, carrying options such as `model`, `dimensions`, `encoding_format`,
|
|
54
|
+
* and `user`.
|
|
55
|
+
*
|
|
56
|
+
* @see {@link withConfigOverride} for scoping embedding request overrides
|
|
57
|
+
*
|
|
58
|
+
* @category services
|
|
59
|
+
* @since 4.0.0
|
|
60
|
+
*/
|
|
61
|
+
export class Config extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiEmbeddingModel/Config") {}
|
|
62
|
+
/**
|
|
63
|
+
* Creates an `AiModel` for an OpenAI embedding model with its configured vector dimensions.
|
|
64
|
+
*
|
|
65
|
+
* **When to use**
|
|
66
|
+
*
|
|
67
|
+
* Use to provide an OpenAI `EmbeddingModel` and its `Dimensions` service to an
|
|
68
|
+
* Effect program.
|
|
69
|
+
*
|
|
70
|
+
* @see {@link layer} for providing only the embedding model service
|
|
71
|
+
* @see {@link withConfigOverride} for scoped request configuration overrides
|
|
72
|
+
*
|
|
73
|
+
* @category constructors
|
|
74
|
+
* @since 4.0.0
|
|
75
|
+
*/
|
|
76
|
+
export const model = (model, options) => AiModel.make("openai", model, Layer.merge(layer({
|
|
77
|
+
model,
|
|
78
|
+
config: {
|
|
79
|
+
...options.config,
|
|
80
|
+
dimensions: options.dimensions
|
|
81
|
+
}
|
|
82
|
+
}), Layer.succeed(EmbeddingModel.Dimensions, options.dimensions)));
|
|
83
|
+
/**
|
|
84
|
+
* Creates an OpenAI embedding model service.
|
|
85
|
+
*
|
|
86
|
+
* **When to use**
|
|
87
|
+
*
|
|
88
|
+
* Use to construct the `EmbeddingModel.Service` effectfully when
|
|
89
|
+
* `OpenAiClient` is already available in the environment or when the service
|
|
90
|
+
* value is needed directly.
|
|
91
|
+
*
|
|
92
|
+
* **Details**
|
|
93
|
+
*
|
|
94
|
+
* The `model` option is sent with each embedding request. Constructor `config`
|
|
95
|
+
* supplies create-embedding request fields other than `model` and `input`, and
|
|
96
|
+
* scoped overrides from `withConfigOverride` are merged last for each request.
|
|
97
|
+
*
|
|
98
|
+
* **Gotchas**
|
|
99
|
+
*
|
|
100
|
+
* The service expects numeric embedding vectors. It fails with
|
|
101
|
+
* `InvalidOutputError` when the provider returns base64 embeddings,
|
|
102
|
+
* out-of-range indexes, duplicate indexes, or an unexpected number of
|
|
103
|
+
* embeddings.
|
|
104
|
+
*
|
|
105
|
+
* @see {@link layer} for providing the embedding model service as a layer
|
|
106
|
+
* @see {@link model} for creating an `AiModel` that also provides dimensions
|
|
107
|
+
* @see {@link withConfigOverride} for scoped request configuration overrides
|
|
108
|
+
*
|
|
109
|
+
* @category constructors
|
|
110
|
+
* @since 4.0.0
|
|
111
|
+
*/
|
|
112
|
+
export const make = /*#__PURE__*/Effect.fnUntraced(function* ({
|
|
113
|
+
model,
|
|
114
|
+
config: providerConfig
|
|
115
|
+
}) {
|
|
116
|
+
const client = yield* OpenAiClient;
|
|
117
|
+
const makeConfig = Effect.gen(function* () {
|
|
118
|
+
const services = yield* Effect.context();
|
|
119
|
+
return {
|
|
120
|
+
model,
|
|
121
|
+
...providerConfig,
|
|
122
|
+
...services.mapUnsafe.get(Config.key)
|
|
123
|
+
};
|
|
124
|
+
});
|
|
125
|
+
return yield* EmbeddingModel.make({
|
|
126
|
+
embedMany: Effect.fnUntraced(function* ({
|
|
127
|
+
inputs
|
|
128
|
+
}) {
|
|
129
|
+
const config = yield* makeConfig;
|
|
130
|
+
const response = yield* client.createEmbedding({
|
|
131
|
+
...config,
|
|
132
|
+
input: inputs
|
|
133
|
+
});
|
|
134
|
+
return yield* mapProviderResponse(inputs.length, response);
|
|
135
|
+
})
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
/**
|
|
139
|
+
* Creates a layer for the OpenAI embedding model.
|
|
140
|
+
*
|
|
141
|
+
* **When to use**
|
|
142
|
+
*
|
|
143
|
+
* Use when composing application layers and you want OpenAI to satisfy
|
|
144
|
+
* `EmbeddingModel.EmbeddingModel` while supplying `OpenAiClient` from another
|
|
145
|
+
* layer.
|
|
146
|
+
*
|
|
147
|
+
* **Gotchas**
|
|
148
|
+
*
|
|
149
|
+
* Use the default floating-point embedding format. The service expects numeric
|
|
150
|
+
* vectors and fails with `InvalidOutputError` if OpenAI returns base64
|
|
151
|
+
* embeddings.
|
|
152
|
+
*
|
|
153
|
+
* @see {@link make} for constructing the embedding model service effectfully
|
|
154
|
+
* @see {@link model} for creating an `AiModel` that also provides embedding dimensions
|
|
155
|
+
*
|
|
156
|
+
* @category layers
|
|
157
|
+
* @since 4.0.0
|
|
158
|
+
*/
|
|
159
|
+
export const layer = options => Layer.effect(EmbeddingModel.EmbeddingModel, make(options));
|
|
160
|
+
/**
|
|
161
|
+
* Provides config overrides for OpenAI embedding model operations.
|
|
162
|
+
*
|
|
163
|
+
* **When to use**
|
|
164
|
+
*
|
|
165
|
+
* Use when a single effect or workflow needs scoped OpenAI embedding request
|
|
166
|
+
* defaults without rebuilding the embedding model service.
|
|
167
|
+
*
|
|
168
|
+
* **Details**
|
|
169
|
+
*
|
|
170
|
+
* Supports both data-first and data-last forms. Existing scoped config is read
|
|
171
|
+
* first, then the provided overrides are applied so override fields take
|
|
172
|
+
* precedence.
|
|
173
|
+
*
|
|
174
|
+
* @see {@link Config} for the scoped embedding request configuration service
|
|
175
|
+
*
|
|
176
|
+
* @category configuration
|
|
177
|
+
* @since 4.0.0
|
|
178
|
+
*/
|
|
179
|
+
export const withConfigOverride = /*#__PURE__*/dual(2, (self, overrides) => Effect.flatMap(Effect.serviceOption(Config), config => Effect.provideService(self, Config, {
|
|
180
|
+
...(config._tag === "Some" ? config.value : {}),
|
|
181
|
+
...overrides
|
|
182
|
+
})));
|
|
183
|
+
const mapProviderResponse = (inputLength, response) => {
|
|
184
|
+
if (response.data.length !== inputLength) {
|
|
185
|
+
return Effect.fail(invalidOutput("Provider returned " + response.data.length + " embeddings but expected " + inputLength));
|
|
186
|
+
}
|
|
187
|
+
const results = new Array(inputLength);
|
|
188
|
+
const seen = new Set();
|
|
189
|
+
for (const entry of response.data) {
|
|
190
|
+
if (!Number.isInteger(entry.index) || entry.index < 0 || entry.index >= inputLength) {
|
|
191
|
+
return Effect.fail(invalidOutput("Provider returned invalid embedding index: " + entry.index));
|
|
192
|
+
}
|
|
193
|
+
if (seen.has(entry.index)) {
|
|
194
|
+
return Effect.fail(invalidOutput("Provider returned duplicate embedding index: " + entry.index));
|
|
195
|
+
}
|
|
196
|
+
if (!Array.isArray(entry.embedding)) {
|
|
197
|
+
return Effect.fail(invalidOutput("Provider returned non-vector embedding at index " + entry.index));
|
|
198
|
+
}
|
|
199
|
+
seen.add(entry.index);
|
|
200
|
+
results[entry.index] = [...entry.embedding];
|
|
201
|
+
}
|
|
202
|
+
if (seen.size !== inputLength) {
|
|
203
|
+
return Effect.fail(invalidOutput("Provider returned embeddings for " + seen.size + " inputs but expected " + inputLength));
|
|
204
|
+
}
|
|
205
|
+
return Effect.succeed({
|
|
206
|
+
results,
|
|
207
|
+
usage: {
|
|
208
|
+
inputTokens: response.usage?.prompt_tokens
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
};
|
|
212
|
+
const invalidOutput = description => AiError.make({
|
|
213
|
+
module: "OpenAiEmbeddingModel",
|
|
214
|
+
method: "embedMany",
|
|
215
|
+
reason: new AiError.InvalidOutputError({
|
|
216
|
+
description
|
|
217
|
+
})
|
|
218
|
+
});
|
|
219
|
+
//# sourceMappingURL=OpenAiEmbeddingModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiEmbeddingModel.js","names":["Context","Effect","dual","Layer","AiError","EmbeddingModel","AiModel","OpenAiClient","Config","Service","model","options","make","merge","layer","config","dimensions","succeed","Dimensions","fnUntraced","providerConfig","client","makeConfig","gen","services","context","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","isArray","embedding","add","size","usage","inputTokens","prompt_tokens","description","module","method","reason","InvalidOutputError"],"sources":["../src/OpenAiEmbeddingModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/OpenAiError.d.ts
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* Provides OpenAI-specific metadata fields for AI error types through module
|
|
5
5
|
* augmentation, enabling typed access to OpenAI error details.
|
|
6
6
|
*
|
|
7
|
-
* @since
|
|
7
|
+
* @since 4.0.0
|
|
8
8
|
*/
|
|
9
9
|
/**
|
|
10
10
|
* OpenAI-specific error metadata fields.
|
|
11
11
|
*
|
|
12
|
-
* @since 1.0.0
|
|
13
12
|
* @category models
|
|
13
|
+
* @since 4.0.0
|
|
14
14
|
*/
|
|
15
15
|
export type OpenAiErrorMetadata = {
|
|
16
16
|
/**
|
|
@@ -29,11 +29,13 @@ export type OpenAiErrorMetadata = {
|
|
|
29
29
|
/**
|
|
30
30
|
* OpenAI-specific rate limit metadata fields.
|
|
31
31
|
*
|
|
32
|
+
* **Details**
|
|
33
|
+
*
|
|
32
34
|
* Extends base error metadata with rate limit specific information from
|
|
33
35
|
* OpenAI's rate limit headers.
|
|
34
36
|
*
|
|
35
|
-
* @since 1.0.0
|
|
36
37
|
* @category models
|
|
38
|
+
* @since 4.0.0
|
|
37
39
|
*/
|
|
38
40
|
export type OpenAiRateLimitMetadata = OpenAiErrorMetadata & {
|
|
39
41
|
/**
|
|
@@ -54,45 +56,176 @@ export type OpenAiRateLimitMetadata = OpenAiErrorMetadata & {
|
|
|
54
56
|
readonly resetTokens: string | null;
|
|
55
57
|
};
|
|
56
58
|
declare module "effect/unstable/ai/AiError" {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
/**
|
|
60
|
+
* OpenAI metadata attached to `RateLimitError` values.
|
|
61
|
+
*
|
|
62
|
+
* **Details**
|
|
63
|
+
*
|
|
64
|
+
* Captures OpenAI error details together with rate limit header information
|
|
65
|
+
* from responses where the provider rejected the request because a limit was
|
|
66
|
+
* reached.
|
|
67
|
+
*
|
|
68
|
+
* @category configuration
|
|
69
|
+
* @since 4.0.0
|
|
70
|
+
*/
|
|
71
|
+
interface RateLimitErrorMetadata {
|
|
72
|
+
/**
|
|
73
|
+
* OpenAI-specific details for the rate limit response.
|
|
74
|
+
*/
|
|
75
|
+
readonly openai?: OpenAiRateLimitMetadata | null;
|
|
61
76
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
77
|
+
/**
|
|
78
|
+
* OpenAI metadata attached to `QuotaExhaustedError` values.
|
|
79
|
+
*
|
|
80
|
+
* **Details**
|
|
81
|
+
*
|
|
82
|
+
* Preserves provider error details for failures caused by exhausted account,
|
|
83
|
+
* billing, or usage quota.
|
|
84
|
+
*
|
|
85
|
+
* @category configuration
|
|
86
|
+
* @since 4.0.0
|
|
87
|
+
*/
|
|
88
|
+
interface QuotaExhaustedErrorMetadata {
|
|
89
|
+
/**
|
|
90
|
+
* OpenAI-specific details for the quota exhaustion response.
|
|
91
|
+
*/
|
|
92
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
66
93
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
94
|
+
/**
|
|
95
|
+
* OpenAI metadata attached to `AuthenticationError` values.
|
|
96
|
+
*
|
|
97
|
+
* **Details**
|
|
98
|
+
*
|
|
99
|
+
* Preserves provider error details for failed API key, authorization, or
|
|
100
|
+
* permission checks.
|
|
101
|
+
*
|
|
102
|
+
* @category configuration
|
|
103
|
+
* @since 4.0.0
|
|
104
|
+
*/
|
|
105
|
+
interface AuthenticationErrorMetadata {
|
|
106
|
+
/**
|
|
107
|
+
* OpenAI-specific details for the authentication failure.
|
|
108
|
+
*/
|
|
109
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
71
110
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
111
|
+
/**
|
|
112
|
+
* OpenAI metadata attached to `ContentPolicyError` values.
|
|
113
|
+
*
|
|
114
|
+
* **Details**
|
|
115
|
+
*
|
|
116
|
+
* Preserves provider error details when OpenAI rejects input or output because
|
|
117
|
+
* it violates a content policy.
|
|
118
|
+
*
|
|
119
|
+
* @category configuration
|
|
120
|
+
* @since 4.0.0
|
|
121
|
+
*/
|
|
122
|
+
interface ContentPolicyErrorMetadata {
|
|
123
|
+
/**
|
|
124
|
+
* OpenAI-specific details for the content policy response.
|
|
125
|
+
*/
|
|
126
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
76
127
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
128
|
+
/**
|
|
129
|
+
* OpenAI metadata attached to `InvalidRequestError` values.
|
|
130
|
+
*
|
|
131
|
+
* **Details**
|
|
132
|
+
*
|
|
133
|
+
* Preserves provider error details for malformed requests, unsupported
|
|
134
|
+
* parameters, or other request validation failures reported by OpenAI.
|
|
135
|
+
*
|
|
136
|
+
* @category configuration
|
|
137
|
+
* @since 4.0.0
|
|
138
|
+
*/
|
|
139
|
+
interface InvalidRequestErrorMetadata {
|
|
140
|
+
/**
|
|
141
|
+
* OpenAI-specific details for the invalid request response.
|
|
142
|
+
*/
|
|
143
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
81
144
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
145
|
+
/**
|
|
146
|
+
* OpenAI metadata attached to `InternalProviderError` values.
|
|
147
|
+
*
|
|
148
|
+
* **Details**
|
|
149
|
+
*
|
|
150
|
+
* Preserves provider error details for OpenAI-side failures such as transient
|
|
151
|
+
* server errors.
|
|
152
|
+
*
|
|
153
|
+
* @category configuration
|
|
154
|
+
* @since 4.0.0
|
|
155
|
+
*/
|
|
156
|
+
interface InternalProviderErrorMetadata {
|
|
157
|
+
/**
|
|
158
|
+
* OpenAI-specific details for the internal provider response.
|
|
159
|
+
*/
|
|
160
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* OpenAI metadata attached to `InvalidOutputError` values.
|
|
164
|
+
*
|
|
165
|
+
* **Details**
|
|
166
|
+
*
|
|
167
|
+
* Preserves provider error details when an OpenAI response cannot be parsed or
|
|
168
|
+
* validated as the expected output.
|
|
169
|
+
*
|
|
170
|
+
* @category configuration
|
|
171
|
+
* @since 4.0.0
|
|
172
|
+
*/
|
|
173
|
+
interface InvalidOutputErrorMetadata {
|
|
174
|
+
/**
|
|
175
|
+
* OpenAI-specific details for the invalid output response.
|
|
176
|
+
*/
|
|
177
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
86
178
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
179
|
+
/**
|
|
180
|
+
* OpenAI metadata attached to `StructuredOutputError` values.
|
|
181
|
+
*
|
|
182
|
+
* **Details**
|
|
183
|
+
*
|
|
184
|
+
* Preserves provider error details when OpenAI returns content that does not
|
|
185
|
+
* satisfy the requested structured output schema.
|
|
186
|
+
*
|
|
187
|
+
* @category configuration
|
|
188
|
+
* @since 4.0.0
|
|
189
|
+
*/
|
|
190
|
+
interface StructuredOutputErrorMetadata {
|
|
191
|
+
/**
|
|
192
|
+
* OpenAI-specific details for the structured output failure.
|
|
193
|
+
*/
|
|
194
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
91
195
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
196
|
+
/**
|
|
197
|
+
* OpenAI metadata attached to `UnsupportedSchemaError` values.
|
|
198
|
+
*
|
|
199
|
+
* **Details**
|
|
200
|
+
*
|
|
201
|
+
* Preserves provider error details when an unsupported schema failure is
|
|
202
|
+
* associated with an OpenAI response.
|
|
203
|
+
*
|
|
204
|
+
* @category configuration
|
|
205
|
+
* @since 4.0.0
|
|
206
|
+
*/
|
|
207
|
+
interface UnsupportedSchemaErrorMetadata {
|
|
208
|
+
/**
|
|
209
|
+
* OpenAI-specific details for the unsupported schema failure.
|
|
210
|
+
*/
|
|
211
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* OpenAI metadata attached to `UnknownError` values.
|
|
215
|
+
*
|
|
216
|
+
* **Details**
|
|
217
|
+
*
|
|
218
|
+
* Preserves provider error details for OpenAI failures that do not map cleanly
|
|
219
|
+
* to a more specific AI error category.
|
|
220
|
+
*
|
|
221
|
+
* @category configuration
|
|
222
|
+
* @since 4.0.0
|
|
223
|
+
*/
|
|
224
|
+
interface UnknownErrorMetadata {
|
|
225
|
+
/**
|
|
226
|
+
* OpenAI-specific details for the unclassified provider failure.
|
|
227
|
+
*/
|
|
228
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
96
229
|
}
|
|
97
230
|
}
|
|
98
231
|
//# sourceMappingURL=OpenAiError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiError.d.ts","sourceRoot":"","sources":["../src/OpenAiError.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"OpenAiError.d.ts","sourceRoot":"","sources":["../src/OpenAiError.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG;IAC1D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,OAAO,QAAQ,4BAA4B,CAAC;IAC1C;;;;;;;;;;;OAWG;IACH,UAAiB,sBAAsB;QACrC;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACjD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,0BAA0B;QACzC;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,6BAA6B;QAC5C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,0BAA0B;QACzC;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,6BAA6B;QAC5C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,8BAA8B;QAC7C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,oBAAoB;QACnC;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;CACF"}
|
package/dist/OpenAiError.js
CHANGED