|
7 | 7 | APIStatusError, |
8 | 8 | APITimeoutError, |
9 | 9 | DEFAULT_API_CONNECT_OPTIONS, |
| 10 | + type Expand, |
10 | 11 | toError, |
11 | 12 | } from '../index.js'; |
12 | 13 | import * as llm from '../llm/index.js'; |
@@ -34,9 +35,10 @@ export type KimiModels = 'moonshotai/kimi-k2-instruct'; |
34 | 35 |
|
35 | 36 | export type DeepSeekModels = 'deepseek-ai/deepseek-v3'; |
36 | 37 |
|
37 | | -type ChatCompletionPredictionContentParam = OpenAI.Chat.Completions.ChatCompletionPredictionContent; |
38 | | -type WebSearchOptions = OpenAI.Chat.Completions.ChatCompletionCreateParams.WebSearchOptions; |
39 | | -type ToolChoice = OpenAI.Chat.Completions.ChatCompletionCreateParams['tool_choice']; |
| 38 | +type ChatCompletionPredictionContentParam = |
| 39 | + Expand<OpenAI.Chat.Completions.ChatCompletionPredictionContent>; |
| 40 | +type WebSearchOptions = Expand<OpenAI.Chat.Completions.ChatCompletionCreateParams.WebSearchOptions>; |
| 41 | +type ToolChoice = Expand<OpenAI.Chat.Completions.ChatCompletionCreateParams['tool_choice']>; |
40 | 42 | type Verbosity = 'low' | 'medium' | 'high'; |
41 | 43 |
|
42 | 44 | export interface ChatCompletionOptions extends Record<string, unknown> { |
@@ -180,9 +182,13 @@ export class LLM extends llm.LLM { |
180 | 182 | modelOptions.parallel_tool_calls = parallelToolCalls; |
181 | 183 | } |
182 | 184 |
|
183 | | - toolChoice = toolChoice !== undefined ? toolChoice : this.opts.modelOptions.tool_choice; |
| 185 | + toolChoice = |
| 186 | + toolChoice !== undefined |
| 187 | + ? toolChoice |
| 188 | + : (this.opts.modelOptions.tool_choice as llm.ToolChoice | undefined); |
| 189 | + |
184 | 190 | if (toolChoice) { |
185 | | - modelOptions.tool_choice = toolChoice; |
| 191 | + modelOptions.tool_choice = toolChoice as ToolChoice; |
186 | 192 | } |
187 | 193 |
|
188 | 194 | // TODO(AJS-270): Add response_format support here |
@@ -238,7 +244,7 @@ export class LLMStream extends llm.LLMStream { |
238 | 244 | toolCtx?: llm.ToolContext; |
239 | 245 | gatewayOptions?: GatewayOptions; |
240 | 246 | connOptions: APIConnectOptions; |
241 | | - modelOptions: Record<string, any>; |
| 247 | + modelOptions: Record<string, unknown>; |
242 | 248 | providerFmt?: llm.ProviderFormat; |
243 | 249 | }, |
244 | 250 | ) { |
@@ -270,7 +276,7 @@ export class LLMStream extends llm.LLMStream { |
270 | 276 | description: func.description, |
271 | 277 | parameters: llm.toJsonSchema( |
272 | 278 | func.parameters, |
273 | | - ) as unknown as OpenAI.Chat.Completions.ChatCompletionTool['function']['parameters'], |
| 279 | + ) as unknown as OpenAI.Chat.Completions.ChatCompletionFunctionTool['function']['parameters'], |
274 | 280 | }, |
275 | 281 | })) |
276 | 282 | : undefined; |
@@ -345,7 +351,7 @@ export class LLMStream extends llm.LLMStream { |
345 | 351 | options: { |
346 | 352 | statusCode: error.status, |
347 | 353 | body: error.error, |
348 | | - requestId: error.request_id, |
| 354 | + requestId: error.requestID, |
349 | 355 | retryable, |
350 | 356 | }, |
351 | 357 | }); |
@@ -387,10 +393,10 @@ export class LLMStream extends llm.LLMStream { |
387 | 393 | * |
388 | 394 | * Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None) |
389 | 395 | * [ChoiceDeltaToolCall(index=0, id='call_LaVeHWUHpef9K1sd5UO8TtLg', function=ChoiceDeltaToolCallFunction(arguments='', name='get_weather'), type='function')] |
390 | | - * [ChoiceDeltaToolCall(index=0, id=None, function=ChoiceDeltaToolCallFunction(arguments='{"location": "P', name=None), type=None)] |
391 | | - * [ChoiceDeltaToolCall(index=0, id=None, function=ChoiceDeltaToolCallFunction(arguments='aris}', name=None), type=None)] |
| 396 | + * [ChoiceDeltaToolCall(index=0, id=None, function=ChoiceDeltaToolCallFunction(arguments='\{"location": "P', name=None), type=None)] |
| 397 | + * [ChoiceDeltaToolCall(index=0, id=None, function=ChoiceDeltaToolCallFunction(arguments='aris\}', name=None), type=None)] |
392 | 398 | * [ChoiceDeltaToolCall(index=1, id='call_ThU4OmMdQXnnVmpXGOCknXIB', function=ChoiceDeltaToolCallFunction(arguments='', name='get_weather'), type='function')] |
393 | | - * [ChoiceDeltaToolCall(index=1, id=None, function=ChoiceDeltaToolCallFunction(arguments='{"location": "T', name=None), type=None)] |
| 399 | + * [ChoiceDeltaToolCall(index=1, id=None, function=ChoiceDeltaToolCallFunction(arguments='\{"location": "T', name=None), type=None)] |
394 | 400 | * [ChoiceDeltaToolCall(index=1, id=None, function=ChoiceDeltaToolCallFunction(arguments='okyo', name=None), type=None)] |
395 | 401 | * Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='tool_calls', index=0, logprobs=None) |
396 | 402 | */ |
|
0 commit comments