From d6295e5d659532b2d6dba671a1607317d786d397 Mon Sep 17 00:00:00 2001 From: Hunter Evangelista Date: Sun, 11 May 2025 16:02:17 -0700 Subject: [PATCH] added optional json config for VoidStaticModelInfo --- src/vs/workbench/contrib/void/common/modelCapabilities.ts | 5 ++++- .../void/electron-main/llmMessage/sendLLMMessage.impl.ts | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/void/common/modelCapabilities.ts b/src/vs/workbench/contrib/void/common/modelCapabilities.ts index e9eec31b..c254535f 100644 --- a/src/vs/workbench/contrib/void/common/modelCapabilities.ts +++ b/src/vs/workbench/contrib/void/common/modelCapabilities.ts @@ -153,6 +153,9 @@ export type VoidStaticModelInfo = { // not stateful specialToolFormat?: 'openai-style' | 'anthropic-style' | 'gemini-style', // typically you should use 'openai-style'. null means "can't call tools by default", and asks the LLM to output XML in agent mode supportsFIM: boolean; // whether the model was specifically designed for autocomplete or "FIM" ("fill-in-middle" format) + // do we need any additional information? + additionalConfig?: { [key: string]: string } // additional info for openAI requests + // reasoning options reasoningCapabilities: false | { readonly supportsReasoning: true; // for clarity, this must be true if anything below is specified @@ -186,7 +189,7 @@ export type VoidStaticModelInfo = { // not stateful export type ModelOverrides = Pick diff --git a/src/vs/workbench/contrib/void/electron-main/llmMessage/sendLLMMessage.impl.ts b/src/vs/workbench/contrib/void/electron-main/llmMessage/sendLLMMessage.impl.ts index 4eec4850..66aa67b4 100644 --- a/src/vs/workbench/contrib/void/electron-main/llmMessage/sendLLMMessage.impl.ts +++ b/src/vs/workbench/contrib/void/electron-main/llmMessage/sendLLMMessage.impl.ts @@ -236,6 +236,7 @@ const _sendOpenAICompatibleChat = async ({ messages, onText, onFinalMessage, onE modelName, specialToolFormat, reasoningCapabilities, + additionalConfig } = getModelCapabilities(providerName, modelName_, overridesOfModel) const { providerReasoningIOSettings } = getProviderCapabilities(providerName) @@ -245,8 +246,11 @@ const _sendOpenAICompatibleChat = async ({ messages, onText, onFinalMessage, onE const reasoningInfo = getSendableReasoningInfo('Chat', providerName, modelName_, modelSelectionOptions, overridesOfModel) // user's modelName_ here const includeInPayload = providerReasoningIOSettings?.input?.includeInPayload?.(reasoningInfo) || {} + const additionalOpenAIPayload = additionalConfig || {} + console.log('include', includeInPayload) console.log('reasoningInfo', reasoningInfo) + console.log('additionalOpenAIPayload', additionalOpenAIPayload) // tools const potentialTools = chatMode !== null ? openAITools(chatMode) : null const nativeToolsObj = potentialTools && specialToolFormat === 'openai-style' ? @@ -260,6 +264,7 @@ const _sendOpenAICompatibleChat = async ({ messages, onText, onFinalMessage, onE messages: messages as any, stream: true, ...nativeToolsObj, + ...additionalOpenAIPayload // max_completion_tokens: maxTokens, }