mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-28 10:32:27 +08:00
refactor(llm): improve type safety in tool calling stage and simplify tool call handling
This commit is contained in:
parent
7c63652105
commit
f04e56137b
@ -69,9 +69,19 @@ export class ToolCallingStage extends BasePipelineStage<ToolExecutionInput, { re
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if the registry has any tools
|
// Check if the registry has any tools
|
||||||
// Convert from ToolHandler[] to ToolInterface[] with proper type conversion
|
|
||||||
const registryTools = toolRegistry.getAllTools();
|
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.info(`Available tools in registry: ${availableTools.length}`);
|
||||||
|
|
||||||
// Log available tools for debugging
|
// Log available tools for debugging
|
||||||
|
@ -366,7 +366,6 @@ export class OllamaService extends BaseAIService {
|
|||||||
},
|
},
|
||||||
async (callback) => {
|
async (callback) => {
|
||||||
let completeText = '';
|
let completeText = '';
|
||||||
let responseToolCalls: ToolCall[] = [];
|
|
||||||
let chunkCount = 0;
|
let chunkCount = 0;
|
||||||
|
|
||||||
// Create a response object that will be updated during streaming
|
// Create a response object that will be updated during streaming
|
||||||
@ -410,9 +409,7 @@ export class OllamaService extends BaseAIService {
|
|||||||
const toolCalls = StreamProcessor.extractToolCalls(chunk);
|
const toolCalls = StreamProcessor.extractToolCalls(chunk);
|
||||||
// Update response tool calls if any are found
|
// Update response tool calls if any are found
|
||||||
if (toolCalls.length > 0) {
|
if (toolCalls.length > 0) {
|
||||||
// Update tool calls in the overall response
|
// Update the response object's tool_calls for final return
|
||||||
responseToolCalls = toolCalls;
|
|
||||||
// Also update the response object's tool_calls for final return
|
|
||||||
response.tool_calls = toolCalls;
|
response.tool_calls = toolCalls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user