sage/wwwroot/llm/README.md
2025-07-16 14:28:41 +08:00

149 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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"
}
]
}
}
```