知识库问答部署
WSL 部署 Ollama
Ollama 官网:ollama.com/
Linux 版本安装(很慢):
bash
curl -fsSL https://ollama.com/install.sh | sh
ollama 常用命令:
从注册表拉取模型:ollama pull 模型名
下载:ollama run 模型名
删除:ollama rm 模型名
查看已下载模型:ollama list
查看正在运行的模型:ollama ps
Dify+Ollama部署
Docker 部署 Dify
参考文档:docs.dify.ai/getting-sta...
Docker 安装参考:www.yuque.com/aidabao/stu... 《环境配置》WSL 安装 Docker 部分
一、克隆 Dify 仓库
bash
git clone https://github.com/langgenius/dify.git
二、部署 dify
- 切换至 dify 下的 docker 目录
bash
cd dify/docker
- 复制配置文件
bash
cp .env.example .env
- 下载启动容器
bash
docker compose up -d
- 检查容器是否启动
bash
docker compose ps
- 访问 dify:通过
ip:端口号
进行访问 - 更新 Dify
bash
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
Dify 连接 Ollama
- 添加模型,名称需要与 ollama 中一致(可以使用 ollama list 查看) 若 Dify 部署在服务器,则 URL 为:http://ip:11434 若 Dify 部署在本地 Docker 中:host.docker.internal:11434


- 创建应用时选择需要的模型即可
MaxKB 部署
Docker 部署 MaxKB
- docker 命令一键启动
bash
# Linux 操作系统
docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb
# 如果设置了docker代理
docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages 1panel/maxkb
# Windows 操作系统
docker run -d --name=maxkb --restart=always -p 8080:8080 -v C:/maxkb:/var/lib/postgresql/data -v C:/python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb
- 在浏览器输入
http://ip/localhost:8080/
即可访问 MaxKB 默认用户:admin 默认密码:MaxKB@123..

MaxKB 知识库及应用创建
一、添加模型
这里以 llama3.2 为例,自定义模型名称,选择权限,类型选择大语言模型,选择基础模型(会自动进行下载),API 域名:
若 Ollama 部署在本地,MaxKB 部署在 Docker:http://host.docker.internal:11434
若 Ollama 部署在 WSL,MaxKB 部署在 Docker:http://wsl 的 ip:11434
API Key 随便填一个即可

二、知识库创建
- 输入知识库名称及描述,选择模型。 通用型用户可以自己上传本地文件,web 站点会自动爬取站点内容。

- 选择要上传的文件/文件夹。
- 设置分段规则,建议使用智能分段,对文档内容非常熟悉可以用高级分段。

- 开始导入,系统会使用 CPU 进行索引,等待成功即可。
三、应用创建
- 设置应用名称、描述,选择类型。

- 进行相关的设置,模型选择自己本地的模型并关联创建的知识库,设置提示词和历史聊天记录等,右边可以即时预览测试。
- 保存后返回可以通过演示来使用。

- 可以在设置概览中是否公开以及嵌入第三方等设置。

AnythingLLM 部署
WSL2-Ubuntu 部署 Ollama + Open-WebUI + AngthingLLM
版本更新
bash
sudo apt update -ysudo apt install vim wget curl git -y
WSL2 开启Systemd
bash
sudo vim /etc/wsl.conf
修改/添加以下字段:
bash
systemd=true
Windows PowerShell下运行 (关闭后重启生效)
bash
wsl --shutdown
Docker 安装
失败则参考:www.yuque.com/aidabao/stu... 《环境配置》WSL 安装 Docker 部分
bash
curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.shsudo usermod -aG docker <username>sudo systemctl list-unit-files| grep dockersudo service docker start
docker 换源
阿里云 Docker 镜像加速服务页面:cr.console.aliyun.com/cn-hangzhou...
bash
sudo vim /etc/docker/daemon.json
添加以下内容(清华源)
json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart dockersudo docker info
Ollama 安装
命令行安装(很慢)
bash
curl -fsSL https://ollama.com/install.sh | sh
增加启动环境变量 (放开外部访问)
bash
sudo vi /etc/systemd/system/ollama.service
添加以下内容
bash
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
ExecStart=/usr/local/bin/ollama serve
启动服务
bash
sudo systemctl start ollama
curl http://localhost:11434
显示 Ollama is running
bash
ip addr | grep inet |grep eth
显示 inet ip/port brd ip scope global eth0
bash
curl http://ip:11434
Docker方式安装
bash
docker pull ollama/ollama
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker exec -it ollama ollama run gemma:2bdocker exec -it ollama /bin/bash
下载模型
bash
ollama pull gemma:2b
ollama list
调用模型(命令行窗口)
bash
# 运行模型/如果未下载会先下载
ollama run gemma:2b
调用模型(Curl接口运行)
bash
curl http://localhost:11434/api/chat -d '{"model": "gemma:2b","messages": [{ "role": "user", "content": "who are you" }]}'
调用模型(Python代码调用,建议在conda下运行)
bash
vim test.pyimport requestsimport jsondef send_message_to_ollama(message, port=11434):url = f"http://localhost:{port}/api/chat"payload = {"model": "gemma:2b","messages": [{"role": "user", "content": message}]}response = requests.post(url, json=payload)if response.status_code == 200:response_content = ""for line in response.iter_lines():if line:response_content += json.loads(line)["message"]["content"]return response_contentelse:return f"Error: {response.status_code} - {response.text}"if __name__ == "__main__":user_input = "who are you"response = send_message_to_ollama(user_input)print("Ollama's response:")print(response)
在 conda环境中运行Python脚本
bash
conda activate tfpip install requestspython test.pyconda deactivate
Open WebUI 部署
Docker方式安装
bash
docker pull ghcr.io/open-webui/open-webui:main
# 使用代理
docker pull ghcr.nju.edu.cn/open-webui/open-webui:main
# 查看已安装镜像
docker images
Ollama 在同一台电脑
bash
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Ollama 在不同一台电脑
bash
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
更新 open-webui
bash
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
部署后启动(时间有点长)
打开网站 http://127.0.0.1:3000
先注册,再登录。登录后,选择模式(正常情况,会显示出刚才ollama已经下载好的模型)
docker 没法访问时
bash
sudo docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui88 --restart always ghcr.io/open-webui/open-webui:main
打开网站 http://127.0.0.1:8080
AngthingLLM 部署
Docker方式安装
bash
docker pull mintplexlabs/anythingllm:master
docker run -d -p 3001:3001 --restart always mintplexlabs/anythingllm:master
- 打开网站
http://localhost:3001/
- 完成安装后,先会要求配置大模型LLM Preference 选择 OllamaOllama Base URL 输入
http://ip:11434
正常连通里,可以在Chat Model Selection 选择Ollama已经下载的模型 - 选择嵌入模式和向量数据库Embedding Preference 选择 AnythingLLM Embedder
- 向量数据库连接选择Vector Database Connection 选择 LanceDB
- 配置完成后,给工作空间起个名字,即可进入AnythingLLM中。
FastGPT 部署
一、前置工作
准备 Docker、Docker Compose 环境
最新版本的 Docker 已集成 Docker Compose,使用docker compose
命令
bash
# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安装 docker-compose
curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker -v
docker-compose -v
二、Docker 部署 FastGPT
下载 docker-compose.yml
bash
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
# 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
修改环境变量
找到 yml 文件中,fastgpt 容器的环境变量进行下面操作:
- PgVector版本
bash
FE_DOMAIN=你的前端你访问地址,例如 http://192.168.0.1:3000;https://cloud.fastgpt.cn
- Milvus 版本
bash
FE_DOMAIN=你的前端你访问地址,例如 http://192.168.0.1:3000;https://cloud.fastgpt.cn
-
Zilliz 版本
- 打开 Zilliz Cloud, 创建实例并获取相关秘钥。
- 修改
MILVUS_ADDRESS
和MILVUS_TOKEN
链接参数,分别对应zilliz
的Public Endpoint
和Api key
,记得把自己ip加入白名单。 - 修改FE_DOMAIN=你的前端你访问地址,例如 http://192.168.0.1:3000;cloud.fastgpt.cn
启动容器
在 docker-compose.yml 同级目录下执行。请确保docker-compose
版本最好在2.17以上,否则可能无法执行自动化命令。
bash
# 启动容器
docker-compose up -d
# 等待10s,OneAPI第一次总是要重启几次才能连上Mysql
sleep 10
# 重启一次oneapi(由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次解决,等待作者修复)
docker restart oneapi
打开 OneAPI 添加模型
可以通过ip:3001
访问OneAPI,默认账号为root
密码为123456
。在OneApi中添加合适的AI模型渠道。
- 登录 One API

- 创建渠道
在 One API 中添加对应渠道,直接点击 【添加基础模型】,不要遗漏了向量模型(Embedding)

- 创建令牌

- 修改账户余额
One API 默认 root 用户只有 200刀,可以自行修改编辑。

- 修改 FastGPT 的环境变量
有了 One API 令牌后,FastGPT 可以通过修改 baseurl
和 key
去请求到 One API,再由 One API 去请求不同的模型。修改下面两个环境变量:
bash
# 务必写上 v1。如果在同一个网络内,可改成内网地址。
OPENAI_BASE_URL=https://xxxx.cloud.sealos.io/v1
# 下面的 key 是由 One API 提供的令牌
CHAT_API_KEY=sk-xxxxxx
接入其他模型(文心一言为例)
- OneAPI 新增模型渠道 类型选择百度文心千帆。

- 修改 FastGPT 环境变量
可以在 /projects/app/src/data/config.json
里找到配置文件(本地开发需要复制成 config.local.json),按下面内容修改配置文件:
配置模型关键点在于model
需要与 OneAPI 渠道中的模型一致。
json
{
"llmModels": [ // 语言模型配置
{
"model": "ERNIE-Bot", // 这里的模型需要对应 One API 的模型
"name": "文心一言", // 对外展示的名称
"avatar": "/imgs/model/openai.svg", // 模型的logo
"maxContext": 16000, // 最大上下文
"maxResponse": 4000, // 最大回复
"quoteMaxToken": 13000, // 最大引用内容
"maxTemperature": 1.2, // 最大温度
"charsPointsPrice": 0,
"censor": false,
"vision": false, // 是否支持图片输入
"datasetProcess": true, // 是否设置为知识库处理模型
"usedInClassify": true, // 是否用于问题分类
"usedInExtractFields": true, // 是否用于字段提取
"usedInToolCall": true, // 是否用于工具调用
"usedInQueryExtension": true, // 是否用于问题优化
"toolChoice": true, // 是否支持工具选择
"functionCall": false, // 是否支持函数调用
"customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型
"customExtractPrompt": "", // 自定义内容提取提示词
"defaultSystemChatPrompt": "", // 对话默认携带的系统提示词
"defaultConfig":{} // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p)
}
],
"vectorModels": [ // 向量模型配置
{
"model": "text-embedding-ada-002",
"name": "Embedding-2",
"avatar": "/imgs/model/openai.svg",
"charsPointsPrice": 0,
"defaultToken": 700,
"maxToken": 3000,
"weight": 100
},
]
}
- 重启 FastGPT
bash
docker-compose down
docker-compose up -d
# 新版Docker使用以下命令:
docker compose down
docker compose up -d
访问 FastGPT
目前可以通过 ip:3000
直接访问(注意防火墙)。登录用户名为 root
,密码为docker-compose.yml
环境变量里设置的 DEFAULT_ROOT_PSW
。
首次运行,会自动初始化 root 用户,密码为 1234
(与环境变量中的DEFAULT_ROOT_PSW
一致),日志里会提示一次MongoServerError: Unable to read from a snapshot due to pending collection catalog changes;
可忽略。
RAGFlow 部署
Docker 部署RAGFlow
克隆仓库
bash
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
git checkout -f v0.17.0
使用预构建的 Docker 镜像并启动服务器
bash
docker compose -f docker-compose.yml up -d
检查服务器状态
bash
docker logs -f ragflow-server
以下输出表示启动成功:
plaintext
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
* Running on all addresses (0.0.0.0)
在浏览器中,输入服务器的 IP 地址并登录
输入 http://IP_OF_YOUR_MACHINE
(sans 端口号),若使用默认配置时可以省略默认的 HTTP 服务端口 80
。
LobeChat 部署
Docker 部署 LobeChat
bash
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
# 如果需要lobe-chat自启动
$ docker run -d -p 3210:3210 \
--restart=always \
-e OPENAI_API_KEY=sk-xxxx \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
如果有 OpenAI API Key ,使用 API Key 替换上述命令中的 sk-xxxx
使用代理地址
bash
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
-e ACCESS_CODE=lobe66 \
--name lobe-chat \
lobehub/lobe-chat
docker run -d -p 3210:3210 -e OPENAI_API_KEY=sk-xxxx -e OPENAI_PROXY_URL=https://api-proxy.com/v1 -e ACCESS_CODE=lobe66 --name lobe-chat lobehub/lobe-chat
LobeChat 集成 Ollama
本地启动 Ollama
已经在本地 11434
端口启动了 Ollama 服务。运行以下 Docker 命令行,在本地启动 LobeChat
bash
docker run -d -p 3210:3210 -e OLLAMA_PROXY_URL=http://host.docker.internal:11434 lobehub/lobe-chat
非本地启动 Ollama
由于 Ollama 默认参数在启动时设置了仅本地访问,所以跨域访问以及端口监听需要进行额外的环境变量设置 OLLAMA_ORIGINS
和 OLLAMA_HOST
。
设置环境变量(Windows)
在 Windows 上,Ollama 继承了您的用户和系统环境变量。
- 首先通过 Windows 任务栏点击 Ollama 退出程序。
- 从控制面板编辑系统环境变量。
- 为您的用户账户编辑或新建 Ollama 的环境变量,比如
OLLAMA_HOST
、OLLAMA_ORIGINS
等。 - 点击
OK/应用
保存。 - 重新运行
Ollama
。
设置环境变量(Linux)
如果 Ollama 作为 systemd 服务运行,应该使用systemctl
设置环境变量:
- 通过调用
sudo systemctl edit ollama.service
编辑 systemd 服务。
bash
sudo systemctl edit ollama.service
- 对于每个环境变量,在
[Service]
部分下添加Environment
:
bash
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
- 保存并退出。
- 重载
systemd
并重启 Ollama:
bash
sudo systemctl daemon-reload
sudo systemctl restart ollama
完整ollama.service配置如下:
bash
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
Environment="..."
[Install]
WantedBy=default.target
使用 LobeChat
在设置中配置好相应的模型即可进行对话,Ollama 服务地址:http://ip:11434 或者http://host.docker.internal:11434
,模型列表有几十种供选择,如果本地未下载,对话时会提示进行下载

停止、删除所有的docker容器和镜像
列出所有的容器 ID
bash
docker ps -aq
停止所有的容器
bash
docker stop $(docker ps -aq)
删除所有的容器
bash
docker rm $(docker ps -aq)
删除所有的镜像
bash
docker rmi $(docker images -q)
附:强制删除镜像
bash
docker rmi -f <容器ID>
停止并删除使用该镜像的容器
bash
docker stop <容器ID>
docker rm <容器ID>