Docker Compose 快速部署FastGPT 手把手教你基于 FastGPT搭建个人知识库
文章目录
一、安装 Docker 和 docker-compose
二、创建目录并下载 docker-compose.yml
依次执行下面命令,创建 FastGPT 文件并拉取docker-compose.yml
和config.json
,执行完后目录下会有 2 个文件。
非 Linux 环境或无法访问外网环境,可手动创建一个目录,并下载下面2个链接的文件: docker-compose.yml,config.json
注意: docker-compose.yml
配置文件中 Mongo 为 5.x,部分服务器不支持,需手动更改其镜像版本为 4.4.24
三、修改 docker-compose.yml 的环境变量
修改docker-compose.yml
中的OPENAI_BASE_URL
(API 接口的地址,需要加/v1)和CHAT_API_KEY
(API 接口的凭证)。
使用 OneAPI 的话,OPENAI_BASE_URL=OneAPI访问地址/v1;CHAT_API_KEY=令牌
四、启动容器
在 docker-compose.yml 同级目录下执行
五、初始化 Mongo 副本集(4.6.8以前可忽略)
FastGPT 4.6.8 后使用了 MongoDB 的事务,需要运行在副本集上。副本集没法自动化初始化,需手动操作。
关于 host: “mongo:27017” 说明
- mongo:27017 代表指向同一个 docker 网络的 mongo 容器的 27017 服务。因此,如果使用该参数,外网是无法访问到数据库的。
- ip:27017 (ip替换成公网IP):代表通过你的公网IP进行访问。如果用该方法,同时需要修改 docker-compose 中 mongo 的连接参数,因为默认是用
mongo:27017
进行连接。
五、访问 FastGPT
目前可以通过 ip:3000
直接访问(注意防火墙)。登录用户名为 root
,密码为docker-compose.yml
环境变量里设置的 DEFAULT_ROOT_PSW
。
如果需要域名访问,请自行安装并配置 Nginx。
FAQ
Mongo 启动失败
docker-compose 示例优化 Mongo 副本集参数,不需要手动创建再挂载。如果无法启动,可以尝试更换下面的脚本:
- 终端中执行:
- 修改 docker-compose.yml:
- 重启服务
- 进入容器执行副本集合初始化(看上方)
官方文档:https://doc.fastgpt.in/docs/development/docker/
安装并使用 FastGPT。
FastGPT
官方简介
❝ FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!
❞
知识库核心流程图
一,安装 FastGPT
- 安装 Docker
2. 创建配置文件
- 创建 docker-compose.yml
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# 非 host 版本, 不使用本机代理 # (不懂 Docker 的,只需要关心 OPENAI_BASE_URL 和 CHAT_API_KEY 即可!) version: '3.3' services: pg: image: ankane/pgvector:v0.5.0 # git # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.5.0 # 阿里云 container_name: pg restart: always ports: # 生产环境建议不要暴露 - 5432:5432 networks: - fastgpt environment: # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果 - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_DB=postgres volumes: - ./pg/data:/var/lib/postgresql/data mongo: image: mongo:5.0.18 # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云 container_name: mongo restart: always ports: # 生产环境建议不要暴露 - 27017:27017 networks: - fastgpt environment: # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果 - MONGO_INITDB_ROOT_USERNAME=username - MONGO_INITDB_ROOT_PASSWORD=password volumes: - ./mongo/data:/data/db fastgpt: container_name: fastgpt image: ghcr.io/labring/fastgpt:latest # git # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云 ports: - 3000:3000 networks: - fastgpt depends_on: - mongo - pg restart: always environment: # root 密码,用户名为: root - DEFAULT_ROOT_PSW=1234 # 中转地址,如果是用官方号,不需要管。务必加 /v1 - OPENAI_BASE_URL=https://api.openai.com/v1 - CHAT_API_KEY=替换成你的OPENAI-KEY - DB_MAX_LINK=5 # database max link - TOKEN_KEY=any - ROOT_KEY=root_key - FILE_TOKEN_KEY=filetoken # mongo 配置,不需要改. 如果连不上,可能需要去掉 ?authSource=admin - MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt?authSource=admin # pg配置. 不需要改 - PG_URL=postgresql://username:password@pg:5432/postgres volumes: - ./config.json:/app/data/config.json networks: fastgpt: |
「注意:需要将 CHAT_API_KEY 的值换成自己 openai key。」
- 再创建 config.json
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
{ "SystemParams": { "pluginBaseUrl": "", "vectorMaxProcess": 15, "qaMaxProcess": 15, "pgHNSWEfSearch": 100 }, "ChatModels": [ { "model": "gpt-3.5-turbo-1106", "name": "GPT35-1106", "price": 0, "maxContext": 16000, "maxResponse": 4000, "quoteMaxToken": 2000, "maxTemperature": 1.2, "censor": false, "vision": false, "defaultSystemChatPrompt": "" }, { "model": "gpt-3.5-turbo-16k", "name": "GPT35-16k", "maxContext": 16000, "maxResponse": 16000, "price": 0, "quoteMaxToken": 8000, "maxTemperature": 1.2, "censor": false, "vision": false, "defaultSystemChatPrompt": "" }, { "model": "gpt-4", "name": "GPT4-8k", "maxContext": 8000, "maxResponse": 8000, "price": 0, "quoteMaxToken": 4000, "maxTemperature": 1.2, "censor": false, "vision": false, "defaultSystemChatPrompt": "" }, { "model": "gpt-4-vision-preview", "name": "GPT4-Vision", "maxContext": 128000, "maxResponse": 4000, "price": 0, "quoteMaxToken": 100000, "maxTemperature": 1.2, "censor": false, "vision": true, "defaultSystemChatPrompt": "" } ], "QAModels": [ { "model": "gpt-3.5-turbo-16k", "name": "GPT35-16k", "maxContext": 16000, "maxResponse": 16000, "price": 0 } ], "CQModels": [ { "model": "gpt-3.5-turbo", "name": "GPT35", "maxContext": 4000, "maxResponse": 4000, "price": 0, "functionCall": true, "functionPrompt": "" }, { "model": "gpt-4", "name": "GPT4-8k", "maxContext": 8000, "maxResponse": 8000, "price": 0, "functionCall": true, "functionPrompt": "" } ], "ExtractModels": [ { "model": "gpt-3.5-turbo-1106", "name": "GPT35-1106", "maxContext": 16000, "maxResponse": 4000, "price": 0, "functionCall": true, "functionPrompt": "" } ], "QGModels": [ { "model": "gpt-3.5-turbo-1106", "name": "GPT35-1106", "maxContext": 1600, "maxResponse": 4000, "price": 0 } ], "VectorModels": [ { "model": "text-embedding-ada-002", "name": "Embedding-2", "price": 0.2, "defaultToken": 700, "maxToken": 3000 } ], "ReRankModels": [], "AudioSpeechModels": [ { "model": "tts-1", "name": "OpenAI TTS1", "price": 0, "voices": [ { "label": "Alloy", "value": "alloy", "bufferId": "openai-Alloy" }, { "label": "Echo", "value": "echo", "bufferId": "openai-Echo" }, { "label": "Fable", "value": "fable", "bufferId": "openai-Fable" }, { "label": "Onyx", "value": "onyx", "bufferId": "openai-Onyx" }, { "label": "Nova", "value": "nova", "bufferId": "openai-Nova" }, { "label": "Shimmer", "value": "shimmer", "bufferId": "openai-Shimmer" } ] } ], "WhisperModel": { "model": "whisper-1", "name": "Whisper1", "price": 0 } } |
- 启动
在 docker-compose.yml 同级目录下执行
- 拉取镜像
1 2 |
docker-compose pull |
- 运行容器
1 2 |
docker-compose up -d |
二,使用 FastGPT
- 访问
浏览器通过http://localhost:3000/进行访问
登录用户名为 root,密码为 docker-compose.yml 环境变量里设置的 DEFAULT ROOT PSW,默认是 1234.
- 新建知识库
新建一个知识库,这里我是专门的存储酷壳网站上的文章,所以就命名为酷壳。
- 导入文档
通过文件导入已经下载好的文章
确认后就开始将当前数据转化为向量数据
这两篇文章字数可能破完了,完全导入好,所花费的时间可能会有半个小时乃至一个小时.....,由于文本限制问题,按照固定字数拆分若干个数据集
这是已经拆分好的,还有 5 个在排队,先测试一下。
- 使用知识库
新建一个应用
- 绑定刚刚的知识库
- 开始对话,效果展示如下:
这里有个小问题,
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » Docker Compose 快速部署FastGPT 手把手教你基于 FastGPT搭建个人知识库