检索增强生成

在现有搜索接口的基础上,新增对检索结果进行大模型问答的功能支持。

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可访问线下应用搜索服务)。

    image

  • 以上 URL 省略了请求Header参数及编码等因素。

  • 以上 URL 中省略了访问应用的 host 地址。

  • 以上URL 中拼接的所有查询参数,请查看下方“查询参数”的参数定义、使用方式及样例。

请求协议

请求方式

支持格式

HTTP

JSON

请求参数

查询参数具体拼接规则,详情请参见V3API签名机制文档。

此处重点介绍与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"}}

返回结果

采用流式输出返回:

  1. 首次只返回搜索结果,同search接口。

    {
      "status": "OK",
      "request_id": "c7e8c3fc1d3886050d7a58fee19964ca",
      "result": {
        "searchtime": 0.02588,
        "total": 1,
        "num": 1,
        "viewtotal": 1,
        "compute_cost": [
        ],
        "items": [{...}],
        "facet": []
      }
    }

  2. 中间只返回对话内容,搜索result为空。

    {
      "status": "OK",
      "request_id": "c7e8c3fc1d3886050d7a58fee19964ca",
      "result": {},
      "chat": {
        "text": "",
      }
    }

  3. 最后返回全部内容,包括渲染后的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

请求被限流。