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