refactor(llm): improve type safety in tool calling stage and simplify tool call handling

This commit is contained in:
perf3ct 2025-05-29 22:05:38 +00:00
parent 7c63652105
commit f04e56137b
No known key found for this signature in database
GPG Key ID: 569C4EEC436F5232
2 changed files with 13 additions and 6 deletions

View File

@ -69,9 +69,19 @@ export class ToolCallingStage extends BasePipelineStage<ToolExecutionInput, { re
}
// Check if the registry has any tools
// Convert from ToolHandler[] to ToolInterface[] with proper type conversion
const registryTools = toolRegistry.getAllTools();
const availableTools: ToolInterface[] = registryTools.map(tool => tool as unknown as ToolInterface);
// Convert ToolHandler[] to ToolInterface[] with proper type safety
const availableTools: ToolInterface[] = registryTools.map(tool => {
// Create a proper ToolInterface from the ToolHandler
const toolInterface: ToolInterface = {
// Pass through the execute method
execute: (args: Record<string, unknown>) => tool.execute(args),
// Include other properties from the tool definition
...tool.definition
};
return toolInterface;
});
log.info(`Available tools in registry: ${availableTools.length}`);
// Log available tools for debugging

View File

@ -366,7 +366,6 @@ export class OllamaService extends BaseAIService {
},
async (callback) => {
let completeText = '';
let responseToolCalls: ToolCall[] = [];
let chunkCount = 0;
// Create a response object that will be updated during streaming
@ -410,9 +409,7 @@ export class OllamaService extends BaseAIService {
const toolCalls = StreamProcessor.extractToolCalls(chunk);
// Update response tool calls if any are found
if (toolCalls.length > 0) {
// Update tool calls in the overall response
responseToolCalls = toolCalls;
// Also update the response object's tool_calls for final return
// Update the response object's tool_calls for final return
response.tool_calls = toolCalls;
}