多轮改写组件 (QueryRewrite) 是一个用于处理多轮对话和查询改写的组件。它主要用于理解和优化用户与机器人的交互过程,进行指代消解及省略补全。该组件支持不同的改写类型,可根据对话历史生成更准确的用户查询。
多轮改写组件 (QueryRewrite) 据用户和机器人的聊天记录,改写用户当前query,利用大语言模型的理解及生成能力,进行指代消解及省略补全。
多轮改写组件 (QueryRewrite) ,基于百度自研的大语言模型文心一言,无需更多的prompt描述,即可根据对话历史生成更准确的用户查询。
多轮改写组件 (QueryRewrite) 可用于智能问答、对话式搜索等场景。
以下是一个简单的例子,展示如何快速开始使用 QueryRewrite 组件:
import os
import appbuilder
# 请前往千帆AppBuilder官网创建密钥,流程详见:https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5
os.environ["APPBUILDER_TOKEN"] = '...'
# 初始化并使用 QueryRewrite 组件
query_rewrite = appbuilder.QueryRewrite(model="ERNIE Speed-AppBuilder")
answer = query_rewrite(appbuilder.Message(['我应该怎么办理护照?', '您可以查询官网或人工咨询', '我需要准备哪些材料?', '身份证、免冠照片一张以及填写完整的《中国公民因私出国(境)申请表》', '在哪里办']), rewrite_type="带机器人回复")
print(answer)
使用组件之前,请首先申请并设置鉴权参数,可参考组件使用流程。
# 设置环境中的TOKEN,以下示例略
os.environ["APPBUILDER_TOKEN"] = "bce-YOURTOKEN"
model
: 模型名称,用于指定要使用的千帆模型。
参数名称 | 参数类型 | 是否必须 | 描述 | 示例值 |
---|---|---|---|---|
message | Message | 是 | 需要改写的文本,用于模型的主要输入内容,这是一个必需的参数。 | Message(content=['我应该怎么办理护照?', '您可以查询官网或人工咨询','我需要准备哪些材料?', '身份证、免冠照片一张以及填写完整的《中国公民因私出国(境)申请表》', '在哪里办']) |
rewrite_type | str | 否 | 改写类型选项,可选值为 '带机器人回复'(改写时参考user查询历史和assistant回复历史),'仅用户查询'(改写时参考user查询历史)。 默认是"带机器人回复" | "带机器人回复" |
stream | bool | 否 | 指定是否以流式形式返回响应。默认为 False。 | False |
temperature | float | 否 | 模型配置的温度参数,用于调整模型的生成概率。取值范围为 0.0 到 1.0,其中较低的值使生成更确定性,较高的值使生成更多样性。默认值为 1e-10。对于此组件勿动! | 1e-10 |
参数名称 | 参数类型 | 描述 | 示例值 |
---|---|---|---|
result | Message | 返回结果 | Message(content="身份证在哪办") |
Message(name=msg, content="身份证在哪办", mtype=dict, extra={})
实际应用中,QueryRewrite 可用于多种场景,如信息检索、智能对话等。
当前版本:v2 (2023-12)