LLM 文件说明
llm文件是个JSON格式文件 下面说明主要的key含义
json文件主key中除了name之外的其他key值代表一个调用名称
name
接口名称,通常一个公司会提供他自己的API,但也有例外,比如很多公司就直接使用OpenAI的api,那么这样的公司就可以不用定义接口文件
调用名称
除名字之外的其他key定义一个调用名称,下来也是一个字典格式数据
path
调用路径,不包含http(s)://examples.com:port
method
http 调用方法
apitype
大模型调用有三种方法, 流式,同步, 异步
- 流式 一次请求,一次返回,但返回内容可通过流失方法分段读取
- 异步 两次请求, 第一次请求,返回一个查询号,后面定时查询,最终结果在完成状态下的响应中
- 同步 一次请求, 一次返回
header
请求头数据, 数组形式,每项一个header,请参看数据表述一节
input_items
输入项, 可选的数据项有
- prompt 正文文本
- image, 一到多个图像数据
- video, 一到多个视频
params
参数,在params中定义的数据会添加到url后面,数组形式,每项一个参数
data
数据, 在data中定义的数据会通过body传输给后台,数组形式,每项一个数据
resp
返回数据,定义响应数据, 一项一个数据, 整个响应数据以字典格式返回调用方
响应数据项
字典形式, 有如下的key
- name 在返回数据中的key值
- value 在http响应字典内的keys键值系列
- converter 需要的转换函数名称 converter接收一个参数,返回结果
参数数据表述
参数数据表述使用于API调用中的header, params和data
一个参数数据表述有一下keys
- name 参数名称
- value 参数值,可以是常量,也可以是变量,如果是变量,需用${var}来标识
- converter 转换函数名称, 此函数接收一个参数,value的值,返回结果设置到http请求的相应数据中。
一个例子
下面是一个minimax的接口例子, 注意:这里只定义minimax的Text2Text的调用
{
"name":"minimax",
"chat":{
"path":"/v1/text/chatcompletion_pro",
"method":"POST",
"apitype":"stream", or "async" or "sync"
"headers":[
{
"name":"Content-Type",
"value":"application/json"
},
{
"name":"Authorization",
"value":"Bearer ${apikey}"
}
],
################### apitype == stream only ######################
"chunk_match":"data: (.*)",
"chunk_filter": {
"name":"reply",
"op":"!=",
"value":"",
"field":"content"
},
################### apitype == stream only end ######################
################### apitype == async only ######################
"resp":[
"name":"queryid"
"value":"gaaa.aaa"
]
"query_path":"/path/to",
"query_params":[
],
"query_data":[
],
"query_resp":[
]
################### apitype == async only end ######################
################### apitype == sync only ######################
################### apitype == sync only end ######################
"params":[
{
"name":"GroupId",
"value":"${groupid}"
}
],
"data":[
{
"name":"model",
"value":"${model}"
},
{
"name":"messages",
"value":"${messages}"
},
{
"name":"stream",
"value":true
},
{
"name":"bot_setting",
"value":[{
"bot_name":"MM助手",
"content":"MM助手"
}]
},
{
"name":"reply_constraints",
"value":{
"sender_type":"BOT",
"sender_name":"MM助手"
}
}
],
"resp":[
{
"name":"content",
"value":"choices[0].messages[0].text"
},
{
"name":"usage",
"value":"usage"
}
]
}
}