diff --git a/src/providers/google-vertex-ai/chatComplete.ts b/src/providers/google-vertex-ai/chatComplete.ts index c7ed0fefd..2b412a497 100644 --- a/src/providers/google-vertex-ai/chatComplete.ts +++ b/src/providers/google-vertex-ai/chatComplete.ts @@ -337,6 +337,10 @@ export const VertexGoogleChatCompleteConfig: ProviderConfig = { labels: { param: 'labels', }, + thinking: { + param: 'generationConfig', + transform: (params: Params) => transformGenerationConfig(params), + }, }; interface AnthorpicTextContentItem { diff --git a/src/providers/google-vertex-ai/transformGenerationConfig.ts b/src/providers/google-vertex-ai/transformGenerationConfig.ts index cd1aa231c..7d15142a1 100644 --- a/src/providers/google-vertex-ai/transformGenerationConfig.ts +++ b/src/providers/google-vertex-ai/transformGenerationConfig.ts @@ -50,5 +50,12 @@ export function transformGenerationConfig(params: Params) { generationConfig['responseSchema'] = schema; } + if (params?.thinking) { + const thinkingConfig: Record = {}; + thinkingConfig['include_thoughts'] = true; + thinkingConfig['thinking_budget'] = params.thinking.budget_tokens; + generationConfig['thinking_config'] = thinkingConfig; + } + return generationConfig; } diff --git a/src/providers/google/chatComplete.ts b/src/providers/google/chatComplete.ts index 608305e86..1e2b67f8b 100644 --- a/src/providers/google/chatComplete.ts +++ b/src/providers/google/chatComplete.ts @@ -71,6 +71,12 @@ const transformGenerationConfig = (params: Params) => { } generationConfig['responseSchema'] = schema; } + if (params?.thinking) { + const thinkingConfig: Record = {}; + thinkingConfig['include_thoughts'] = true; + thinkingConfig['thinking_budget'] = params.thinking.budget_tokens; + generationConfig['thinking_config'] = thinkingConfig; + } return generationConfig; }; @@ -405,6 +411,10 @@ export const GoogleChatCompleteConfig: ProviderConfig = { } }, }, + thinking: { + param: 'generationConfig', + transform: (params: Params) => transformGenerationConfig(params), + }, }; export interface GoogleErrorResponse { diff --git a/src/types/requestBody.ts b/src/types/requestBody.ts index fd8042b61..2a4b74345 100644 --- a/src/types/requestBody.ts +++ b/src/types/requestBody.ts @@ -404,6 +404,10 @@ export interface Params { // Anthropic specific anthropic_beta?: string; anthropic_version?: string; + thinking?: { + type?: string; + budget_tokens: number; + }; } interface Examples {