本教程用于介绍最短路径开发一个知识库问答应用平台的 API 接入流程。
注意:
一、创建应用及应用的基础内容修改(配置端)
注意:
3. 可通过调用 API 来创建应用,获取应用 ID ( BotBizID ) ,并配合其他应用基础配置的接口来修改应用的基础信息。
与应用相关的基础接口如下:
说明:
修改完应用的一些基础设置, 例如【提示词】【欢迎语】等文字信息,需要异步审核相关文字是否合法,可通过轮询 DescribeApp 接口,判断相关文字是否审核完成, 审核完成之后需要发布该应用,修改的内容才会在 API 调用的时候生效。
二、构建知识库 (配置端)
知识库主要包含了三个部分:文档 、问答、知识标签。
知识标签的作用主要是在 API 调用过程中限定知识检索范围。如果需要进行限制,可通过问答接口中的【 custom_variables 】进行限制;不需要限定知识检索范围的话也可以不用设置知识标签 。
知识标签
接口描述 | 接口名 | 说明 |
创建属性 | - | |
查询属性标签详情 | - | |
查询属性标签列表 | - | |
编辑属性标签 | - | |
删除属性标签 | - | |
上传导入属性标签 | 与其他的文件上传一样,有如下三个步骤: 1. 获取临时密钥 2. 将文件上传到 cos 3. 调用该接口保存数据,具体可参考离线文档上传 |
文档
文档上传之后是一个异步的操作,并不能立即生效,文档需要进行拆分、解析、审核及学习等操作(后台自动完成)。完成这些步骤之后(可使用文档列表接口校验各个文档处理状态)即可对应用进行发布更新;发布之后对话端API调用生效。
问答
接口描述 | 接口名 | 说明 |
录入问答 | - | |
批量导入问答对 | 注意: 导入文档也是该接口,通过入参 Opt 来确定导入的是文档还是问答;当导入为问答对的时候会校验表头 。 | |
删除问答 | - | |
问答详情 | - | |
获取问答列表 | - | |
修改问答 | - | |
批量修改问答使用范围 | - | |
从文档生成问答对 | 1、生成问答可能会耗费较多 token ,请确保 token 余量充足,避免欠费导致应用不可用。 注意: 获取某个文档生成的问答对是否采纳/不采纳,校验通过时,入参是一个数组,例如:AcceptStatus : [1,2,3] | |
校验问答对 | 从文档生成问答对之后需要校验问答对,可通过 ListQA 返回的 WaitVerifyTotal 查看是否存在问答对需要校验 。 |
说明:
当前允许存在多个相同的问题(答案可能不同),当有多个相同的问题时,会依据检索到的内容以及大模型综合给出答案。
三、执行发布操作(使得应用基础配置或者知识库内的知识在 API 调用场景生效) (配置端)
发布是一个很重要的操作,会将当前应用的基础配置信息【提示词,欢迎语,模型, 输出方式】、文档、问答、工作流程以及拒答等相关配置和知识发布到线上并生效;需要尤其注意两个概念: 体验端,C端 。
体验端:也可以称做评测端,测试端,测试体验环境,是修改完配置,导入文档【学习结束】,问答对,拒答问题后,在该处进行快速验证,查看效果的地方,可以理解为一个测试环境。如下图,知识引擎页面 。


C端:也称做客户端,用户端,生产环境,可认为是在体验端验证效果符合预期后发布到生产环境供用户使用;可以通过分享链接进入到该页面,在该页面进行对话时的效果和应用发布后 API 进行对话内容应该是一致的,进入到 C端如下图:




注意:
需要保证应用发布之后再通过 API 调用来测试,否则同一个问题可能体验端和 API 调用得到的结果可能不同。
发布相关的接口
接口描述 | 接口名 | 说明 |
创建发布 | 注意: 此处执行发布会将当前应用的基础配置、文档、问答、拒答等一次性发布 。 | |
查看发布列表 | - | |
查看某次发布详情 | - | |
拉取发布按钮状态、最后发布时间 | 可以根据此接口返回的 IsUpdate == true 的时候为可发布状态。 | |
查看待发布应用基础配置 | - | |
查看待发布文档列表 | - | |
查看待发布问答列表 | - | |
查看待发布拒答问题列表 | - |
四、用户端-接入问答
接入问答是指通过 API 调用的形式进行与应用的对话,目前提供有两种方式, 均提供了代码示例。
注意:
1. WebSocket 调用,通过 GetWsToken 获取 token 的时候,入参 Type 请写死为5。
2. HTTP SSE 调用,可以通过 GetAppSecret 获取应用密钥。
接入问答提供了如下几种能力:
大模型基础能力:不包含任何知识库,借助大模型进行对话,文本总结, 文本摘要等。
大模型基础能力+知识库文档:首先会根据用户 query , 去知识库中检索知识,并将检索的结果给到大模型,大模型进行回复。
大模型基础能力+对话时传入图片文档:对话中传入图片,文档,指定大模型阅读图片或者文档,进行内容的提取或者解释。
关于会话和上下文轮次
会话: 当前系统通过 session_id 来标识一轮会话,session_id 不变的情况下,会一直处在同一个对话中, session_id 请严格按照uuid的规则创建。
上下文记忆轮次: 在同一个会话中,为了使大模型能理解上下文信息,保证语义的连贯性,可以通过页面设置上下文轮次,与大模型对话的过程中会将上文选定的几轮对话一起给到大模型,大模型综合输入的内容进行回答。

注意:
设置上下文记忆轮次后,同一个对话中不相干的信息会给到大模型,可能会对当前的问答存在干扰;这时可以重新开启一个新的会话(按照规则生成新的 session_id )
五、其他关键接口
接口描述 | 接口名 | 说明 |
评价消息 | 对消息点赞点踩。 | |
获取历史消息 | 该接口数据只保存半年,用户如有需要可自行存储一份。 |
六、其他参考