Tool Calling: Reserve prompt budget for tool definitions.

b0d0f2111b69a3d9561278bbcd3cbc6fdefad414

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +9 -0Ignore whitespace
public/scripts/openai.js+9 -0
@@ -998,6 +998,15 @@ async function populateChatCompletion(prompts, chatCompletion, { bias, quietProm
998 chatCompletion.insert(Message.fromPrompt(prompt), 'main', prompt.position);998 chatCompletion.insert(Message.fromPrompt(prompt), 'main', prompt.position);
999 }999 }
10001000
1001 // Pre-allocation of tokens for tool data
1002 if (ToolManager.canPerformToolCalls(type)) {
1003 const toolData = {};
1004 await ToolManager.registerFunctionToolsOpenAI(toolData);
1005 const toolMessage = [{ role: 'user', content: JSON.stringify(toolData) }];
1006 const toolTokens = tokenHandler.count(toolMessage);
1007 chatCompletion.reserveBudget(toolTokens);
1008 }
1009
1001 // Add in-chat injections1010 // Add in-chat injections
1002 messages = populationInjectionPrompts(absolutePrompts, messages);1011 messages = populationInjectionPrompts(absolutePrompts, messages);
10031012