fastGPT+m3e+qwen2.5打造知识库

fastGPT+m3e+qwen2.5打造知识库

架构

1. Docker镜像设置

1
2
3
4
5
6
7
"registry-mirrors": [
"https://dockerpull.com",
"https://docker.1panel.dev",
"https://docker.xn--6oq72ry9d5zx.cn",
"https://docker.zhai.cm",
"https://a.ussh.net"
]

2. Docker安装FastGPT

下载 docker-compose.yml

1
2
3
4
5
6
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
# 如果下载不了,可以换成https://raw.githubusercontents.com 加速镜像

3. Docker下载并启动

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

4. Docker下载m3e模型

1
docker run -d --name m3e -p 6008:6008 --gpus all registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest

5. 配置ollma

ollma 下载地址 https://ollama.com/download/windows
安装完成后,下载qwen2.5模型

1
2
# 根据电脑配置选择合适的模型,这里博主选的qwen2.5:7b
ollama run qwen2.5:7b

6. 配置oneApi

可以通过ip:3001访问OneAPI,默认账号为root密码为123456。
在OneApi中添加合适的AI模型渠道。点击查看相关教程

新增m3e渠道

1
2
3
4
5
类型 自定义渠道
baseurl http://host.docker.internal:6008 #docker内部地址
名称 m3e
模型 m3e
秘钥 sk-key

新增ollama渠道

1
2
3
4
5
类型 自定义渠道
baseurl http://host.docker.internal:6008 #docker内部地址
名称 ollama
模型 qwen2.5:7b #ollama本地部署模型名称
秘钥 sk-key

渠道设置完成后,可以测试一下是否通

新增令牌

新增一个令牌,用于调用API

选择用不过期、注意模型范围不要选

复制令牌token

新增完成后复制令牌token

将token填写到docker-compose.yml中 fastgpt environment 下

CHAT_API_KEY=”your_token”
同时设置OPENAI_BASE_URL=http://host.docker.internal:3001/v1

添加m3e模型和qwen模型到config配置中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
llmModels

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


vectorModels

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

重启docker

1
2
docker-compose down
docker-compose up -d

7. FastGPT主界面进行配置知识库

按照相关操作,上传文档,注意大模型选择m3e和qwen2.5:7b


fastGPT+m3e+qwen2.5打造知识库
http://example.com/2024/09/23/fastgpt部署/
作者
vincener
发布于
2024年9月23日
许可协议