文档

SearchKnowledge-问答文档查询

更新时间:

URL

POST /v3/openapi/apps/[app_group_identity]/actions/knowledge-search

  • [app_group_identity]:表示应用名(需要指定应用名访问,主要针对服务中的应用版本)。

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

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

说明

请求头构建可参考:v3 API 签名机制

请求协议

HTTP

HTTP请求方式

POST

支持格式

JSON

查询参数

参数

类型

必需

取值范围

默认值

描述

text

String

输入的问题

session

String

对话的session,设置了之后,会有多轮对话的功能

type

String

TEXT

输入问题的类型默认为文本

stream

Boolean

false

是否流式返回

disable

Boolean

false

是否不走chat模型

attitude

String

normal

对话内容的语气,默认为normal

normal:无

  • polite:使用和蔼和礼貌的语气

  • patience:使用委婉和耐心的语气

rule

String

simple

对话内容的详细程度,默认为detailed

  • detailed:详细和专业

  • stepbystep:详细且按步骤

noanswer

String

sorry

无法回答问题时的回复,默认为sorry

  • sorry:抱歉,根据已知信息无法回答该问题

  • uncertain:我不知道

language

String

Chinese

  • 回答问题使用的语言,默认为Chinese

  • Chinese:中文

  • English:英语

  • Thai:泰语

  • Korean:韩语

role

Boolean

true

开启后,将定制回答的角色

role_name

String

AI小助手

定制回答的角色,例如:AI小助手

out_format

String

table

输出内容的形式,默认为text

  • text:文本

  • table:表格

  • list:列项

  • markdown:markdown

history_max

INT

多轮对话历史最大轮数,最大20轮

csi_level

String

none

绿网配置

none: 表示不需要经过绿网处理

loose: 内容需要经过绿网处理,且只有绿网判断确定存在敏感内容,就会被拦截,返回无结果

strict: 内容需要经过绿网处理,且一旦绿网判断确定或者疑似存在敏感内容,就会被拦截,返回无结果

link

Boolean

false

控制模型生成的内容是否标识内容引用的来源

  • true: 内容包含来源

  • false: 不包含

filter

String

召回时根据category字段做过滤,默认为空;filter使用示例可参考:filter参数使用说明

sf

Float

[0,+∞) 越大越不相关

表示向量召回相似度阈值:

文档召回默认值为1.3;

干预数据召回默认值为0.3;

图片召回默认值为1.0;

召回的向量相关性

top_n

INT

(0, 50]

5

文档召回多少个文档

formula

String

默认为向量相似度

rerank_size

INT

精排文档数,默认不用设置,系统自己决定

operator

String

AND

表示文本召回时,文本token之间的关系是OR,默认是AND

return_hits

Boolean

false

是否在结果中返回文档召回的结果

model

String

Qwen

选择的LLM模型,可选项为

  • "opensearch-qwen"

  • "opensearch-llama2-13b"

  • "opensearch-llama2-13b-turbo"

  • "qwen-turbo"

  • "qwen-plus"

  • "qwen-max"

enable

Boolean

true

控制是否对召回的结果用模型进行相关性的重排。

  • true: 用模型对召回结果进行重排;

  • false:不用模型对召回结果进行重排;

  • 当options.retrieve.doc.formula不为空时,默认为false,其他情况默认为true。

query_extend

Boolean

false

  • 表示是否对用户query进行扩展:扩展query会用来在引擎中召回文档切片;

  • query_extend默认为false,和原来逻辑保持一致(不进行query扩展);

  • 如果设置为true,则会多一次与大模型的交互,所以回复速度会变慢。对耗时敏感的应用请勿开启

query_extend_num

INT

5

表示扩展query的数量,默认值为5;

请求体示例:

{
  "question" : {
    "text" : "user question",
    "session" : "对话的session,设置了之后,会有多轮对话的功能",
    "type" : "TEXT"
  },
  "options": {
    "chat": {
      "disable" : false, # 是否不走chat模型,默认为false。
      "stream" : false, # 是否流式返回,默认false。
      "model" : "Qwen", # 选择的LLM模型,可选项为 Qwen / opensearch-llama2-13b
      "prompt_config" : { # 自定义prompt配置,可选
        "key" : "value" # 配置内容因模型而异,具体参考《客户定制prompt方案》
      },
      "generate_config" : {
        "repetition_penalty": 1.01,
        "num_beams": 1,
        "top_k": 50,
        "top_p": 0.5,
        "do_sample": true,
        "temperature": 0.7
    	},
      "history_max": 20 # 多轮对话历史最大轮数,
      "csi_level": "none", # 绿网配置
      "link": false # 返回链接
    },
    "retrieve": {
      "doc": {
        "disable": false, # 是否需要关闭文档召回,默认false。
        "filter": "category=\"type\"", # 召回时根据category字段做过滤,默认为空
        "sf": 1.3,    # 向量召回阈值,默认1.3;阈值越大,文档可能约不相关
        "top_n": 5,    # 文档召回多少个文档,默认是5个,取值返回(0, 50],
        "formula" : "", #默认为向量相似度
        "rerank_size" : 5,  #精排文档数,默认不用设置,系统自己决定
        "operator":"OR"  # 表示文本召回时,文本token之间的关系是OR,默认是AND
      },
      "entry": {
        "disable": false, # 是否需要关闭人工干预数据的召回,默认false。
        "sf": 0.3 # 干预数据召回的向量相关性,默认0.3
      },
      "image": {
        "disable": false,  # 是否需要关闭图片数据的召回,默认false。
        "sf": 1.0          # 图片数据召回的向量相关性,默认1.0
      },
      "qp": {
        "query_extend": false, # 是否需要对用户query进行query扩展
        "query_extend_num": 5 # 表示扩展query的数量,默认值为5
      },
      "return_hits": false   # 是否在结果中返回文档召回的结果, 即response里面的search_hits
    },
    "rerank" : {
      "enable": true  # 召回后是否使用大模型进行重排,默认为true
    }
  }
}

返回结果

参数

类型

描述

id

INT

主键ID

title

String

文档的标题

category

String

类目名

url

String

文档链接

answer

String

问答结果

type

String

返回结果类型

scores

Array

文档内容分

code

String

返回的错误码

message

String

返回的错误信息

响应体示例:

{
  "request_id" : "abc123-ABC",
  "result" : {
    "data" : [
      {
        "answer" : "answer text",
        "type" : "text",
        "reference" : [
          {"url" : "http://....","title":"doc title"}
    		]
      },
      {
        "reference": [
          {"id": "16","title": "测试标题","category": "测试类目","url": "测试链接"}
        ],
        "answer": "https://ecmb.bdimg.com/tam-ogel/-xxxx.jpg",
        "type": "IMAGE"
      }
    ],
    "search_hits" : [  // 查询请求中设置了options.retrieve.return_hits才会有
      {
        "fields" : {
          "content" : "...."
          "key1" : "value1"
        },
        "scores" : ["10000.1234"],
        "type" : "doc"
      },
      {
        "fields"{
          "answer" : "...",
          "key1" : "value1"
        },
        "scores" : ["10000.1234"],
        "type" : "entry"
      }
    ]
  }
  "errors" : [
    {
      "code" : "如果有错误,这里填错误码",
      "message" : "如果有错误,这里填错误信息"
    }
  ]
}

  • 本页导读 (0)
文档反馈