@sweetretry/ai-sdk-volcengine-adapter 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat/convert-to-volcengine-chat-message.d.ts +3 -0
- package/dist/chat/convert-to-volcengine-chat-message.js +189 -0
- package/dist/chat/convert-to-volcengine-chat-message.js.map +1 -0
- package/dist/chat/convert-volcengine-chat-usage.d.ts +28 -0
- package/dist/chat/convert-volcengine-chat-usage.js +51 -0
- package/dist/chat/convert-volcengine-chat-usage.js.map +1 -0
- package/dist/chat/get-response-metadata.d.ts +9 -0
- package/dist/chat/get-response-metadata.js +9 -0
- package/dist/chat/get-response-metadata.js.map +1 -0
- package/dist/chat/index.d.ts +2 -0
- package/dist/chat/index.js +3 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/map-volcengine-finish-reason.d.ts +2 -0
- package/dist/chat/map-volcengine-finish-reason.js +32 -0
- package/dist/chat/map-volcengine-finish-reason.js.map +1 -0
- package/dist/chat/volcengine-chat-language-model.d.ts +22 -0
- package/dist/chat/volcengine-chat-language-model.js +443 -0
- package/dist/chat/volcengine-chat-language-model.js.map +1 -0
- package/dist/chat/volcengine-chat-options.d.ts +16 -0
- package/dist/chat/volcengine-chat-options.js +29 -0
- package/dist/chat/volcengine-chat-options.js.map +1 -0
- package/dist/chat/volcengine-chat-prompt.d.ts +49 -0
- package/dist/chat/volcengine-chat-prompt.js +4 -0
- package/dist/chat/volcengine-chat-prompt.js.map +1 -0
- package/dist/chat/volcengine-error.d.ts +1 -0
- package/dist/chat/volcengine-error.js +16 -0
- package/dist/chat/volcengine-error.js.map +1 -0
- package/dist/chat/volcengine-prepare-tools.d.ts +30 -0
- package/dist/chat/volcengine-prepare-tools.js +96 -0
- package/dist/chat/volcengine-prepare-tools.js.map +1 -0
- package/dist/convert-to-volcengine-chat-message.js +12 -0
- package/dist/convert-to-volcengine-chat-message.js.map +1 -1
- package/dist/image/index.d.ts +1 -0
- package/dist/image/index.js +3 -0
- package/dist/image/index.js.map +1 -0
- package/dist/image/volcengine-image-api.d.ts +22 -0
- package/dist/image/volcengine-image-api.js +22 -0
- package/dist/image/volcengine-image-api.js.map +1 -0
- package/dist/image/volcengine-image-model.d.ts +29 -0
- package/dist/image/volcengine-image-model.js +99 -0
- package/dist/image/volcengine-image-model.js.map +1 -0
- package/dist/image/volcengine-image-options.d.ts +24 -0
- package/dist/image/volcengine-image-options.js +32 -0
- package/dist/image/volcengine-image-options.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tool/image-generation.d.ts +107 -0
- package/dist/tool/image-generation.js +79 -0
- package/dist/tool/image-generation.js.map +1 -0
- package/dist/tool/web-search.d.ts +70 -2
- package/dist/tool/web-search.js +42 -29
- package/dist/tool/web-search.js.map +1 -1
- package/dist/volcengine-chat-prompt.d.ts +3 -0
- package/dist/volcengine-chat-prompt.js.map +1 -1
- package/dist/volcengine-prepare-tools.js +46 -5
- package/dist/volcengine-prepare-tools.js.map +1 -1
- package/dist/volcengine-provider.d.ts +12 -2
- package/dist/volcengine-provider.js +24 -23
- package/dist/volcengine-provider.js.map +1 -1
- package/dist/volcengine-tools.d.ts +3 -1
- package/package.json +12 -3
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
import { NoContentGeneratedError } from "@ai-sdk/provider";
|
|
2
|
+
import { combineHeaders, createEventSourceResponseHandler, createJsonResponseHandler, generateId, injectJsonInstructionIntoMessages, parseProviderOptions, postJsonToApi, removeUndefinedEntries } from "@ai-sdk/provider-utils";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { convertToVolcengineChatMessages } from "./convert-to-volcengine-chat-message";
|
|
5
|
+
import { convertVolcengineUsage } from "./convert-volcengine-chat-usage";
|
|
6
|
+
import { getResponseMetadata } from "./get-response-metadata";
|
|
7
|
+
import { mapVolcengineFinishReason } from "./map-volcengine-finish-reason";
|
|
8
|
+
import { volcengineChatOptions } from "./volcengine-chat-options";
|
|
9
|
+
import { volcengineFailedResponseHandler } from "./volcengine-error";
|
|
10
|
+
import { prepareTools } from "./volcengine-prepare-tools";
|
|
11
|
+
// Response schemas
|
|
12
|
+
const volcengineUsageSchema = z.object({
|
|
13
|
+
prompt_tokens: z.number().optional(),
|
|
14
|
+
completion_tokens: z.number().optional(),
|
|
15
|
+
total_tokens: z.number().optional(),
|
|
16
|
+
prompt_tokens_details: z.object({
|
|
17
|
+
cached_tokens: z.number().optional()
|
|
18
|
+
}).optional(),
|
|
19
|
+
completion_tokens_details: z.object({
|
|
20
|
+
reasoning_tokens: z.number().optional()
|
|
21
|
+
}).optional()
|
|
22
|
+
});
|
|
23
|
+
const volcengineToolCallSchema = z.object({
|
|
24
|
+
id: z.string(),
|
|
25
|
+
type: z.literal("function"),
|
|
26
|
+
function: z.object({
|
|
27
|
+
name: z.string(),
|
|
28
|
+
arguments: z.string()
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
const volcengineMessageSchema = z.object({
|
|
32
|
+
role: z.literal("assistant"),
|
|
33
|
+
content: z.string().nullable().optional(),
|
|
34
|
+
reasoning_content: z.string().nullable().optional(),
|
|
35
|
+
tool_calls: z.array(volcengineToolCallSchema).optional()
|
|
36
|
+
});
|
|
37
|
+
const volcengineChoiceSchema = z.object({
|
|
38
|
+
index: z.number(),
|
|
39
|
+
message: volcengineMessageSchema,
|
|
40
|
+
finish_reason: z.string().nullable().optional()
|
|
41
|
+
});
|
|
42
|
+
const volcengineChatResponseSchema = z.object({
|
|
43
|
+
id: z.string().optional(),
|
|
44
|
+
object: z.string().optional(),
|
|
45
|
+
created: z.number().optional(),
|
|
46
|
+
model: z.string().optional(),
|
|
47
|
+
choices: z.array(volcengineChoiceSchema),
|
|
48
|
+
usage: volcengineUsageSchema.optional()
|
|
49
|
+
});
|
|
50
|
+
// Streaming schemas
|
|
51
|
+
const volcengineDeltaSchema = z.object({
|
|
52
|
+
role: z.string().optional(),
|
|
53
|
+
content: z.string().nullable().optional(),
|
|
54
|
+
reasoning_content: z.string().nullable().optional(),
|
|
55
|
+
tool_calls: z.array(z.object({
|
|
56
|
+
index: z.number(),
|
|
57
|
+
id: z.string().optional(),
|
|
58
|
+
type: z.literal("function").optional(),
|
|
59
|
+
function: z.object({
|
|
60
|
+
name: z.string().optional(),
|
|
61
|
+
arguments: z.string().optional()
|
|
62
|
+
}).optional()
|
|
63
|
+
})).optional()
|
|
64
|
+
});
|
|
65
|
+
const volcengineChunkChoiceSchema = z.object({
|
|
66
|
+
index: z.number(),
|
|
67
|
+
delta: volcengineDeltaSchema,
|
|
68
|
+
finish_reason: z.string().nullable().optional()
|
|
69
|
+
});
|
|
70
|
+
const volcengineChatChunkSchema = z.object({
|
|
71
|
+
id: z.string().optional(),
|
|
72
|
+
object: z.string().optional(),
|
|
73
|
+
created: z.number().optional(),
|
|
74
|
+
model: z.string().optional(),
|
|
75
|
+
choices: z.array(volcengineChunkChoiceSchema).optional(),
|
|
76
|
+
usage: volcengineUsageSchema.nullable().optional()
|
|
77
|
+
});
|
|
78
|
+
export class VolcengineChatLanguageModel {
|
|
79
|
+
specificationVersion = "v3";
|
|
80
|
+
provider;
|
|
81
|
+
modelId;
|
|
82
|
+
supportedUrls = {};
|
|
83
|
+
config;
|
|
84
|
+
generateId;
|
|
85
|
+
constructor(modelId, config){
|
|
86
|
+
this.modelId = modelId;
|
|
87
|
+
this.provider = config.provider;
|
|
88
|
+
this.config = config;
|
|
89
|
+
this.generateId = config.generateId ?? generateId;
|
|
90
|
+
}
|
|
91
|
+
async getArgs({ responseFormat, prompt, maxOutputTokens, temperature, topP, topK, presencePenalty, frequencyPenalty, stopSequences, seed, tools, toolChoice, providerOptions }) {
|
|
92
|
+
const warnings = [];
|
|
93
|
+
// Parse provider options
|
|
94
|
+
const options = await parseProviderOptions({
|
|
95
|
+
provider: "volcengine",
|
|
96
|
+
providerOptions,
|
|
97
|
+
schema: volcengineChatOptions
|
|
98
|
+
}) ?? {};
|
|
99
|
+
// Unsupported features warnings
|
|
100
|
+
if (topK != null) {
|
|
101
|
+
warnings.push({
|
|
102
|
+
type: "unsupported",
|
|
103
|
+
feature: "topK"
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (presencePenalty != null) {
|
|
107
|
+
warnings.push({
|
|
108
|
+
type: "unsupported",
|
|
109
|
+
feature: "presencePenalty"
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
if (frequencyPenalty != null) {
|
|
113
|
+
warnings.push({
|
|
114
|
+
type: "unsupported",
|
|
115
|
+
feature: "frequencyPenalty"
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
if (stopSequences != null && stopSequences.length > 0) {
|
|
119
|
+
warnings.push({
|
|
120
|
+
type: "unsupported",
|
|
121
|
+
feature: "stopSequences"
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// Handle response format
|
|
125
|
+
let messages = convertToVolcengineChatMessages(prompt);
|
|
126
|
+
let responseFormatConfig;
|
|
127
|
+
if (responseFormat?.type === "json") {
|
|
128
|
+
if (responseFormat.schema != null && options.structuredOutputs !== false) {
|
|
129
|
+
responseFormatConfig = {
|
|
130
|
+
type: "json_schema",
|
|
131
|
+
json_schema: {
|
|
132
|
+
name: responseFormat.name ?? "response",
|
|
133
|
+
description: responseFormat.description,
|
|
134
|
+
schema: responseFormat.schema,
|
|
135
|
+
strict: options.strictJsonSchema ?? false
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
} else {
|
|
139
|
+
responseFormatConfig = {
|
|
140
|
+
type: "json_object"
|
|
141
|
+
};
|
|
142
|
+
messages = convertToVolcengineChatMessages(injectJsonInstructionIntoMessages({
|
|
143
|
+
messages: prompt,
|
|
144
|
+
schema: responseFormat.schema
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// Prepare tools
|
|
149
|
+
const { tools: volcengineTools, toolChoice: volcengineToolChoice, toolWarnings } = await prepareTools({
|
|
150
|
+
tools,
|
|
151
|
+
toolChoice
|
|
152
|
+
});
|
|
153
|
+
// Convert boolean thinking option to Volcengine API format
|
|
154
|
+
const thinkingConfig = options.thinking === true ? {
|
|
155
|
+
type: "enabled"
|
|
156
|
+
} : options.thinking === false ? {
|
|
157
|
+
type: "disabled"
|
|
158
|
+
} : undefined;
|
|
159
|
+
return {
|
|
160
|
+
args: removeUndefinedEntries({
|
|
161
|
+
model: this.modelId,
|
|
162
|
+
messages,
|
|
163
|
+
max_tokens: maxOutputTokens,
|
|
164
|
+
temperature,
|
|
165
|
+
top_p: topP,
|
|
166
|
+
seed,
|
|
167
|
+
response_format: responseFormatConfig,
|
|
168
|
+
tools: volcengineTools,
|
|
169
|
+
tool_choice: volcengineToolChoice,
|
|
170
|
+
parallel_tool_calls: options.parallelToolCalls,
|
|
171
|
+
thinking: thinkingConfig
|
|
172
|
+
}),
|
|
173
|
+
warnings: [
|
|
174
|
+
...warnings,
|
|
175
|
+
...toolWarnings
|
|
176
|
+
]
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
async doGenerate(options) {
|
|
180
|
+
const { args, warnings } = await this.getArgs(options);
|
|
181
|
+
const { value: response, responseHeaders } = await postJsonToApi({
|
|
182
|
+
url: `${this.config.baseURL}/chat/completions`,
|
|
183
|
+
headers: combineHeaders(this.config.headers(), options.headers),
|
|
184
|
+
body: args,
|
|
185
|
+
failedResponseHandler: volcengineFailedResponseHandler,
|
|
186
|
+
successfulResponseHandler: createJsonResponseHandler(volcengineChatResponseSchema),
|
|
187
|
+
abortSignal: options.abortSignal,
|
|
188
|
+
fetch: this.config.fetch
|
|
189
|
+
});
|
|
190
|
+
const choice = response.choices[0];
|
|
191
|
+
if (!choice) {
|
|
192
|
+
throw new NoContentGeneratedError({
|
|
193
|
+
message: "No choices returned in response"
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const content = this.extractContent(choice.message);
|
|
197
|
+
const usage = convertVolcengineUsage(response.usage);
|
|
198
|
+
const finishReason = mapVolcengineFinishReason(choice.finish_reason);
|
|
199
|
+
return {
|
|
200
|
+
content,
|
|
201
|
+
usage,
|
|
202
|
+
finishReason,
|
|
203
|
+
warnings,
|
|
204
|
+
request: {
|
|
205
|
+
body: {
|
|
206
|
+
...args,
|
|
207
|
+
stream: false
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
response: {
|
|
211
|
+
...getResponseMetadata(response),
|
|
212
|
+
headers: responseHeaders,
|
|
213
|
+
body: response
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
async doStream(options) {
|
|
218
|
+
const { args, warnings } = await this.getArgs(options);
|
|
219
|
+
const { value: eventStream, responseHeaders } = await postJsonToApi({
|
|
220
|
+
url: `${this.config.baseURL}/chat/completions`,
|
|
221
|
+
headers: combineHeaders(this.config.headers(), options.headers),
|
|
222
|
+
body: {
|
|
223
|
+
...args,
|
|
224
|
+
stream: true,
|
|
225
|
+
stream_options: {
|
|
226
|
+
include_usage: true
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
failedResponseHandler: volcengineFailedResponseHandler,
|
|
230
|
+
successfulResponseHandler: createEventSourceResponseHandler(volcengineChatChunkSchema),
|
|
231
|
+
abortSignal: options.abortSignal,
|
|
232
|
+
fetch: this.config.fetch
|
|
233
|
+
});
|
|
234
|
+
const self = this;
|
|
235
|
+
const stream = new ReadableStream({
|
|
236
|
+
async start (controller) {
|
|
237
|
+
const reader = eventStream.getReader();
|
|
238
|
+
let textId;
|
|
239
|
+
let reasoningId;
|
|
240
|
+
const toolCallState = new Map();
|
|
241
|
+
let finishReason;
|
|
242
|
+
let usage;
|
|
243
|
+
let responseMetadata;
|
|
244
|
+
controller.enqueue({
|
|
245
|
+
type: "stream-start",
|
|
246
|
+
warnings
|
|
247
|
+
});
|
|
248
|
+
try {
|
|
249
|
+
while(true){
|
|
250
|
+
const { done, value } = await reader.read();
|
|
251
|
+
if (done) {
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
if (value.success === false) {
|
|
255
|
+
controller.enqueue({
|
|
256
|
+
type: "error",
|
|
257
|
+
error: value.error
|
|
258
|
+
});
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
const chunk = value.value;
|
|
262
|
+
if (options.includeRawChunks) {
|
|
263
|
+
controller.enqueue({
|
|
264
|
+
type: "raw",
|
|
265
|
+
rawValue: chunk
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
// Extract response metadata from first chunk
|
|
269
|
+
if (!responseMetadata && chunk.id) {
|
|
270
|
+
responseMetadata = getResponseMetadata(chunk);
|
|
271
|
+
controller.enqueue({
|
|
272
|
+
type: "response-metadata",
|
|
273
|
+
...responseMetadata
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
const choice = chunk.choices?.[0];
|
|
277
|
+
if (!choice) {
|
|
278
|
+
// Handle usage in final chunk (when choices is empty)
|
|
279
|
+
if (chunk.usage != null) {
|
|
280
|
+
usage = convertVolcengineUsage(chunk.usage);
|
|
281
|
+
}
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
const delta = choice.delta;
|
|
285
|
+
// Handle reasoning content
|
|
286
|
+
if (delta.reasoning_content) {
|
|
287
|
+
if (!reasoningId) {
|
|
288
|
+
reasoningId = self.generateId();
|
|
289
|
+
controller.enqueue({
|
|
290
|
+
type: "reasoning-start",
|
|
291
|
+
id: reasoningId
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
controller.enqueue({
|
|
295
|
+
type: "reasoning-delta",
|
|
296
|
+
id: reasoningId,
|
|
297
|
+
delta: delta.reasoning_content
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
// Handle text content
|
|
301
|
+
if (delta.content) {
|
|
302
|
+
if (!textId) {
|
|
303
|
+
textId = self.generateId();
|
|
304
|
+
controller.enqueue({
|
|
305
|
+
type: "text-start",
|
|
306
|
+
id: textId
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
controller.enqueue({
|
|
310
|
+
type: "text-delta",
|
|
311
|
+
id: textId,
|
|
312
|
+
delta: delta.content
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
// Handle tool calls
|
|
316
|
+
if (delta.tool_calls) {
|
|
317
|
+
for (const toolCallDelta of delta.tool_calls){
|
|
318
|
+
const index = toolCallDelta.index;
|
|
319
|
+
let toolCall = toolCallState.get(index);
|
|
320
|
+
if (!toolCall) {
|
|
321
|
+
toolCall = {
|
|
322
|
+
id: toolCallDelta.id ?? self.generateId(),
|
|
323
|
+
name: toolCallDelta.function?.name ?? "",
|
|
324
|
+
arguments: ""
|
|
325
|
+
};
|
|
326
|
+
toolCallState.set(index, toolCall);
|
|
327
|
+
controller.enqueue({
|
|
328
|
+
type: "tool-input-start",
|
|
329
|
+
id: toolCall.id,
|
|
330
|
+
toolName: toolCall.name
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
if (toolCallDelta.function?.arguments) {
|
|
334
|
+
toolCall.arguments += toolCallDelta.function.arguments;
|
|
335
|
+
controller.enqueue({
|
|
336
|
+
type: "tool-input-delta",
|
|
337
|
+
id: toolCall.id,
|
|
338
|
+
delta: toolCallDelta.function.arguments
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// Handle finish reason
|
|
344
|
+
if (choice.finish_reason) {
|
|
345
|
+
finishReason = mapVolcengineFinishReason(choice.finish_reason);
|
|
346
|
+
}
|
|
347
|
+
// Handle usage
|
|
348
|
+
if (chunk.usage != null) {
|
|
349
|
+
usage = convertVolcengineUsage(chunk.usage);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
// Close open content parts
|
|
353
|
+
if (reasoningId) {
|
|
354
|
+
controller.enqueue({
|
|
355
|
+
type: "reasoning-end",
|
|
356
|
+
id: reasoningId
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
if (textId) {
|
|
360
|
+
controller.enqueue({
|
|
361
|
+
type: "text-end",
|
|
362
|
+
id: textId
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
// Close tool calls and emit tool-call events
|
|
366
|
+
toolCallState.forEach((toolCall)=>{
|
|
367
|
+
controller.enqueue({
|
|
368
|
+
type: "tool-input-end",
|
|
369
|
+
id: toolCall.id
|
|
370
|
+
});
|
|
371
|
+
controller.enqueue({
|
|
372
|
+
type: "tool-call",
|
|
373
|
+
toolCallId: toolCall.id,
|
|
374
|
+
toolName: toolCall.name,
|
|
375
|
+
input: toolCall.arguments
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
// Emit finish
|
|
379
|
+
controller.enqueue({
|
|
380
|
+
type: "finish",
|
|
381
|
+
finishReason: finishReason ?? {
|
|
382
|
+
unified: "other",
|
|
383
|
+
raw: undefined
|
|
384
|
+
},
|
|
385
|
+
usage: usage ?? convertVolcengineUsage(undefined)
|
|
386
|
+
});
|
|
387
|
+
} catch (error) {
|
|
388
|
+
controller.enqueue({
|
|
389
|
+
type: "error",
|
|
390
|
+
error
|
|
391
|
+
});
|
|
392
|
+
} finally{
|
|
393
|
+
controller.close();
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
return {
|
|
398
|
+
stream,
|
|
399
|
+
request: {
|
|
400
|
+
body: args
|
|
401
|
+
},
|
|
402
|
+
response: {
|
|
403
|
+
headers: responseHeaders
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
extractContent(message) {
|
|
408
|
+
const content = [];
|
|
409
|
+
// Extract reasoning content
|
|
410
|
+
if (message.reasoning_content) {
|
|
411
|
+
content.push({
|
|
412
|
+
type: "reasoning",
|
|
413
|
+
text: message.reasoning_content
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
// Extract text content
|
|
417
|
+
if (message.content) {
|
|
418
|
+
content.push({
|
|
419
|
+
type: "text",
|
|
420
|
+
text: message.content
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
// Extract tool calls
|
|
424
|
+
if (message.tool_calls) {
|
|
425
|
+
for (const toolCall of message.tool_calls){
|
|
426
|
+
content.push({
|
|
427
|
+
type: "tool-call",
|
|
428
|
+
toolCallId: toolCall.id,
|
|
429
|
+
toolName: toolCall.function.name,
|
|
430
|
+
input: toolCall.function.arguments
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
if (content.length === 0) {
|
|
435
|
+
throw new NoContentGeneratedError({
|
|
436
|
+
message: "No content in response message"
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
return content;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
//# sourceMappingURL=volcengine-chat-language-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/chat/volcengine-chat-language-model.ts"],"sourcesContent":["import {\n LanguageModelV3,\n LanguageModelV3CallOptions,\n LanguageModelV3Content,\n LanguageModelV3FinishReason,\n LanguageModelV3GenerateResult,\n LanguageModelV3StreamPart,\n LanguageModelV3StreamResult,\n LanguageModelV3ToolCall,\n LanguageModelV3Usage,\n NoContentGeneratedError,\n SharedV3Warning,\n} from \"@ai-sdk/provider\"\nimport {\n FetchFunction,\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n injectJsonInstructionIntoMessages,\n parseProviderOptions,\n postJsonToApi,\n removeUndefinedEntries,\n} from \"@ai-sdk/provider-utils\"\nimport { z } from \"zod\"\nimport { convertToVolcengineChatMessages } from \"./convert-to-volcengine-chat-message\"\nimport { convertVolcengineUsage } from \"./convert-volcengine-chat-usage\"\nimport { getResponseMetadata } from \"./get-response-metadata\"\nimport { mapVolcengineFinishReason } from \"./map-volcengine-finish-reason\"\nimport { volcengineChatOptions, VolcengineChatOptions } from \"./volcengine-chat-options\"\nimport { volcengineFailedResponseHandler } from \"./volcengine-error\"\nimport { prepareTools } from \"./volcengine-prepare-tools\"\n\nexport type VolcengineChatConfig = {\n provider: string\n baseURL: string\n headers: () => Record<string, string>\n fetch?: FetchFunction\n generateId?: () => string\n}\n\n// Response schemas\nconst volcengineUsageSchema = z.object({\n prompt_tokens: z.number().optional(),\n completion_tokens: z.number().optional(),\n total_tokens: z.number().optional(),\n prompt_tokens_details: z\n .object({\n cached_tokens: z.number().optional(),\n })\n .optional(),\n completion_tokens_details: z\n .object({\n reasoning_tokens: z.number().optional(),\n })\n .optional(),\n})\n\nconst volcengineToolCallSchema = z.object({\n id: z.string(),\n type: z.literal(\"function\"),\n function: z.object({\n name: z.string(),\n arguments: z.string(),\n }),\n})\n\nconst volcengineMessageSchema = z.object({\n role: z.literal(\"assistant\"),\n content: z.string().nullable().optional(),\n reasoning_content: z.string().nullable().optional(),\n tool_calls: z.array(volcengineToolCallSchema).optional(),\n})\n\nconst volcengineChoiceSchema = z.object({\n index: z.number(),\n message: volcengineMessageSchema,\n finish_reason: z.string().nullable().optional(),\n})\n\nconst volcengineChatResponseSchema = z.object({\n id: z.string().optional(),\n object: z.string().optional(),\n created: z.number().optional(),\n model: z.string().optional(),\n choices: z.array(volcengineChoiceSchema),\n usage: volcengineUsageSchema.optional(),\n})\n\n// Streaming schemas\nconst volcengineDeltaSchema = z.object({\n role: z.string().optional(),\n content: z.string().nullable().optional(),\n reasoning_content: z.string().nullable().optional(),\n tool_calls: z\n .array(\n z.object({\n index: z.number(),\n id: z.string().optional(),\n type: z.literal(\"function\").optional(),\n function: z\n .object({\n name: z.string().optional(),\n arguments: z.string().optional(),\n })\n .optional(),\n })\n )\n .optional(),\n})\n\nconst volcengineChunkChoiceSchema = z.object({\n index: z.number(),\n delta: volcengineDeltaSchema,\n finish_reason: z.string().nullable().optional(),\n})\n\nconst volcengineChatChunkSchema = z.object({\n id: z.string().optional(),\n object: z.string().optional(),\n created: z.number().optional(),\n model: z.string().optional(),\n choices: z.array(volcengineChunkChoiceSchema).optional(),\n usage: volcengineUsageSchema.nullable().optional(),\n})\n\nexport class VolcengineChatLanguageModel implements LanguageModelV3 {\n readonly specificationVersion = \"v3\" as const\n readonly provider: string\n readonly modelId: string\n readonly supportedUrls: Record<string, RegExp[]> = {}\n\n private readonly config: VolcengineChatConfig\n private readonly generateId: () => string\n\n constructor(modelId: string, config: VolcengineChatConfig) {\n this.modelId = modelId\n this.provider = config.provider\n this.config = config\n this.generateId = config.generateId ?? generateId\n }\n\n private async getArgs({\n responseFormat,\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n presencePenalty,\n frequencyPenalty,\n stopSequences,\n seed,\n tools,\n toolChoice,\n providerOptions,\n }: LanguageModelV3CallOptions) {\n const warnings: SharedV3Warning[] = []\n\n // Parse provider options\n const options =\n (await parseProviderOptions<VolcengineChatOptions>({\n provider: \"volcengine\",\n providerOptions,\n schema: volcengineChatOptions,\n })) ?? {}\n\n // Unsupported features warnings\n if (topK != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"topK\",\n })\n }\n\n if (presencePenalty != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"presencePenalty\",\n })\n }\n\n if (frequencyPenalty != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"frequencyPenalty\",\n })\n }\n\n if (stopSequences != null && stopSequences.length > 0) {\n warnings.push({\n type: \"unsupported\",\n feature: \"stopSequences\",\n })\n }\n\n // Handle response format\n let messages = convertToVolcengineChatMessages(prompt)\n let responseFormatConfig: Record<string, unknown> | undefined\n\n if (responseFormat?.type === \"json\") {\n if (responseFormat.schema != null && options.structuredOutputs !== false) {\n responseFormatConfig = {\n type: \"json_schema\",\n json_schema: {\n name: responseFormat.name ?? \"response\",\n description: responseFormat.description,\n schema: responseFormat.schema,\n strict: options.strictJsonSchema ?? false,\n },\n }\n } else {\n responseFormatConfig = { type: \"json_object\" }\n messages = convertToVolcengineChatMessages(\n injectJsonInstructionIntoMessages({\n messages: prompt,\n schema: responseFormat.schema,\n })\n )\n }\n }\n\n // Prepare tools\n const {\n tools: volcengineTools,\n toolChoice: volcengineToolChoice,\n toolWarnings,\n } = await prepareTools({ tools, toolChoice })\n\n // Convert boolean thinking option to Volcengine API format\n const thinkingConfig =\n options.thinking === true\n ? { type: \"enabled\" as const }\n : options.thinking === false\n ? { type: \"disabled\" as const }\n : undefined\n\n return {\n args: removeUndefinedEntries({\n model: this.modelId,\n messages,\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n seed,\n response_format: responseFormatConfig,\n tools: volcengineTools,\n tool_choice: volcengineToolChoice,\n parallel_tool_calls: options.parallelToolCalls,\n thinking: thinkingConfig,\n }),\n warnings: [...warnings, ...toolWarnings],\n }\n }\n\n async doGenerate(options: LanguageModelV3CallOptions): Promise<LanguageModelV3GenerateResult> {\n const { args, warnings } = await this.getArgs(options)\n\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: volcengineFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(volcengineChatResponseSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n })\n\n const choice = response.choices[0]\n\n if (!choice) {\n throw new NoContentGeneratedError({\n message: \"No choices returned in response\",\n })\n }\n\n const content = this.extractContent(choice.message)\n const usage = convertVolcengineUsage(response.usage)\n const finishReason = mapVolcengineFinishReason(choice.finish_reason)\n\n return {\n content,\n usage,\n finishReason,\n warnings,\n request: {\n body: {\n ...args,\n stream: false,\n }\n },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: response,\n },\n }\n }\n\n async doStream(options: LanguageModelV3CallOptions): Promise<LanguageModelV3StreamResult> {\n const { args, warnings } = await this.getArgs(options)\n\n const { value: eventStream, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body: { ...args, stream: true, stream_options: { include_usage: true } },\n failedResponseHandler: volcengineFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(volcengineChatChunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n })\n\n const self = this\n\n const stream = new ReadableStream<LanguageModelV3StreamPart>({\n async start(controller) {\n const reader = eventStream.getReader()\n let textId: string | undefined\n let reasoningId: string | undefined\n const toolCallState: Map<number, { id: string; name: string; arguments: string }> =\n new Map()\n let finishReason: LanguageModelV3FinishReason | undefined\n let usage: LanguageModelV3Usage | undefined\n let responseMetadata: { id?: string; modelId?: string; timestamp?: Date } | undefined\n\n controller.enqueue({ type: \"stream-start\", warnings })\n\n try {\n while (true) {\n const { done, value } = await reader.read()\n\n if (done) {\n break\n }\n\n if (value.success === false) {\n controller.enqueue({ type: \"error\", error: value.error })\n continue\n }\n\n const chunk = value.value\n\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk })\n }\n\n // Extract response metadata from first chunk\n if (!responseMetadata && chunk.id) {\n responseMetadata = getResponseMetadata(chunk)\n controller.enqueue({\n type: \"response-metadata\",\n ...responseMetadata,\n })\n }\n\n const choice = chunk.choices?.[0]\n if (!choice) {\n // Handle usage in final chunk (when choices is empty)\n if (chunk.usage != null) {\n usage = convertVolcengineUsage(chunk.usage)\n }\n continue\n }\n\n const delta = choice.delta\n\n // Handle reasoning content\n if (delta.reasoning_content) {\n if (!reasoningId) {\n reasoningId = self.generateId()\n controller.enqueue({ type: \"reasoning-start\", id: reasoningId })\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: reasoningId,\n delta: delta.reasoning_content,\n })\n }\n\n // Handle text content\n if (delta.content) {\n if (!textId) {\n textId = self.generateId()\n controller.enqueue({ type: \"text-start\", id: textId })\n }\n controller.enqueue({\n type: \"text-delta\",\n id: textId,\n delta: delta.content,\n })\n }\n\n // Handle tool calls\n if (delta.tool_calls) {\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index\n let toolCall = toolCallState.get(index)\n\n if (!toolCall) {\n toolCall = {\n id: toolCallDelta.id ?? self.generateId(),\n name: toolCallDelta.function?.name ?? \"\",\n arguments: \"\",\n }\n toolCallState.set(index, toolCall)\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall.id,\n toolName: toolCall.name,\n })\n }\n\n if (toolCallDelta.function?.arguments) {\n toolCall.arguments += toolCallDelta.function.arguments\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: toolCallDelta.function.arguments,\n })\n }\n }\n }\n\n // Handle finish reason\n if (choice.finish_reason) {\n finishReason = mapVolcengineFinishReason(choice.finish_reason)\n }\n\n // Handle usage\n if (chunk.usage != null) {\n usage = convertVolcengineUsage(chunk.usage)\n }\n }\n\n // Close open content parts\n if (reasoningId) {\n controller.enqueue({ type: \"reasoning-end\", id: reasoningId })\n }\n\n if (textId) {\n controller.enqueue({ type: \"text-end\", id: textId })\n }\n\n // Close tool calls and emit tool-call events\n toolCallState.forEach((toolCall) => {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id,\n })\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.name,\n input: toolCall.arguments,\n })\n })\n\n // Emit finish\n controller.enqueue({\n type: \"finish\",\n finishReason: finishReason ?? { unified: \"other\", raw: undefined },\n usage: usage ?? convertVolcengineUsage(undefined),\n })\n } catch (error) {\n controller.enqueue({ type: \"error\", error })\n } finally {\n controller.close()\n }\n },\n })\n\n return {\n stream,\n request: { body: args },\n response: { headers: responseHeaders },\n }\n }\n\n private extractContent(\n message: z.infer<typeof volcengineMessageSchema>\n ): LanguageModelV3Content[] {\n const content: LanguageModelV3Content[] = []\n\n // Extract reasoning content\n if (message.reasoning_content) {\n content.push({\n type: \"reasoning\",\n text: message.reasoning_content,\n })\n }\n\n // Extract text content\n if (message.content) {\n content.push({\n type: \"text\",\n text: message.content,\n })\n }\n\n // Extract tool calls\n if (message.tool_calls) {\n for (const toolCall of message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments,\n } as LanguageModelV3ToolCall)\n }\n }\n\n if (content.length === 0) {\n throw new NoContentGeneratedError({\n message: \"No content in response message\",\n })\n }\n\n return content\n }\n}\n"],"names":["NoContentGeneratedError","combineHeaders","createEventSourceResponseHandler","createJsonResponseHandler","generateId","injectJsonInstructionIntoMessages","parseProviderOptions","postJsonToApi","removeUndefinedEntries","z","convertToVolcengineChatMessages","convertVolcengineUsage","getResponseMetadata","mapVolcengineFinishReason","volcengineChatOptions","volcengineFailedResponseHandler","prepareTools","volcengineUsageSchema","object","prompt_tokens","number","optional","completion_tokens","total_tokens","prompt_tokens_details","cached_tokens","completion_tokens_details","reasoning_tokens","volcengineToolCallSchema","id","string","type","literal","function","name","arguments","volcengineMessageSchema","role","content","nullable","reasoning_content","tool_calls","array","volcengineChoiceSchema","index","message","finish_reason","volcengineChatResponseSchema","created","model","choices","usage","volcengineDeltaSchema","volcengineChunkChoiceSchema","delta","volcengineChatChunkSchema","VolcengineChatLanguageModel","specificationVersion","provider","modelId","supportedUrls","config","getArgs","responseFormat","prompt","maxOutputTokens","temperature","topP","topK","presencePenalty","frequencyPenalty","stopSequences","seed","tools","toolChoice","providerOptions","warnings","options","schema","push","feature","length","messages","responseFormatConfig","structuredOutputs","json_schema","description","strict","strictJsonSchema","volcengineTools","volcengineToolChoice","toolWarnings","thinkingConfig","thinking","undefined","args","max_tokens","top_p","response_format","tool_choice","parallel_tool_calls","parallelToolCalls","doGenerate","value","response","responseHeaders","url","baseURL","headers","body","failedResponseHandler","successfulResponseHandler","abortSignal","fetch","choice","extractContent","finishReason","request","stream","doStream","eventStream","stream_options","include_usage","self","ReadableStream","start","controller","reader","getReader","textId","reasoningId","toolCallState","Map","responseMetadata","enqueue","done","read","success","error","chunk","includeRawChunks","rawValue","toolCallDelta","toolCall","get","set","toolName","forEach","toolCallId","input","unified","raw","close","text"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export type VolcengineModelId = 'doubao-seed-1-8-251228' | 'doubao-seed-code-preview-251028' | 'doubao-seed-1-6-lite-251015' | 'doubao-seed-1-6-flash-250828' | 'doubao-seed-1-6-vision-250815' | (string & {});
|
|
3
|
+
declare const volcengineChatOptionsSchema: z.ZodObject<{
|
|
4
|
+
structuredOutputs: z.ZodOptional<z.ZodBoolean>;
|
|
5
|
+
strictJsonSchema: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
parallelToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
7
|
+
thinking: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export declare const volcengineChatOptions: import("@ai-sdk/provider-utils").LazySchema<{
|
|
10
|
+
structuredOutputs?: boolean | undefined;
|
|
11
|
+
strictJsonSchema?: boolean | undefined;
|
|
12
|
+
parallelToolCalls?: boolean | undefined;
|
|
13
|
+
thinking?: boolean | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
export type VolcengineChatOptions = z.infer<typeof volcengineChatOptionsSchema>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const volcengineChatOptionsSchema = z.object({
|
|
4
|
+
/**
|
|
5
|
+
* Whether to use structured outputs.
|
|
6
|
+
*
|
|
7
|
+
* @default true
|
|
8
|
+
*/ structuredOutputs: z.boolean().optional(),
|
|
9
|
+
/**
|
|
10
|
+
* Whether to use strict JSON schema validation.
|
|
11
|
+
*
|
|
12
|
+
* @default false
|
|
13
|
+
*/ strictJsonSchema: z.boolean().optional(),
|
|
14
|
+
/**
|
|
15
|
+
* Whether to enable parallel function calling during tool use.
|
|
16
|
+
* When set to false, the model will use at most one tool per response.
|
|
17
|
+
*
|
|
18
|
+
* @default true
|
|
19
|
+
*/ parallelToolCalls: z.boolean().optional(),
|
|
20
|
+
/**
|
|
21
|
+
* Whether to enable extended thinking mode.
|
|
22
|
+
* When enabled, the model will generate reasoning_content in response.
|
|
23
|
+
*
|
|
24
|
+
* @default false
|
|
25
|
+
*/ thinking: z.boolean().optional()
|
|
26
|
+
});
|
|
27
|
+
export const volcengineChatOptions = lazySchema(()=>zodSchema(volcengineChatOptionsSchema));
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=volcengine-chat-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/chat/volcengine-chat-options.ts"],"sourcesContent":["\n\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod\";\n\nexport type VolcengineModelId =\n | 'doubao-seed-1-8-251228'\n | 'doubao-seed-code-preview-251028'\n | 'doubao-seed-1-6-lite-251015'\n | 'doubao-seed-1-6-flash-250828'\n | 'doubao-seed-1-6-vision-250815'\n | (string & {});\n\n\nconst volcengineChatOptionsSchema = z.object({\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n\n /**\n * Whether to use strict JSON schema validation.\n *\n * @default false\n */\n strictJsonSchema: z.boolean().optional(),\n\n /**\n * Whether to enable parallel function calling during tool use.\n * When set to false, the model will use at most one tool per response.\n *\n * @default true\n */\n parallelToolCalls: z.boolean().optional(),\n\n /**\n * Whether to enable extended thinking mode.\n * When enabled, the model will generate reasoning_content in response.\n *\n * @default false\n */\n thinking: z.boolean().optional(),\n});\n\nexport const volcengineChatOptions = lazySchema(\n () => zodSchema(volcengineChatOptionsSchema)\n);\n\nexport type VolcengineChatOptions = z.infer<typeof volcengineChatOptionsSchema>;"],"names":["lazySchema","zodSchema","z","volcengineChatOptionsSchema","object","structuredOutputs","boolean","optional","strictJsonSchema","parallelToolCalls","thinking","volcengineChatOptions"],"mappings":"AAEA,SAASA,UAAU,EAAEC,SAAS,QAAQ,yBAAyB;AAC/D,SAASC,CAAC,QAAQ,MAAM;AAWxB,MAAMC,8BAA8BD,EAAEE,MAAM,CAAC;IACzC;;;;KAIC,GACDC,mBAAmBH,EAAEI,OAAO,GAAGC,QAAQ;IAEvC;;;;KAIC,GACDC,kBAAkBN,EAAEI,OAAO,GAAGC,QAAQ;IAEtC;;;;;KAKC,GACDE,mBAAmBP,EAAEI,OAAO,GAAGC,QAAQ;IAEvC;;;;;KAKC,GACDG,UAAUR,EAAEI,OAAO,GAAGC,QAAQ;AAClC;AAEA,OAAO,MAAMI,wBAAwBX,WACjC,IAAMC,UAAUE,8BAClB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export type VolcengineChatPrompt = Array<VolcengineChatMessage>;
|
|
2
|
+
export type VolcengineChatMessage = VolcengineChatSystemMessage | VolcengineChatUserMessage | VolcengineChatAssistantMessage | VolcengineChatToolMessage;
|
|
3
|
+
export interface VolcengineChatSystemMessage {
|
|
4
|
+
role: 'system';
|
|
5
|
+
content: string;
|
|
6
|
+
}
|
|
7
|
+
export interface VolcengineChatUserMessage {
|
|
8
|
+
role: 'user';
|
|
9
|
+
content: Array<VolcengineChatUserMessageContent>;
|
|
10
|
+
}
|
|
11
|
+
export type VolcengineChatUserMessageContent = {
|
|
12
|
+
type: 'text';
|
|
13
|
+
text: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'image_url';
|
|
16
|
+
image_url: {
|
|
17
|
+
url: string;
|
|
18
|
+
};
|
|
19
|
+
} | {
|
|
20
|
+
type: 'video_url';
|
|
21
|
+
video_url: {
|
|
22
|
+
url: string;
|
|
23
|
+
};
|
|
24
|
+
} | {
|
|
25
|
+
type: 'input_file';
|
|
26
|
+
file_url: string;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'input_file';
|
|
29
|
+
file_data: string;
|
|
30
|
+
filename: string;
|
|
31
|
+
};
|
|
32
|
+
export interface VolcengineChatAssistantMessage {
|
|
33
|
+
role: 'assistant';
|
|
34
|
+
reasoning_content?: string;
|
|
35
|
+
content: string;
|
|
36
|
+
tool_calls?: Array<{
|
|
37
|
+
id: string;
|
|
38
|
+
type: 'function';
|
|
39
|
+
function: {
|
|
40
|
+
name: string;
|
|
41
|
+
arguments: string;
|
|
42
|
+
};
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
export interface VolcengineChatToolMessage {
|
|
46
|
+
role: 'tool';
|
|
47
|
+
content: string;
|
|
48
|
+
tool_call_id: string;
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/chat/volcengine-chat-prompt.ts"],"sourcesContent":["// export type MistralPrompt = Array<MistralMessage>;\nexport type VolcengineChatPrompt = Array<VolcengineChatMessage>;\n\nexport type VolcengineChatMessage =\n | VolcengineChatSystemMessage\n | VolcengineChatUserMessage\n | VolcengineChatAssistantMessage\n | VolcengineChatToolMessage;\n\nexport interface VolcengineChatSystemMessage {\n role: 'system';\n content: string;\n}\n\nexport interface VolcengineChatUserMessage {\n role: 'user';\n content: Array<VolcengineChatUserMessageContent>;\n}\n\nexport type VolcengineChatUserMessageContent =\n | { type: 'text'; text: string }\n | { type: 'image_url'; image_url: { url: string } }\n | { type: 'video_url'; video_url: { url: string } }\n | { type: 'input_file'; file_url: string }\n | { type: 'input_file'; file_data: string; filename: string }\n\nexport interface VolcengineChatAssistantMessage {\n role: 'assistant';\n reasoning_content?: string;\n content: string;\n tool_calls?: Array<{\n id: string;\n type: 'function';\n function: { name: string; arguments: string };\n }>;\n}\n\nexport interface VolcengineChatToolMessage {\n role: 'tool';\n content: string;\n tool_call_id: string;\n}"],"names":[],"mappings":"AAAA,qDAAqD;AAqCrD,WAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const volcengineFailedResponseHandler: import("@ai-sdk/provider-utils").ResponseHandler<import("@ai-sdk/provider").APICallError>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const volcengineErrorSchema = z.object({
|
|
4
|
+
error: z.object({
|
|
5
|
+
message: z.string(),
|
|
6
|
+
type: z.string().optional(),
|
|
7
|
+
param: z.string().nullable().optional(),
|
|
8
|
+
code: z.string().nullable().optional()
|
|
9
|
+
})
|
|
10
|
+
});
|
|
11
|
+
export const volcengineFailedResponseHandler = createJsonErrorResponseHandler({
|
|
12
|
+
errorSchema: volcengineErrorSchema,
|
|
13
|
+
errorToMessage: (data)=>data.error.message
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=volcengine-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/chat/volcengine-error.ts"],"sourcesContent":["import { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod\";\n\nconst volcengineErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n type: z.string().optional(),\n param: z.string().nullable().optional(),\n code: z.string().nullable().optional()\n })\n});\n\nexport const volcengineFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: volcengineErrorSchema,\n errorToMessage: (data) => data.error.message\n});\n"],"names":["createJsonErrorResponseHandler","z","volcengineErrorSchema","object","error","message","string","type","optional","param","nullable","code","volcengineFailedResponseHandler","errorSchema","errorToMessage","data"],"mappings":"AAAA,SAASA,8BAA8B,QAAQ,yBAAyB;AACxE,SAASC,CAAC,QAAQ,MAAM;AAExB,MAAMC,wBAAwBD,EAAEE,MAAM,CAAC;IACrCC,OAAOH,EAAEE,MAAM,CAAC;QACdE,SAASJ,EAAEK,MAAM;QACjBC,MAAMN,EAAEK,MAAM,GAAGE,QAAQ;QACzBC,OAAOR,EAAEK,MAAM,GAAGI,QAAQ,GAAGF,QAAQ;QACrCG,MAAMV,EAAEK,MAAM,GAAGI,QAAQ,GAAGF,QAAQ;IACtC;AACF;AAEA,OAAO,MAAMI,kCAAkCZ,+BAA+B;IAC5Ea,aAAaX;IACbY,gBAAgB,CAACC,OAASA,KAAKX,KAAK,CAACC,OAAO;AAC9C,GAAG"}
|