1. 概述
FineAI 是问答 BI 和大模型服务之间的桥梁,负责与大模型通信。
FineAI 服务已经适配主要的线上模型接口,无需额外适配即可使用。
但各家本地的大模型服务的标准接口互不相同,因此本文档规定了 FineAI 与本地大模型服务之间通信的接口,大模型方需要参考本文档,新增接口用于和 FineAI 服务通信,从而赋能问答 BI。
适配接口时,须对 FineAI 发送的参数进行映射,匹配用户本地大模型接口所需的参数,确保 FineAI 发送的请求能够被正确处理,并且返回结果符合 FineAI 能够处理的格式。
2. 接口介绍
2.1 接口概览
请求方式:POST
基础URL:$BASE_URL(大模型服务URL)
路径:/chat/completions
完整URL:POST $BASE_URL/chat/completions
鉴权方式:Authorization: Bearer $API_KEY(部署大模型服务的鉴权码)
2.2 请求参数
映射逻辑:
对于 FineAI 提供且大模型需要的参数,直接传递这些参数
对于 FineAI 提供但大模型不需要的参数,可忽略,但大模型方接口需要能够接收
对于大模型需要,但 FineAI 未提供的参数,可设置合适的默认值或依据业务逻辑补充这些参数
请求体示例:
{
"model": "qwen2.5-instruct",
"system_prompt": "你是一名算术专家",
"prompt": "圆周率怎么计算",
"messages": [],
"temperature": 0.5,
"top_p": 0.8,
"top_k": 8,
"max_tokens": 1024,
"stream": false,
"user_id": "test_user"
}| FineAI参数 | 说明 |
|---|---|
| model | 即问答 BI 配置界面的部署名 |
| prompt | 用户 prompt |
| system_prompt | 系统 prompt |
messages | 对话历史记录,包括角色和历史。类型为 List[dict(str,str)] 注:因暂未启用,默认传递空列表 |
| temperature | 调节模型输出结果的随机性,值越大随机性越强,0为固定输出 |
| top_p | 从生成结果中按输出的概率选择输出结果 |
top_k | 从生成结果中选择候选输出的数量 |
| max_tokens | 生成输出 token 的最大长度,单位为个 |
| stream | 是否流式输出,bool 类型 |
| user_id | 用户的唯一标识 |
2.3 返回结果
返回示例:
{
"code": 10200,
"msg": "OK",
"data": {
"content": "返回的内容" // 大模型返回的message content
}
}
返回代码描述
| HTTP状态码 | 自定义编码 | 消息 | 描述 |
|---|---|---|---|
| 200 | 10200 | OK | 请求成功并返回所请求的数据 |
| 400 | 10400 | Bad Request | 请求参数有误或格式不正确 |
| 401 | 10401 | 未授权访问,需要身份验证 | |
| 429 | 10429 | Rate limit reached for requests | 发送请求的速度太快 |
| 500 | 10500 | Internal Server Error | 服务器内部错误 |
| 502 | 10502 | Bad Gateway | 网关或代理服务器收到无效响应 |
| 503 | 10503 | Service Unavailable | 服务器暂时不可用,通常是因为过载或维护 |
| 504 | 10504 | Gateway Timeout | 网关或代理服务器未及时收到上游服务器响应 |
