本节将介绍故障排除工具并解决常见错误。
Workers 的常规 日志记录 功能也适用于嵌入式函数调用。
可以使用 console.log()
像在任何 Worker 中一样记录工具的调用:
export default { async fetch(request, env, ctx) { const sum = (args: { a: number; b: number }): Promise<string> => { const { a, b } = args; // 从嵌入式函数调用中记录日志 console.log(`sum 函数已使用参数 a: ${a} 和 b: ${b} 被调用`) return Promise.resolve((a + b).toString()); }; ... }}
runWithTools
函数有一个 verbose
模式,它会发出有用的日志,用于调试函数调用以及输入和输出统计信息。
const response = await runWithTools( env.AI, '@hf/nousresearch/hermes-2-pro-mistral-7b', { messages: [ ... ], tools: [ ... ], }, // 启用详细模式 { verbose: true });
要使用嵌入式函数响应 LLM 提示,可能需要多个 AI 推理请求和函数调用,这可能会影响用户体验。
考虑以下几点来提高性能:
- 缩短提示(以减少输入处理时间)
- 减少提供的工具数量
- 将最终响应流式传输给最终用户(以最小化交互时间)。请参阅以下示例:
async fetch(request, env, ctx) { const response = (await runWithTools( env.AI, '@hf/nousresearch/hermes-2-pro-mistral-7b', { messages: [ ... ], tools: [ ... ], }, { // 启用响应流 streamFinalResponse: true, } )) as ReadableStream;
// 设置流式响应头 return new Response(response, { headers: { 'content-type': 'text/event-stream', }, });}
如果您收到 BadInput
错误,则您的输入可能超出了我们模型的当前上下文窗口。请尝试减少输入令牌以解决此错误。
- @2025 Cloudflare Ubitools
- Cf Repo