本教程用于介绍最短路径开发一个知识库问答应用平台的 API 接入流程。
注意:
该文档只是介绍了一些基础的 API 及注意事项,并没有列举完整的 API 列表,如果需要请参考 API概览。 一、创建应用及应用的基础内容修改(配置端)
1. 首先需要注册开通使用产品。您可在 产品官网 单击立即体验进入,或单击 开通体验。 2. 需要开通子账户访问API的权限,可参考 权限管理。对于 API 调用来说,需要申请 API 密钥,可参考 API调用签名方法 获取签名密钥。 注意:
如果需要通过子账号访问 API ,也需要单独对子账号进行授权,未授权账户API调用,通常会出现提示:用户未登录;可参考 技术常见问题 里面的方法进行账户授权。 3. 可通过调用 API 来创建应用,获取应用 ID ( BotBizID ) ,并配合其他应用基础配置的接口来修改应用的基础信息。
与应用相关的基础接口如下:
此处仅列举了部分关键接口,更多接口请参考 API概览 。 |
| 创建应用,创建成功会返回应用 ID ( BotBizID )。 |
| 列出所有的应用。 |
| 删除应用。 |
| 获取某个应用详情。 |
| 编辑应用基础设置(应用配置页支持的设置,包括知识来源、模型设置、输出设置等,可参考应用配置) 1、修改应用基础设置时,参数【AppConfig】【KnowledgeQa】为必填选项。 2、需要修改应用下的模型时,通过 ListModel 接口先获取可用的模型,之后再进行调整。 |
说明:
修改完应用的一些基础设置, 例如【提示词】【欢迎语】等文字信息,需要异步审核相关文字是否合法,可通过轮询 DescribeApp 接口,判断相关文字是否审核完成, 审核完成之后需要发布该应用,修改的内容才会在 API 调用的时候生效。 二、构建知识库 (配置端)
知识库主要包含了三个部分:文档 、问答、知识标签。
知识标签的作用主要是在 API 调用过程中限定知识检索范围。如果需要进行限制,可通过问答接口中的【 custom_variables 】进行限制;不需要限定知识检索范围的话也可以不用设置知识标签 。
知识标签
仅列举了部分关键接口,更多接口请参考 API概览 。 |
创建属性 | | - |
查询属性标签详情 | | - |
查询属性标签列表 | | - |
编辑属性标签 | | - |
删除属性标签 | | - |
上传导入属性标签 | | 与其他的文件上传一样,有如下三个步骤: 1. 获取临时密钥 2. 将文件上传到 cos |
文档
仅列举了部分关键接口,更多接口请参考 API概览 。 |
保存文档 | | 注意: 批量导入文档也使用该接口,通过入参 Opt 来确定导入的是文档还是问答;当导入为问答对的时候会校验表头(需使用导入模板)。 |
删除文档 | | - |
修改文档 | | - |
批量修改文档适用范围 | | - |
文档列表 | | - |
文档上传提供了一个示例,请完整阅读 离线文档上传 说明文档,在该文档下面提供了 java , python , go 实现的代码 demo , 其他语言请参考上面三种demo 自行实现。 文档上传之后是一个异步的操作,并不能立即生效,文档需要进行拆分、解析、审核及学习等操作(后台自动完成)。完成这些步骤之后(可使用文档列表接口校验各个文档处理状态)即可对应用进行发布更新;发布之后对话端API调用生效。
问答
此处仅列举关键接口,更多接口请参考 API概览 。 |
录入问答 | | - |
批量导入问答对 | | 注意: 导入文档也是该接口,通过入参 Opt 来确定导入的是文档还是问答;当导入为问答对的时候会校验表头 。 |
删除问答 | | - |
问答详情 | | - |
获取问答列表 | | - |
修改问答 | | - |
批量修改问答使用范围 | | - |
从文档生成问答对 | | 1、生成问答可能会耗费较多 token ,请确保 token 余量充足,避免欠费导致应用不可用。 2、调用该接口后,可以调用 ListQA 接口来监听是否生成完,并展开对生成的问答对的一个校验审核操作。 注意: 获取某个文档生成的问答对是否采纳/不采纳,校验通过时,入参是一个数组,例如:AcceptStatus : [1,2,3] |
校验问答对 | | 从文档生成问答对之后需要校验问答对,可通过 ListQA 返回的 WaitVerifyTotal 查看是否存在问答对需要校验 。 |
说明:
当前允许存在多个相同的问题(答案可能不同),当有多个相同的问题时,会依据检索到的内容以及大模型综合给出答案。
三、执行发布操作(使得应用基础配置或者知识库内的知识在 API 调用场景生效) (配置端)
发布是一个很重要的操作,会将当前应用的基础配置信息【提示词,欢迎语,模型, 输出方式】、文档、问答、工作流程以及拒答等相关配置和知识发布到线上并生效;需要尤其注意两个概念: 体验端,C端 。
体验端:也可以称做评测端,测试端,测试体验环境,是修改完配置,导入文档【学习结束】,问答对,拒答问题后,在该处进行快速验证,查看效果的地方,可以理解为一个测试环境。如下图,腾讯云智能体开发平台页面 。
C端:也称做客户端,用户端,生产环境,可认为是在体验端验证效果符合预期后发布到生产环境供用户使用;可以通过分享链接进入到该页面,在该页面进行对话时的效果和应用发布后 API 进行对话内容应该是一致的,进入到 C端如下图:
注意:
需要保证应用发布之后再通过 API 调用来测试,否则同一个问题可能体验端和 API 调用得到的结果可能不同。
发布相关的接口
只列举了部分关键接口,更多接口请参考 API概览 。 |
创建发布 | | 注意: 此处执行发布会将当前应用的基础配置、文档、问答、拒答等一次性发布 。 |
查看发布列表 | | - |
查看某次发布详情 | | - |
拉取发布按钮状态、最后发布时间 | | 可以根据此接口返回的 IsUpdate == true 的时候为可发布状态。 |
查看待发布应用基础配置 | | - |
查看待发布文档列表 | | - |
查看待发布问答列表 | | - |
查看待发布拒答问题列表 | | - |
四、用户端-接入问答
接入问答是指通过 API 调用的形式进行与应用的对话,目前提供有两种方式, 均提供了代码示例。
注意:
1. WebSocket 调用,通过 GetWsToken 获取 token 的时候,入参 Type 请写死为5。 接入问答提供了如下几种能力:
大模型基础能力:不包含任何知识库,借助大模型进行对话,文本总结, 文本摘要等。
大模型基础能力+知识库文档:首先会根据用户 query , 去知识库中检索知识,并将检索的结果给到大模型,大模型进行回复。
大模型基础能力+对话时传入图片文档:对话中传入图片,文档,指定大模型阅读图片或者文档,进行内容的提取或者解释。
关于会话和上下文轮次
会话: 当前系统通过 session_id 来标识一轮会话,session_id 不变的情况下,会一直处在同一个对话中, session_id 请严格按照uuid的规则创建。
上下文记忆轮次: 在同一个会话中,为了使大模型能理解上下文信息,保证语义的连贯性,可以通过页面设置上下文轮次,与大模型对话的过程中会将上文选定的几轮对话一起给到大模型,大模型综合输入的内容进行回答。
注意:
设置上下文记忆轮次后,同一个对话中不相干的信息会给到大模型,可能会对当前的问答存在干扰;这时可以重新开启一个新的会话(按照规则生成新的 session_id )
五、其他关键接口
|
评价消息 | | 对消息点赞点踩。 |
获取历史消息 | | 该接口数据只保存半年,用户如有需要可自行存储一份。 |
六、其他参考