Skip to content
Cloudflare Docs
非官方翻译 - 此文档为非官方中文翻译版本,仅供参考。如有疑问请以 英文官方文档 为准。

故障排除

本节将介绍故障排除工具并解决常见错误。

日志记录

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 中记录日志

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 错误,则您的输入可能超出了我们模型的当前上下文窗口。请尝试减少输入令牌以解决此错误。