腾讯云智能体开发平台 知识问答一站式开发流程

这篇说说腾讯云智能体开发平台知识库问答应用的API接入流程,涵盖创建应用、构建知识库、发布操作及对话接入,强调发布后API调用才生效,并需注意子账号授权与上下文轮次干扰。 创建应用后需通过API修改配置,修改内容需审核并发布才生效。 知识库含文档、问答与知识标签,文档上传后异步处理,需等学习完成。 对话支持WebSocket与HTTP SSE,通过session_id管理会话,可设置上下文轮次。

相关产品
腾讯云智能体开发平台 产品页,含版本规格、价格与购买入口。

本教程用于介绍最短路径开发一个知识库问答应用平台的 API 接入流程。

注意:该文档只是介绍了一些基础的 API 及注意事项,并没有列举完整的 API 列表,如果需要请参考 API概览。

一、一、创建应用及应用的基础内容修改(配置端)

1. 首先需要注册开通使用产品。你可在 产品页面 单击立即体验进入,或单击 开通体验。

2. 需要开通子账户访问API的权限,可参考 权限管理。对于 API 调用来说,需要申请 API 密钥,可参考 API调用签名方法 获取签名密钥。

注意:如果需要通过子账号访问 API ,也需要单独对子账号进行授权,未授权账户API调用,通常会出现提示:用户未登录;可参考 技术常见问题 里面的方法进行账户授权。

3. 可通过调用 API 来创建应用,获取应用 ID ( BotBizID ) ,并配合其他应用基础配置的接口来修改应用的基础信息。

与应用相关的基础接口如下:

此处仅列举了部分关键接口,更多接口请参考 API概览 。

接口名 接口描述
CreateApp 创建应用,创建成功会返回应用 ID ( BotBizID )。
ListApp 列出所有的应用。
DeleteApp 删除应用。
DescribeApp 获取某个应用详情。
ModifyApp 编辑应用基础设置(应用配置页支持的设置,包括知识来源、模型设置、输出设置等,可参考应用配置)1、修改应用基础设置时,参数【AppConfig】【KnowledgeQa】为必填选项。2、需要修改应用下的模型时,通过 ListModel 接口先获取可用的模型,之后再进行调整。

注意:说明:

注意:修改完应用的一些基础设置, 例如【提示词】【欢迎语】等文字信息,需要异步审核相关文字是否合法,可通过轮询 DescribeApp 接口,判断相关文字是否审核完成, 审核完成之后需要发布该应用,修改的内容才会在 API 调用的时候生效。

二、二、构建知识库 (配置端)

知识库主要包含了三个部分:文档 、问答、知识标签。

知识标签的作用主要是在 API 调用过程中限定知识检索范围。如果需要进行限制,可通过问答接口中的【 custom_variables 】进行限制;不需要限定知识检索范围的话也可以不用设置知识标签 。

三、知识标签

仅列举了部分关键接口,更多接口请参考 API概览 。

接口描述 接口名 说明
创建属性 CreateAttributeLabel –
查询属性标签详情 DescribeAttributeLabel –
查询属性标签列表 ListAttributeLabel –
编辑属性标签 ModifyAttributeLabel –
删除属性标签 DeleteAttributeLabel –
上传导入属性标签 UploadAttributeLabel 与其他的文件上传一样,有如下三个步骤:1. 获取临时密钥 2. 将文件上传到 cos 3. 调用该接口保存数据,具体可参考离线文档上传

四、文档

仅列举了部分关键接口,更多接口请参考 API概览 。

接口描述 接口名 说明
保存文档 SaveDoc 可参考离线文档上传。注意:批量导入文档也使用该接口,通过入参 Opt 来确定导入的是文档还是问答;当导入为问答对的时候会校验表头(需使用导入模板)。
删除文档 DeleteDoc –
修改文档 ModifyDoc –
批量修改文档适用范围 ModifyDocAttrRange –
文档列表 ListDoc –

文档上传提供了一个示例,请完整阅读 离线文档上传 说明文档,在该文档下面提供了 java , python , go 实现的代码 demo , 其他语言请参考上面三种demo 自行实现。

文档上传之后是一个异步的操作,并不能立即生效,文档需要进行拆分、解析、审核及学习等操作(后台自动完成)。完成这些步骤之后(可使用文档列表接口校验各个文档处理状态)即可对应用进行发布更新;发布之后对话端API调用生效。

五、问答

腾讯云智能体开发平台新建问答支持 批量导入问答、手动录入问答 和 从文档生成问答等多种方式。

此处仅列举关键接口,更多接口请参考 API概览 。

接口描述 接口名 说明
录入问答 CreateQA –
批量导入问答对 SaveDoc 可参考 离线文档上传 。注意:导入文档也是该接口,通过入参 Opt 来确定导入的是文档还是问答;当导入为问答对的时候会校验表头 。
删除问答 DeleteQA –
问答详情 DescribeQA –
获取问答列表 ListQA –
修改问答 ModifyQA –
批量修改问答使用范围 ModifyQAAttrRange –
从文档生成问答对 GenerateQA 1、生成问答可能会耗费较多 token ,请确保 token 余量充足,避免欠费导致应用不可用。2、调用该接口后,可以调用 ListQA 接口来监听是否生成完成,并展开对生成的问答对的一个校验审核操作。注意:获取某个文档生成的问答对是否采纳/不采纳,校验通过时,入参是一个数组,例如:AcceptStatus : [1,2,3]
校验问答对 VerifyQA 从文档生成问答对之后需要校验问答对,可通过 ListQA 返回的 WaitVerifyTotal 查看是否存在问答对需要校验 。

注意:说明:

注意:当前允许存在多个相同的问题(答案可能不同),当有多个相同的问题时,会依据检索到的内容以及大模型综合给出答案。

六、三、执行发布操作(使得应用基础配置或者知识库内的知识在 API 调用场景生效) (配置端)

发布是一个很重要的操作,会将当前应用的基础配置信息【提示词,欢迎语,模型, 输出方式】、文档、问答、工作流程以及拒答等相关配置和知识发布到线上并生效;需要尤其注意两个概念: 体验端,C端 。

体验端:也可以称做评测端,测试端,测试体验环境,是修改完配置,导入文档【学习结束】,问答对,拒答问题后,在该处进行快速验证,查看效果的地方,可以理解为一个测试环境。如下,腾讯云智能体开发平台页面 。

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

七、

注意:需要保证应用发布之后再通过 API 调用来测试,否则同一个问题体验端和 API 调用得到的结果可能不同。

八、发布相关的接口

只列举了部分关键接口,更多接口请参考 API概览 。

接口描述 接口名 说明
创建发布 CreateRelease 注意:此处执行发布会将当前应用的基础配置、文档、问答、拒答等一次性发布 。
查看发布列表 ListRelease –
查看某次发布详情 DescribeRelease –
拉取发布按钮状态、最后发布时间 DescribeReleaseInfo 可以根据此接口返回的 IsUpdate == true 的时候为可发布状态。
查看待发布应用基础配置 ListReleaseConfigPreview –
查看待发布文档列表 ListReleaseDocPreview –
查看待发布问答列表 ListReleaseQAPreview –
查看待发布拒答问题列表 ListRejectedQuestionPreview –

九、四、用户端-接入问答

接入问答是指通过 API 调用的形式进行与应用的对话,目前提供有两种方式, 均提供了代码示例。

对话端接口文档(WebSocket)

对话端接口文档(HTTP SSE)

注意:1. WebSocket 调用,通过 GetWsToken 获取 token 的时候,入参 Type 请写死为5。

注意:2. HTTP SSE 调用,可以通过 GetAppSecret 获取应用密钥。

接入问答提供了如下几种能力:

大模型基础能力:不包含任何知识库,借助大模型进行对话,文本总结,文本摘要等。

大模型基础能力+知识库文档:首先会根据用户 query , 去知识库中检索知识,并将检索的结果给到大模型,大模型进行回复。

大模型基础能力+对话时传入图片文档:对话中传入图片,文档,指定大模型阅读图片或者文档,进行内容的提取或者解释。

关于会话和上下文轮次

会话: 当前系统通过 session_id 来标识一轮会话,session_id 不变的情况下,会一直处在同一个对话中, session_id 请严格按照uuid的规则创建。

上下文记忆轮次: 在同一个会话中,为了使大模型能理解上下文信息,保证语义的连贯性,可以通过页面设置上下文轮次,与大模型对话的过程中会将上文选定的几轮对话一起给到大模型,大模型综合输入的内容进行回答。

注意:设置上下文记忆轮次后,同一个对话中不相干的信息会给到大模型,可能会对当前的问答存在干扰;这时可以重新开启一个新的会话(按照规则生成新的 session_id )

十、五、其他关键接口

接口描述 接口名 说明
评价消息 RateMsgRecord 对消息点赞点踩。
获取历史消息 GetMsgRecord 该接口数据只保存半年,用户如有需要可自行存储一份。

十一、六、其他参考

快速入门

权限管理

技术常见问题

产品常见问题

赞 (0)
上一篇 4天前
下一篇 4天前