149 lines
3.7 KiB
Markdown
149 lines
3.7 KiB
Markdown
# 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"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|