ollama + fastgpt+m3e本地部署
- 开启WSL
- 更新wsl
- 安装ubuntu
- docker下载
- 修改docker镜像源
- 开启WSL integration
- 安装fastgpt
- 先创建一个文件夹来放置一些配置文件
- 用命令下载fastgpt配置文件
- 用命令下载docker的部署文件
- 启动容器
- M3E下载
- ollama下载
- oneapi配置
- 登录oneapi
- 配置ollama渠道
- 配置渠道m3e
- 创建令牌
- 修改config.json
- 重启容器
- FastGTP配置与使用
- 登录
- 新建知识库
- 训练模型
- 因为我这里使用的是本地文件去训练,所以要选择 文本数据集
- 这样就是训练好了,这里之前我踩过一个坑,就是一直在训练然后一条数据都没有,这个一般都是向量模型的问题,向量模型选错了,或者是向量模型没办法访问,所以上面配置渠道的时候一定要测试的原因就是这样的
- 创建应用
- 注意:以上只是最初级的玩法,要知识库好用的话,还得慢慢研究
开启WSL
因为这里使用的win部署,所以要安装wsl,如果是linux系统就没那么麻烦
控制面板->程序->程序和功能
更新wsl
wsl --set-default-version 2
wsl --update --web-download
安装ubuntu
wsl --install -d Ubuntu
docker下载
官网下载:docker官网
修改docker镜像源
因为docker下载的镜像源默认是国外的地址,所以下载比较慢,换成国内的镜像源下载会比较快一点
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
开启WSL integration
安装fastgpt
先创建一个文件夹来放置一些配置文件
mkdir fastgpt
cd fastgpt
用命令下载fastgpt配置文件
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
用命令下载docker的部署文件
# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
# milvus 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-milvus.yml
# zilliz 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-zilliz.yml
这里如果是测试的话就用简单模型就好了,其他的高级玩法后面再慢慢摸索
启动容器
docker-compose up -d
M3E下载
#查看网络
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
ollama下载
ollama下载这里就不做说明了,因为现在ollama下载比较简单,需要的话,我再出博客讲解
oneapi配置
模型的处理我们只要用的是oneapi来处理模型
登录oneapi
本机地址:http://localhost:3001/
oneapi登录账号:root 默认密码:123456或者1234
配置ollama渠道
base url那里的ip要换成本地ip
模型那里选择的模型要选择你本地ollama下载的模型
密钥可以随便填
添加完渠道,记得要点一下测试,测试通过了才能正常使用
配置渠道m3e
base url要像我这样填写才行,不然回出问题
模型要选m3e
密钥填:sk-aaabbbcccdddeeefffggghhhiiijjjkkk
这里提交之后也要点测试,看能不能通
创建令牌
这里记得选无限额度和永不过期
这里复制令牌放置docker-compose.yml文件中
# root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。
- DEFAULT_ROOT_PSW=1234
# AI模型的API地址哦。务必加 /v1。这里默认填写了OneApi的访问地址。
- OPENAI_BASE_URL=http://oneapi:3000/v1
# AI模型的API Key。(这里默认填写了OneAPI的快速默认key,测试通后,务必及时修改)
- CHAT_API_KEY=sk-apETi4q0ohZoqLynBfA5CcAc716b44CcB9E7F3B0716d8c5f
修改config.json
首先是加入ollama的本地模型
"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)
},
像我用的是qwen2.5,你们可以根据自己的模型进行选择
然后加入向量模型vectorModels
"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-compose down
docker-compose up -d
FastGTP配置与使用
登录
本机地址:http://localhost:3000
账号:root 密码:1234
新建知识库
这里选用通用知识库
索引模型也就是向量模型
文件处理模型就是用来做回答的模型
训练模型
因为我这里使用的是本地文件去训练,所以要选择 文本数据集
这里是分割数据的模型,用自动模式就好了
这样就是训练好了,这里之前我踩过一个坑,就是一直在训练然后一条数据都没有,这个一般都是向量模型的问题,向量模型选错了,或者是向量模型没办法访问,所以上面配置渠道的时候一定要测试的原因就是这样的
创建应用
这里测试的话就用简单应用就好了
这里选择模型,选择完之后就可以用了