Viking AI 搜索是一款基于生成式 AI 的企业级 AI 搜索产品,基于大模型的多模态语义表征和理解能力,结合字节跳动信息检索领域多年最佳实践,为客户提供开箱即用的 AI 搜索搭建平台服务,帮助客户轻松搭建和集成端到端的多模态图文搜索和推荐能力。 想要体验更多 Viking AI 搜索能力,点击前往:Viking AI 搜索引擎,企业搜推问一体化智能引擎
您可以使用 ChatSearch API 进行对话助手的集成。
Session:一个session表示一个用户在一个界面内进行多轮对话的整个过程。每个session包含一个用户的多轮对话历史。
用户信息:在session对话中传入当前对话的用户信息,目前支持传入用户的ID和昵称。传入用户信息将有助于对话引擎积累用户的对话数据来贡献用户的兴趣偏好。
Step:对话助手使用Agent架构,在流式输出最后的答案前会经过思考、工具调用、接收搜索结果等流程,这些流程均会在调用过程中返回相应的步骤事件,以step来区分当前agent的执行阶段。
Payload:代表对话接口输出的非最终回复的一些中间结果,每个step可能会返回不同的payload信息,您可以忽略这些信息,也可以使用这些信息来加工向用户展示的agent中间执行过程。
Session启动支持2种模式:
- 无开场:不进行开场欢迎或开场推荐物品,直接传入第一条用户输入。见开始进行问答
- 进行对话开场:将您配置的开场欢迎语或物品推荐交互返回给用户后,再输入用户的输入问题。对话开场配置由您在控制台配置,见:配置对话开场
调用示例:
参数解析:
{application_id}:对话场景所属应用的应用ID,可在控制台获取
opening_remarks:是否进行开场,传入true
session_id:会话的唯一标识符,用于跟踪和管理用户对话状态,您需要在您的服务端维护Session ID,每次用户的新对话需要传入一个唯一的新的session_id,一次对话之中session_id需保持一致
_user_id:建议传入,代表一个您的平台中用户的唯一标识。您需要保障用户ID与传入的行为数据中的用户ID一致。如果您在对话开场配置中配置了对话时启动推荐,则必须传入此参数。
nickname:建议传入,会用于开场打招呼时,使用用户自定义的昵称称呼用户。见个性化欢迎语 location:可传入用户当前所处地理位置
控制台没有配置开场推荐时,仅返回欢迎语打招呼内容,随后返回开场的建议问题。
输出参数:
request_id String
此次请求的唯一请求标识
result Object
流式返回的顶层结构
流式输出欢迎语后,立即返回开场推荐的问题:
输出参数
request_id String
此次请求的唯一请求标识
result Object
流式返回的顶层结构
- suggestions List[String]
- 欢迎阶段“猜你想搜”问题列表,按控制台配置的最大返回数量返回一个问题列表
配置了开场推荐时,agent将先调用推荐接口,使用用户ID获取针对此用户的个性化推荐列表,再进行总结、加工,并以流式的形式输出精选推荐物品和欢迎语,以及推荐问题。
步骤1:启动时调用个性化推荐工具
启动对话时开始使用用户ID调用推荐工具,获取个性化推荐列表。
输出参数:
request_id String
此次请求的唯一请求标识
result Object
流式返回的顶层结构
- Step为 tool call 时返回工具名称,在启动推荐物品时会输出"rec"
- 调用推荐的场景参数,默认使用控制台配置的首页推荐场景的scene_id
- {"scene_id":"<控制台选择的scene_id>"}
- rec_results List[Object]
- 推荐返回内容列表,列表中包含多个推荐内容。内容包含:
步骤2:流式输出欢迎语和推荐理由
返回推荐列表后,模型结合推荐内容、用户画像和上传的用户昵称、时间,生成个性化欢迎语和推荐理由。
输出参数:
request_id String
此次请求的唯一请求标识
result Object
流式返回的顶层结构
步骤3:输出与推荐理由、欢迎语相关的精选推荐物品
输出结束后,返回在欢迎语和推荐理由中实际引用的精选推荐物品列表和建议问题
输出参数:
request_id String
此次请求的唯一请求标识
result Object
流式返回的顶层结构
- related_rec_items List[Object]
- 如果在控制台配置了启动时推荐物品,并关联了生效的推荐场景,接口在输出欢迎语后返回的精选内容列表,列表中包含多个推荐内容。
- suggestions List [String]
- 基于推荐列表输出推荐问题,以字符串列表的形式返回
说明
这个请求可以用于跳过开场白和开场推荐直接问答,也适用于开场后输入用户的每次对话,需要您传入开场时传入的session_id
传入用户的对话信息,立即开始对话:
参数说明:
input_message:用户的输入对话内容。可包含图片和文本信息。
search_params:在对话中调用搜索工具时需要遵循的参数。包含返回的首页结果大小、限定在某个数据集内搜索、限定数据集的搜索过滤条件
enable_suggestion:回复最后是否输出用户继续问的问题。默认为false。
说明
对于视频对话,如果您想在对话时仅向用户展示、推荐系列内容(如电视剧的一整季而不是单集),则需要传入以下filter:
"{应用绑定的视频数据集ID}": {"op": "must","field": "parent_content_id","conds": [""]}
流式返回的信息在step为"reply"时开始流式输出。输出内容包含markdown格式的回复文本内容,和回复内容段落引用的物品字段。返回字段如下:
输出参数
request_id String
此次请求的唯一请求标识
result Object
流式返回的顶层结构
- citation Array [Citation 结构]
- 在需要输出引用的物品、文档内容的时候输出段落的引用溯源的物品数据列表 ,列表中每一个元素是一个Object,包含物品内容的类型、数据集ID和数据ID。在输出的内容无引用时,不输出此字段,在段落结束位置,如果该段落介绍了、或引用了某条媒资信息,将会返回一个列表。citation对象的返回结构如下:
- 引用的数据类型的枚举,会返回以下值:"item"物品数据集中的物品数据;"document"文档数据集中的文档
- 引用的物品或文档的唯一ID,对应图文物品数据集中的物品ID、视频数据集中的content_id
- 引用数据的详细信息。目前在引用文档数据时会返回以下内容:
- doc_name String:文档名称,用于标识引用文档的具体名称
视频应用中用户的问题会触发视频深度搜索,此时在返回流式输出的内容后会返回与用户问题相关的视频片段列表,每个片段包含视频ID、起始时间戳和结束时间戳信息,以便用户快速定位相关内容。
输出参数
request_id String
此次请求的唯一请求标识
result Object
流式返回的顶层结构
- video_deep_answer List[Object]
- 返回本次回答中引用的所有物品的全部字段,以及这些引用的物品所属的数据集
- 看点所属的视频标题,返回上传的视频媒资中标注的“标题”属性的字段值
传入参数中开启了'enable_suggestion'则会返回与当前搜索相关的建议问题列表,帮助用户进一步探索或优化查询。
输出参数
request_id String
此次请求的唯一请求标识
result Object
流式返回的顶层结构
- suggestions List[String]