You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LLM工具调用流式处理后续操作及响应格式咨询

关于LLM流式工具调用后的后续处理及响应格式指定

核心操作步骤

  • 当成功获取完整的toolCall后,需按以下流程执行:
    1. 调用对应工具(如searchWeb),传入解析后的参数args,获取工具返回结果
    2. 构造新消息列表:在原messages基础上追加两条消息
      • assistant角色消息:包含完整的tool_calls数组(即你收集到的toolCall)
      • tool角色消息:包含工具返回结果,以及对应的tool_call_id(从toolCall.id获取)
    3. 使用新消息列表重新发起chat.completions.create请求(仍可使用流式模式),让LLM基于工具结果生成最终响应

如何指定最终响应格式

  • 提示词强制法:在系统提示词或用户消息末尾明确格式要求,例如:
    请将最终回答整理成清晰段落,或严格按照以下JSON格式返回:
    {
      "answer": "具体回答内容",
      "source": "工具返回的来源信息(如有)"
    }
    
  • 参数指定法:若使用GPT-4o等支持结构化输出的模型,可通过response_format参数强制格式:
    const completion = await client.chat.completions.create({
      messages: newMessages, // 包含工具调用和响应的消息列表
      model: 'gpt-4o',
      stream: true,
      response_format: { type: "json_object" }, // 指定返回JSON格式
      // 其他参数...
    });
    

代码疑问补充

  • 关于finish_reason === 'function_call'未触发:流式模式下部分模型的工具调用结束时,finish_reason仍会返回stop,你当前通过stop判断处理工具调用的逻辑是可行的,无需调整。

内容的提问来源于stack exchange,提问作者Frank Fiegel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:34:56