DeepSeek-R1火了之后,Ai老板部署需求大大提升,抛开效果不谈,五件套易用性和灵活性相比VLLM大大提升,门槛较低,但是效果不言而喻。 以下部署全部以docker方式进行,因为太方便了,但同时坑很多,请做好心理准备
喜欢折腾的同学可以按照下面教程进行部署,我也是被逼无奈
请杯子里面装满水,原地坐牢,不出意外的话就马上出意外了,一个BUG一支烟
Xinference部署
Xorbits Inference (Xinference) 是一个开源平台,用于简化各种 AI 模型的运行和集成。借助 Xinference,您可以使用任何开源 LLM、嵌入模型和多模态模型在云端或本地环境中运行推理,并创建强大的 AI 应用。
项目地址:github.com/xorbitsai/i... 文档地址:inference.readthedocs.io/zh-cn/lates...
bash
docker run \
--name xinference \
-d \
-p 9997:9997 \
-e XINFERENCE_HOME=/data \
-v $(pwd):/data \
--gpus all \
xprobe/xinference:latest \
xinference-local -H 0.0.0.0
docker run
- 启动一个新的Docker容器--name xinference
- 将容器命名为"xinference"-d
- 以分离(后台)模式运行容器-p 9997:9997
- 将容器的9997端口映射到主机的9997端口-e XINFERENCE_HOME=/data
- 设置环境变量,指定Xinference的主目录为容器内的/data-v $(pwd):/data
- 将当前工作目录挂载到容器内的/data目录,实现数据持久化--gpus all
- 允许容器使用主机上的所有GPU资源xprobe/xinference:latest
- 使用最新版本的xprobe/xinference镜像xinference-local -H 0.0.0.0
- 在容器内运行xinference-local命令,并设置主机地址为0.0.0.0(允许从任何IP地址访问)
部署成功之后可以直接访问:http://localhost:9997
部署一个reranker
选择从modelscope下载速度比较快
部署成功之后
RAGFlow部署
RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。
步骤1:克隆仓库
bash
$ git clone https://github.com/infiniflow/ragflow.git
$ cd ragflow/docker
$ git checkout -f v0.17.2
步骤2:使用预构建的Docker镜像并启动服务器
注意 : 下面的命令会下载v0.17.2-slim
版本的RAGFlow Docker镜像。有关不同RAGFlow版本的说明,请参考下表。如果要下载不同于v0.17.2-slim
的RAGFlow版本,请在使用docker compose
启动服务器之前,在docker/.env 中相应地更新RAGFLOW_IMAGE
变量。例如:设置RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.2
以获取完整版本v0.17.2
。
bash
# 使用CPU进行嵌入和DeepDoc任务:
$ docker compose -f docker-compose.yml up -d
# 使用GPU加速嵌入和DeepDoc任务:
# docker compose -f docker-compose-gpu.yml up -d
问题3: ragflow-mysql is unhealthy
dependency failed to start: container ragflow-mysql is unhealthy
依次执行:
bash
docker compose down -v
docker compose up
blog.csdn.net/qq_63490595...
不出意外的话要出意外了! http://localhost:81/login#/
- 81是修改了默认web端口
Dify部署
Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
下载对应版本:
访问安装页面:
启动报错pgdata: Operation not permitted
以下是关于解决 PostgreSQL 权限错误的步骤的中文翻译:
错误 /var/lib/postgresql/data/pgdata: Operation not permitted
通常是由于 PostgreSQL 尝试使用的目录存在权限问题。以下是解决步骤:
- 确保目录存在:
bash
mkdir -p ./volumes/db/data
- 设置正确的权限:
bash
sudo chown -R 999:999 ./volumes/db/data
- 验证 Docker Compose 配置 :确保你的
docker-compose.yaml
文件正确映射了 PostgreSQL 的卷。示例:
yaml
version: '3'
services:
db:
image: postgres:15-alpine
restart: always
environment:
PGUSER: postgres
POSTGRES_PASSWORD: difyai123456
POSTGRES_DB: dify
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- ./volumes/db/data:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 1s
timeout: 3s
retries: 30
- 清理现有数据:
bash
sudo rm -rf ./volumes/db/data/*
-
运行 Docker Compose:
docker compose up -d
dify docker部署后,在install界面卡住,step请求报502的问题解
具体可参考:blog.csdn.net/qq_53597256...
postgres报错
修正后
新的 _docker-compose.yaml
yaml
# PostgreSQL 数据库
db:
image: postgres:15-alpine
restart: always
environment:
PGUSER: xxxx
# 默认 postgres 用户的密码
POSTGRES_PASSWORD: xxxx
# 默认的 postgres 数据库名称
POSTGRES_DB: dify
# PostgreSQL 数据目录
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- db_data:/var/lib/postgresql/data
# 取消注释以将数据库(PostgreSQL)的端口暴露给主机
# ports:
# - "9999:9999"
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 1s
timeout: 3s
retries: 30
# 添加卷名称
volumes:
db_data:
简而言之,修复了以下问题:
yaml
volumes:
- db_data:/var/lib/postgresql/data
在文件最后并添加了以下内容:
yaml
# 添加卷名称
volumes:
db_data:
Ollama部署
Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。
Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种自然语言处理任务。
Ollama 的特点在于它不仅仅提供了现成的模型和工具集,还提供了方便的界面和 API,使得从文本生成、对话系统到语义分析等任务都能快速实现。
与其他 NLP 框架不同,Ollama 旨在简化用户的工作流程,使得机器学习不再是只有深度技术背景的开发者才能触及的领域。
Ollama 支持多种硬件加速选项,包括纯 CPU 推理和各类底层计算架构(如 Apple Silicon),能够更好地利用不同类型的硬件资源
Ollama 下载:ollama.com/download
Ollama 官方主页:ollama.com
Ollama 官方 GitHub 源代码仓库:github.com/ollama/olla...
运行模型
bash
ollama run deepseek-r1:14b
以下是Ollama在Windows系统中常用的环境变量表格,包含了描述和示例值:
环境变量 | 描述 | 默认值 | 示例值 |
---|---|---|---|
OLLAMA_HOST | 指定Ollama服务器的主机地址和端口 | 127.0.0.1:11434 | 0.0.0.0:11434 或 192.168.1.100:11434 |
OLLAMA_MODELS | 指定模型文件的存储位置 | %USERPROFILE%.ollama\models | D:\ollama\models |
OLLAMA_KEEP_ALIVE | 控制模型在内存中保持加载状态的时间(秒) | 5分钟(300秒) | 1800 (30分钟) |
OLLAMA_VERBOSE | 启用详细日志输出 | 0 | 1 |
OLLAMA_TIMEOUT | API请求超时时间(秒) | 30 | 60 |
设置这些变量后,记得重启Ollama服务或重新打开命令行窗口以使更改生效。
缝合怪如何集成组件
- RAGFlow集成Ollama
text
deepseek-r1:14b
基础 Url
http://host.docker.internal:11434
API-Key
最大token数
8192
- RAGFlow集成Xinference 重排序模型
我在Xinference 运行了一个排序模型 ip填写本机地址
- Dify集成Ollama模型
- Dify集成Xinference 排序模型
- Dify集成Xinference 向量模型
Dify集成RAGFlow
- 获取RAGFlow知识库id
- Dify添加外部知识库