历史版本22 :连接本地大模型 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:
icon点击返回主目录:【目录】FineChatBI

目录:

1. 概述编辑

本文将介绍 FineChatBI 如何连接其他大模型(图中蓝色连线部分),连接其他本地大模型需要进行接口改造,连接步骤大致如下:

1)部署 FineAI 服务,目的是转发代理大模型。

2)在 FineChatBI 中配置大模型信息,完成连接。 

1.png

2. 环境准备编辑

2.1 检查本地大模型是否满足 FineChatBI 要求

FineChatBI 要求大模型必须严格按照指定格式输出结果,否则无法正常使用。

用户在连接本地大模型前,需要提前验证本地模型是否满足 FineChatBI 的要求,详情请参见:判断大模型是否满足 FineChatBI 能力要求

2.2 FineAI 服务器配置要求

FineAI 的服务器配置要求相对较低,若想节省服务器优化资源使用,可以将 FineAI 服务以及语义模型部署在同一台服务器上。FineAI 部署环境要求如下表所示:

配置项最低配置
Linux 内核版本3.10以上
位数64位
核数4核
内存8G
硬盘80G
显卡可选
Docker20.0.0

3. 部署 FineAI 服务编辑

在为 FineAI 准备的服务器环境中执行本节操作。

3.1 安装 Docker

检查服务器是否已安装 Docker,以满足 FineAI 部署的先决条件,检查 Docker 命令:docker --version

  • 若没有安装则会显示 command not found,如下图所示,此时则需要在服务器上安装 Docker,安装步骤可参考:Linux系统在线安装Docker

    2.png

  • 若已安装则会显示 Docker 的版本信息,如下图所示:

    3.png

3.2 上传并运行 Docker 镜像文件

FineAI docker镜像文件下载FineAI 镜像文件

1)将 Docker 镜像文件(图中为 fine_ai.tar)传输至服务器的指定目录,示例路径:/home/fineai

4.png

如果收到后镜像文件以 .gz 结尾,则需要将其解压,解压后如下图所示:

命令示例:gunzip fine-ai-base_v0_1.tar.gz

5.png

2)执行 docker load  命令以导入 Docker 镜像文件。

命令示例:docker load -i fine-ai-base_v0_1.tar 

6.png

4)执行 docker images 命令以确认镜像是否已成功导入。

命令示例:docker images

7.png

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

8.png

3.3 安装代码

FineAI 代码文件下载:FineAI 代码文件

1)将代码文件 encrypt_fine_ai_xxxxx.tar 传输至服务器的指定目录,示例路径:/home/fineai

9.png

2)使用 tar -xvf 命令解压代码文件。

命令示例:tar -xvf encrypt_fine_ai_xxxxx.tar

10.png

3)执行 docker cp 命令,将解压后的代码文件复制到容器路径 fine_ai:/root/ 中。

命令示例:docker cp encrypt_fine_ai_xxxxx fine_ai:/root/

11.png

4)进入到容器中,并切换到容器内的代码路径中运行代码脚本。

  1. 进入容器 fine_ai:docker exec -it fine_ai /bin/bash

  2. 切换当前工作目录到代码路径中:cd /root/encrypt_fine_ai_xxx/pipeline

  3. 运行脚本:python app.py 

12.png

5)依次按下 Ctrl+P 和 Ctrl+Q 退出 Docker 容器。

4. 检查接口是否兼容编辑

FineAI 是 OpenAI Chat 接口,用户需要确认自己的本地大模型是否兼容 OpenAI 接口:

情况一:兼容 OpenAI 接口

大模型兼容 OpenAI 接口,则无需任何改造,大模型可以直接连接 FineAI 服务。

情况二:不兼容 OpenAI 接口

大模型若不兼容 OpenAI 接口,推荐使用 vLLM 框架将本地大模型重新部署为兼容 OpenAI 接口的服务,详情请参考 vLLM 官方文档

情况三:不兼容 OpenAI 接口且无法重新部署大模型

接口改造。常驻一个接口转发服务,作为 FineAI 服务和大模型服务之间沟通的桥梁。

接口转发服务需要将 FineAI 的请求体转换成大模型服务支持的格式,发给大模型;并解析大模型的返回,转换成 FineAI 的返回体格式。

FineAI 的请求体和返回体都符合 OpenAI Chat 接口规范,详情见:

点击展开更多
  • 请求 URL 规范

大模型的请求 URL 需要以 /chat/completions 结尾。
  • 请求体规范

请求体需要包含以下参数:

参数说明
model即问答 BI 配置界面的部署名
messages

对话历史记录,包括角色和历史。类型为 List[dict(str,str)]

temperature调节模型输出结果的随机性,值越大随机性越强
max_tokens控制生成输出 token 的数量
stream是否流式输出,bool 类型。必须将 FineAI 发送的 stream 传递给大模型

请求体示例:

{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "system",
      "content": "你是算术专家"
    },
    {
      "role": "user",
      "content": "圆周率怎么计算"
    }
  ],
  "temperature": 0.95,
  "max_tokens": 8192,
  "stream": false
}
  • 返回体规范

非流式返回体示例:

{
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "圆周率的计算方式有以下几种……"
      },
      "finish_reason": "stop"
    }
  ],
  // 其他非必需参数,如 id 等
}

流式返回体示例:

  • 生成过程中:每个 token 通过 content 返回,且 finish_reason 为 null

  • 流式返回结束:返回了最后一个 token 后,须要有一个额外的返回体,其中 content 为 null,而 finish_reason 为 "stop"

{
  "choices": [
    {
      "finish_reason": null,
      "delta": {
        "content": "好的",
      },
      "index": 0
    }
  ],
  // 其他非必需参数,如 id 等
}


5. FineChatBI 配置大模型编辑

进入「智能问答配置>其他配置>大模型配置」,配置本地服务信息,再点击保存。如下图所示:

13.png

填写项描述
FineAI服务主机FineAI 所在服务器
FineAI端口FineAI 端口号(默认 7666)
ApiKey

用于身份验证的唯一字符串,通常由服务提供商生

(若接口不需要鉴权,可不填写)

endPoint

大模型的具体的服务地址,可以通过该地址与模型进行交

填入基础URL,即不包含 /chat/completions 后缀

部署模型名称

填入要接入模型的模型名(model name)

6. 测试是否配置成功编辑

测试需要大模型支撑的功能,比如:问答增强、分析思路、归因分析,同义词一键配置等,确保大模型服务在问答BI中可正常使用。