国内本地部署FastGPT知识库(FastGPT+ChatGLM3+m3e),搭建属于自己的“备忘录”

7,572 阅读6分钟
  • 最近想弄一个自己的菜谱GPT,记录下自己的美食配方,要不这些配方在手机备忘录中比较杂乱,然后就找了些教程整合了一下才弄出来,期间遇到一些报错弄了会才解决掉,为了方便大家以后少走弯路,就写了这篇文章。希望每个人都能拥有自己的智能“备忘录”。
  • 想体验下本地GPT的小白朋友也可以玩玩(本教程在国内的环境也可以搭建,文章中有🪄的是需要魔法的,不过我也放上了平替)
  • 操作系统: -Windows 11 23H2       -GPU : 1060 6G

一、开启WSL

  1. 程序和功能——启用或者关闭windows功能——(适用于Linux的windows子系统、虚拟机平台)

image.png

  1. 设置wsl

以管理员身份打开cmd

image.png

wsl --set-default-version 2

wsl --update --web-download

二、Ubuntu 下载

方法一:Microsoft Store 微软商店

下载Ubuntu

image.png

方法二🪄:命令行

wsl -l -o

wsl --install -d Ubuntu

image.png

三、docker下载:

1. 下载Docker桌面版

官网🪄www.docker.com

GitHub:github.com/tech-shrimp…

ps:可在Microsoft Store 微软商店 下载watt加速GitHub

2. 安装Docker

Docker桌面版默认安装在C盘

下载Docker桌面版(安装到其他盘的命令):

start /w "" "Docker Desktop Installer.exe" install --installation-dir=D:\Docker

3. 查找Docker镜像:

官网🪄hub.docker.com/

docker.fxxk.dedyn.io/

4. 修改Docker镜像源:

Settings -> Docker Engine

{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.1panel.live",
        "https://hub.rat.dev"
    ]
}

image.png

5. 开启WSL integration

Settings -> Resources -> WSL integration

image.png

四、docker-compose下载(桌面版不用下载):

GitHub:github.com/docker/comp…

image.png

Linux中下载安装docker-compose

wsl中下载安装命令:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

查看安装版本命令: docker-compose –version

五、Fastgpt下载

技术文档:doc.tryfastgpt.ai/docs/develo…

0. 修改本机hosts文件

image.png

image.png

路径:C:\Windows\System32\drivers\etc

保存不了的另外存在桌面后再覆盖掉原来的文件

查询网站:www.ipaddress.com/

末尾添加 185.199.108.133 raw.githubusercontent.com

【否则后面的操作会导致下面的报错】

image.png

1. 安装命令:

    mkdir fastgpt
    cd fastgpt
    curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
    # pgvector 版本(测试推荐,简单快捷)
    curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml

2. 启动容器

# 启动容器
docker-compose up -d
# 等待10s,OneAPI第一次总是要重启几次才能连上Mysql
sleep 10
# 重启一次oneapi(由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次解决,等待作者修复)
docker restart oneapi

六、ChatGLM3下载

技术文档:zhipu-ai.feishu.cn/wiki/HIj5wV…

github.com/THUDM/ChatG…

懒人包下载:

以下懒人包和教程由 非官方开发者 十字鱼 友情提供
视频教程:https://www.bilibili.com/video/BV1c34y1w75K

百度网盘链接:https://pan.baidu.com/s/1fHElFanrdK9Y-pTpeY_azg
提取码:glut

七、M3E下载

1. Docker镜像拉取

原镜像:docker pull stawky/m3e-large-api:latest

我的阿里云:docker pull crpi-lttoy839cc8pgssa.cn-heyuan.personal.cr.aliyuncs.com/cscai/m3e-large-api

2. 运行容器

docker images
# 重命名镜像
docker tag crpi-lttoy839cc8pgssa.cn-heyuan.personal.cr.aliyuncs.com/cscai/m3e-large-api:latest stawky/m3e-large-api:latest
# 删除命名长的镜像
docker rmi crpi-lttoy839cc8pgssa.cn-heyuan.personal.cr.aliyuncs.com/cscai/m3e-large-api:latest

#查看网络 
docker network ls
# GPU模式启动,并把m3e加载到fastgpt同一个网络
docker run -d -p 6008:6008 --gpus all --name m3e --network fastgpt_fastgpt stawky/m3e-large-api
# CPU模式启动,并把m3e加载到fastgpt同一个网络
docker run -d -p 6008:6008 --name m3e --network fastgpt_fastgpt stawky/m3e-large-api
#【记住这起的名字】

八、配置

1. oneapi配置

1.1 登录

本机地址:http://localhost:3001/

oneapi登录账号:root 默认密码:123456

image.png

1.2 配置ChatGLM3

① 懒人包中启动api

image.png

② 进入渠道页面——点击添加新的渠道

image.png

③ 填入渠道信息
# Base URL(ip替换为本机IP)
http://ip:8000

# 名称
ChatGLM3

# 模型(先点击“清除所有模型”)
ChatGLM3

# 密钥
“空格”

image.png

④ 测试

等待ChatGLM3启动成功后点击“测试”,右上角会有测试结果。

image.png

image.png

1.3 配置渠道m3e

① 添加新的渠道
# Base URL(m3e为你上面记住的名字,相当于域名)
http://m3e:6008

# 名称
m3e

# 模型(先点击“清除所有模型”)
m3e

# 密钥
sk-aaabbbcccdddeeefffggghhhiiijjjkkk

image.png

④ 测试

image.png

1.4 配置令牌

① 添加新的令牌

名称随便,永不过期,无限额度

image.png

② 复制令牌

image.png

令牌格式:app.nextchat.dev/#/?settings…

复制key部分:sk-TCH2nzGlJvudk446295e8eFb111c453e8a3486E93493CeE6

2. 修改docker-compose.yml

位置: \wsl.localhost\Ubuntu\home\csc\fastgpt

2.1 修改CHAT_API_KEY

# AI模型的API地址哦。务必加 /v1。这里默认填写了OneApi的访问地址。
- OPENAI_BASE_URL=http://oneapi:3000/v1
# AI模型的API Key。(这里默认填写了OneAPI的快速默认key,测试通后,务必及时修改)
- CHAT_API_KEY=sk-TCH2nzGlJvudk446295e8eFb111c453e8a3486E93493CeE6

3. 修改config.json

位置: \wsl.localhost\Ubuntu\home\csc\fastgpt

    {
      "model": "ChatGLM3", // 模型名(对应OneAPI中渠道的模型名)
      "name": "ChatGLM3", // 别名
      "avatar": "/imgs/model/openai.svg", // 模型的logo
      "maxContext": 4000, // 最大上下文
      "maxResponse": 4000, // 最大回复
      "quoteMaxToken": 2000, // 最大引用内容
      "maxTemperature": 1, // 最大温度
      "charsPointsPrice": 0,  // n积分/1k token(商业版)
      "censor": false, // 是否开启敏感校验(商业版)
      "vision": false, // 是否支持图片输入
      "datasetProcess": true, // 是否设置为知识库处理模型(QA),务必保证至少有一个为true,否则知识库会报错
      "usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true)
      "usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true)
      "usedInToolCall": true, // 是否用于工具调用(务必保证至少有一个为true)
      "usedInQueryExtension": true, // 是否用于问题优化(务必保证至少有一个为true)
      "toolChoice": false, // 是否支持工具选择(分类,内容提取,工具调用会用到。目前只有gpt支持)
      "functionCall": false, // 是否支持函数调用(分类,内容提取,工具调用会用到。会优先使用 toolChoice,如果为false,则使用 functionCall,如果仍为 false,则使用提示词模式)
      "customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型
      "customExtractPrompt": "", // 自定义内容提取提示词
      "defaultSystemChatPrompt": "", // 对话默认携带的系统提示词
      "defaultConfig":{}  // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p)
    }

    {
      "model": "m3e", // 模型名(与OneAPI对应)
      "name": "m3e", // 模型展示名
      "avatar": "/imgs/model/openai.svg", // logo
      "charsPointsPrice": 0, // n积分/1k token
      "defaultToken": 500, // 默认文本分割时候的 token
      "maxToken": 1800, // 最大 token
      "weight": 100, // 优先训练权重
      "defaultConfig":{},  // 自定义额外参数。例如,如果希望使用 embedding3-large 的话,可以传入 dimensions:1024,来返回1024维度的向量。(目前必须小于1536维度)
      "dbConfig": {}, // 存储时的额外参数(非对称向量模型时候需要用到)
      "queryConfig": {} // 参训时的额外参数
    }

修改后重启容器:

docker-compose down

docker-compose up -d

九、FastGTP配置与使用

1. 登录

本机地址:http://localhost:3000

账号:root       密码:1234

image.png

2. 添加知识库

2.1 创建知识库

image.png

image.png

2.2 导入数据集

image.png

3. 添加应用

3.1 创建应用

image.png

3.2 配置应用与关联知识库

image.png

4. 发布与聊天

4.1 未添加知识库的对话

image.png

4.2 添加知识库后的对话

image.png

4.3 高级玩法

FastGPT运用的是MarkDown,这就可以用MarkDown来让他回复图片等一系列用法。

1.运用MakerDown语法配置知识库

image.png

2.回复效果

image.png

十、视频演示

image.png

B站:本地部署FastGPT知识库(FastGPT+ChatGLM3+m3e),搭建属于自己的“菜谱”