四种响应参数组合场景
FastGPT 发起会话接口通过detail和stream两个布尔参数的组合,提供四种适配不同业务的响应形态:
detail=false, stream=false:非流式完整响应,一次性返回全部对话结果与基础统计数据detail=false, stream=true:流式逐包响应,按内容生成进度返回分段数据detail=true, stream=false:包含全链路模块数据的非流式响应,涵盖知识库搜索、AI对话等模块的运行详情detail=true, stream=true:包含全链路模块数据的流式响应,同时支持流式输出与全链路数据返回
快速配置与调用步骤
- 根据业务需求确定
detail与stream的组合值。例如需要获取流式输出与全链路模块数据,设置detail=true且stream=true。 - 构造API请求体,传入用户问题、对话上下文等必要参数,示例用户问题可参考
导演是谁。 - 发起接口请求,流式场景下需按行解析响应内容,非流式场景下等待完整响应返回。
响应字段与示例解析
不同响应组合的核心字段包含基础响应字段与全链路数据字段。基础响应字段包括id、model、usage(包含prompt_tokens、completion_tokens、total_tokens)、choices。全链路数据字段为responseData,包含各模块的moduleName、price、model、tokens等信息,部分模块还附带quoteList等业务相关字段。 流式响应会通过不同event类型返回数据,例如flowNodeStatus标记模块运行状态,answer返回对话内容增量,最终以data: [DONE]标记流式结束。非流式完整响应会直接返回包含choices.message.content的最终对话结果,当detail=true时还会附带全链路模块数据。
来源:FastGPT 官方文档