在现有搜索接口的基础上,新增对检索结果进行大模型问答的功能支持。
URL
/v3/openapi/apps/$app_name/rag?fetch_fields=name&query=config=format:fulljson&&query=name:'opensearch'&&sort=id&&raw_query="opensearch"&&chat={"name":"chat_test","prompt_parameters":{"param":"value"}}
$app_name:表示应用名(高级版/标准版是多应用版本类型,需要指定应用名访问,主要针对服务中的应用版本,如填写线下应用ID可访问线下应用搜索服务)。
以上 URL 省略了请求Header参数及编码等因素。
以上 URL 中省略了访问应用的 host 地址。
以上URL 中拼接的所有查询参数,请查看下方“查询参数”的参数定义、使用方式及样例。
请求协议 | 请求方式 | 支持格式 |
HTTP | JSON |
请求参数
查询参数具体拼接规则,详情请参见V3版API签名机制文档。
此处重点介绍与rag接口相关的参数,其余参数与搜索处理search接口一致。
参数 | 类型 | 必需 | 默认值 | 描述 |
chat | String | 是 | 智能对话相关配置,json格式,需要urlencode,包括使用的智能对话配置名称、prompt模板中自定义变量的赋值,详情请参见Prompt管理。 | |
raw_query | String | 是 | rag接口中必须传递,作为prompt模板中内置变量{question},即用户输入的原始query。 | |
fetch_fields | String | 否 | 全部可展示字段。 | 表示本次查询需要召回哪些字段值,多个字段之间通过英文分号 |
请求示例
http://host/v3/openapi/apps/$app_name/rag?fetch_fields=name&query=config=format:fulljson&&query=name:'opensearch'&&sort=id&&raw_query="opensearch"&&chat={"name":"chat_test","prompt_parameters":{"param":"value"}}
返回结果
采用流式输出返回:
首次只返回搜索结果,同search接口。
{ "status": "OK", "request_id": "c7e8c3fc1d3886050d7a58fee19964ca", "result": { "searchtime": 0.02588, "total": 1, "num": 1, "viewtotal": 1, "compute_cost": [ ], "items": [{...}], "facet": [] } }
中间只返回对话内容,搜索result为空。
{ "status": "OK", "request_id": "c7e8c3fc1d3886050d7a58fee19964ca", "result": {}, "chat": { "text": "", } }
最后返回全部内容,包括渲染后的
prompt
。{ "status": "OK", "request_id": "c7e8c3fc1d3886050d7a58fee19964ca", "result": { "searchtime": 0.02588, "total": 1, "num": 1, "viewtotal": 1, "compute_cost": [ ], "items": [{...}], "facet": [] }, "chat": { "text": "", "prompt": "" } }
返回参数
参数 | 类型 | 描述 |
status | String | 执行结果,OK为成功,FAIL为失败,请根据返回错误码进行排查。 |
request_id | String | 该条查询的记录ID,主要用于排查问题。 |
result | JSON | 实际返回结果,包括查询耗时searchtime、引擎总结果数total、本次请求返回结果数num、本次查询最大返回结果数viewtotal、查询结果items、统计结果facet等信息。 |
errors | List | 错误码和错误内容,message代表错误信息;code详情请参见错误码说明。 |
chat | JSON | 智能对话结果。 |
chat.text | String | 模型回答内容。 |
错误码
错误码 | 描述 |
6044 | 对话参数不合法. |
6045 | 对话字段缺失(不在fetch fields中)。 |
6046 | raw_query缺失。 |
6047 | 对话配置不存在。 |
2101 | 工作空间不存在。 |
2102 | 对话配置不存在。 |
4031 | API KEY不存在。 |
4032 | API KEY被禁用。 |
4040 | 请求内容不合法(存在敏感词)。 |
6015 | 请求被限流。 |