接口设计

技能执行API

查看api 接口

  • cURL: bash环境下快速测试api功能

  • Python API:通过Python调用RestFul API接口,本质和 cURL是一样的

  • Python Code: 作为Python 依赖,通过本地实例化技能,本地执行

  • Tweak:配置每个组件的变量表,可选,不传就会用技能中默认配置的,如果传可以覆盖技能中配置的参数

使用说明

接口协议

  1. API 服务地址是 http://IP:Port/api/v1/process/{flow_id} IP 和Port 是服务部署的地址

  2. 参数说明

    是否必填

    value类型

    说明

    示例

    备注

    flow_id

    UUID

    技能ID

    URL传参

    inputs

    Json

    对整个技能的问题输入 json里的具体key和技能本身相关,不一定都是query

    {"query":"什么是金融"}

    当输入节点只有一个时,id可不传

    history_count

    int

    对于技能里支持Memery,选取几条历史消息进行多轮问答,默认值10

    session_id

    str

    用于session查找,当我们进行多轮时,此参数必填,且建议采用后端生成的key

    每次调用,当session_id 传入时,返回传入sessionid,当session_id不传时,自动生成id

    tweaks

    Json

    对每个组件的控制,可以替换组件输入参数的值

    当没有指定组件传参的时候,可以不传

    • ChatOpenAI-MzIaC

    Json

    示例,技能中OpenAI大模型组件的配置信息,key为组件名,命名为{组件}-{id}

    {"openai_api_key": "sk-xxx"}或者 {}

    当{}为空,表示保持默认值

    • ...

    每个技能中各个组件的参数均可以在调用接口时传进去,如果不传则用技能的默认配置

  3. 返回参数

返回格式采用统一格式:{"status_code":200,"status_message":"SUCCESS","data":{}}}

key

类型

含义

data

object

返回内容

data.session_id

string

会话id,用来和入参对应

data.result

object

技能返回的结果

data.result.answer

str

技能统一key返回的LLM 内容

data.result.message_id

int

技能历史消息存储id

data.result.source

int

是否溯源: 0 不可溯源, 1 普通溯源, 2有访问权限,3/4 特殊情况下的溯源

data.result.{key}

string

key是技能里组件定义的输出key, 输出的内容和answer一致,唯一的区别是key不固定

Curl 示例

# cURL示例
# 从技能编辑页面获取到技能接口及参数,以下为示例,不代表和实际的一致
url="http://IP:3001/api/v1/process/"
flow_id="3d01af25-4aea-4193-ad14-a509ae8cacfc"
curl -X POST ${url}${flow_id} \
 -H 'Content-Type: application/json' \
 -d '{"inputs": {"query":"什么是金融","id":"纽约时报"}, 
      "tweaks": {
          "ChatOpenAI-MzIaC": {},
          "BingSearchRun-MzDJj": {},
          "BingSearchAPIWrapper-UhpQW": {},
          "ZeroShotAgent-dWiEk": {}
          }}'
          

知识库

文件上传

接口地址:http://ip:port/api/v1/knowledge/upload请求方式:POST返回格式:JSON返回内容:file_url

参数

必选

类型及范围

说明

file

true

Form-data

需要通过form传参

知识库创建

接口地址:http://ip:port/api/v2/filelib/请求方式:POST返回格式:JSON

参数

必选

类型及范围

说明

name

true

string

知识库名称

model

true

string

embedding模型,跟系统配置有关,请确保embedding 模型在系统配置中正确配置

description

false

string

知识库修改

接口地址:http://ip:port/api/v2/filelib/请求方式:PUT返回格式:JSON

参数

必选

类型及范围

说明

name

true

string

知识库名称

model

true

string

embedding模型,跟系统配置有关,请确保修改的embedding 模型在系统配置中正确配置

description

false

string

知识库描述

知识库删除

接口地址:http://ip:port/api/v2/filelib/{knowledge_id}请求方式:DELETE返回格式:JSON

获取知识库列表

接口地址:http://ip:port/api/v2/filelib/请求方式:GET返回格式:JSON

参数

必选

类型及范围

说明

page_size

true

int

从1 开始

page_num

true

int

聊天Chat

免密websocket接口

现有接口是websoket方式ws://ip:port/api/v2/chat/ws/{flow_id}

参数

类型

传参方法

参数含义

注意

chat_id

string

get

前端随机id

用来表示一个会话窗口

flow_id

string

Url 传参

技能id,对应已经上线了的技能

knowledge_id

int

知识库id

知识库id

tweak

json

Api 组件传参

针对特定组件进行参数设置 0.2.2.3 版本支持

需要urlencode Json对象

使用websocket 返回客户端消息

返回参数key

类型

含义

is_bot

bool

必要,true消息在左边,false 消息在右边

message

str/ json

返回的消息最终结果

type

str

begin/close 表示整轮会话的开始和结束,start/stream/end 表示stream的开始和结束

category

str

processing: 暂无特别实用 question/answer/report/system: 对应前端不同的展示样式

user_id

int

当前用户id

message_id

int

消息id

source

bool

是否支持溯源, 0 不支持, 1 支持, 2有权限限制,3 问答库, 4 QA库

flow_id

str

(必传)当前聊天的技能id

chat_id

str

(必传)当前会话id

当我们完整构建一条消息,需要后端给前端发送4条消息: type=begin, category=systemtype=start, category=systemtype=end, message=""type=close, category=system

Last updated