
1. 概述编辑
本文将介绍 FineChatBI 如何连接其他大模型(图中蓝色连线部分),连接其他本地大模型需要进行接口改造,连接步骤大致如下:
1)部署 FineAI 服务,目的是转发代理大模型。
2)大模型接口改造。由于各家本地大模型服务的标准接口不同,大模型方需要新增接口实现与 FineAI 的服务通信。
3)在 FineChatBI 中配置大模型信息,完成连接。
2. 环境准备编辑
FineAI 的服务器配置要求相对较低,若想节省服务器优化资源使用,可以将 FineAI 服务以及语义模型部署在同一台服务器上。FineAI 部署环境要求如下表所示:
配置项 | 最低配置 |
---|---|
Linux 内核版本 | 3.10以上 |
位数 | 64位 |
核数 | 4核 |
内存 | 8G |
硬盘 | 80G |
显卡 | 可选 |
Docker | 20.0.0 |
3. 部署 FineAI 服务编辑
在为 FineAI 准备的服务器环境中执行本节操作。
3.1 安装 Docker
检查服务器是否已安装 Docker,以满足 FineAI 部署的先决条件,检查 Docker 命令:docker --version
若没有安装则会显示 command not found,如下图所示,此时则需要在服务器上安装 Docker,安装步骤可参考:Linux系统在线安装Docker
若已安装则会显示 Docker 的版本信息,如下图所示:
3.2 上传并运行 Docker 镜像文件
FineAI docker镜像文件下载:FineAI 镜像文件
1)将 Docker 镜像文件(图中为 fine_ai.tar)传输至服务器的指定目录,示例路径:/home/fineai
如果收到后镜像文件以 .gz 结尾,则需要将其解压,解压后如下图所示:
命令示例:gunzip fine-ai-base_v0_1.tar.gz
2)执行 docker load 命令以导入 Docker 镜像文件。
命令示例:docker load -i fine-ai-base_v0_1.tar
4)执行 docker images 命令以确认镜像是否已成功导入。
命令示例:docker images
5)依据已经导入的镜像,使用 docker run 命令创建并启动一个新的容器 。
命令示例:docker run -e TZ=Asia/Shanghai --name fine_ai -p 7666:7666 -it -d fine-ai-base:v0.1-git-ssh /bin/bash
3.3 安装代码
FineAI 代码文件下载:联系帆软运营获取
1)将代码文件 encrypt_fine_ai_xxxxx.tar 传输至服务器的指定目录,示例路径:/home/fineai
2)使用 tar -xvf 命令解压代码文件。
命令示例:tar -xvf encrypt_fine_ai_xxxxx.tar
3)执行 docker cp 命令,将解压后的代码文件复制到容器路径 fine_ai:/root/ 中。
命令示例:docker cp encrypt_fine_ai_xxxxx fine_ai:/root/
4)进入到容器中,并切换到容器内的代码路径中运行代码脚本。
进入容器 fine_ai:docker exec -it fine_ai /bin/bash
切换当前工作目录到代码路径中:cd /root/encrypt_fine_ai_xxx/pipeline
运行脚本:python app.py
5)依次按下 Ctrl+P 和 Ctrl+Q 退出 Docker 容器。
4. 接口改造编辑
各家本地的大模型服务的标准接口互不相同,为了让大模型能正确处理 FineAI 发送的请求并返回 FineAI 需要的数据,需要下述的接口规范为大模型方新增接口用于和 FineAI 服务通信。
适配接口时,将 FineAI 发送的参数进行映射,匹配用户本地大模型接口所需的参数,确保 FineAI 发送的请求能够被正确处理,并且返回结果符合 FineAI 能够处理的格式。
两种可行的方式:
1. 常驻一个接口转接服务,作为 FineAI 和大模型之间通信的中转节点,将 FineAI 接口参数转换为大模型所需的格式,并将大模型返回的数据转换为 FineAI 能处理的格式。
2. 大模型服务直接添加一个接口
4.1 接口概览
请求方式:POST
基础URL:$BASE_URL(大模型服务URL,即配置界面的「端点(endpoint)」)
路径:/chat/completions
完整URL:POST $BASE_URL/chat/completions
鉴权方式:Authorization: Bearer $API_KEY(部署大模型服务的鉴权码)
4.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 | 用户的唯一标识 |
4.3 返回结果
返回示例:
{ "code": 10200, "msg": "OK", "data": { "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 | 网关或代理服务器未及时收到上游服务器响应 |
5. FineChatBI 配置大模型编辑
进入「智能问答配置>其他配置>大模型配置」,配置本地服务信息,再点击保存。如下图所示:
填写项 | 描述 |
---|---|
FineAI服务主机 | FineAI 所在服务器 |
FineAI端口 | FineAI 端口号(默认 7666) |
ApiKey | 用于身份验证的唯一字符串,通常由服务提供商生成 (若接口不需要鉴权,可不填写) |
endPoint | 大模型的具体的服务地址,可以通过该地址与模型进行交 填入基础URL,即不包含 /chat/completions 后缀 |
部署模型名称 | 填入要接入模型的模型名(model name) |
6. 测试是否配置成功编辑
测试需要大模型支撑的功能,比如:问答增强、分析思路、归因分析,同义词一键配置等,确保大模型服务在问答BI中可正常使用。