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

3.7 KiB
Raw Permalink Blame History

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