支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


AI老板心中的迈巴赫:DeepSeek+Ollama+Xinference+RAGFlow+Dify部署教程,RAG落地5件套!

发布日期:2025-03-22 08:13:43 浏览次数: 1637 作者:ChallengeHub
推荐语

AI技术爱好者的福音,迈入高效率部署新时代!

核心内容:
1. DeepSeek-R1部署需求激增,易用性与灵活性显著提升
2. Xinference平台介绍,简化AI模型运行和集成
3. RAGFlow引擎,为文档理解提供精简RAG工作流程

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家


DeepSeek-R1火了之后,Ai老板部署需求大大提升,抛开效果不谈,五件套易用性和灵活性相比VLLM大大提升,门槛较低,但是效果不言而喻。 

以下部署全部以docker方式进行,因为太方便了,但同时坑很多,请做好心理准备

喜欢折腾的同学可以按照下面教程进行部署,我也是被逼无奈

请杯子里面装满水,原地坐牢,不出意外的话就马上出意外了,一个BUG一支烟

Xinference部署

Xorbits Inference (Xinference) 是一个开源平台,用于简化各种 AI 模型的运行和集成。借助 Xinference,您可以使用任何开源 LLM、嵌入模型和多模态模型在云端或本地环境中运行推理,并创建强大的 AI 应用。

项目地址:https://github.com/xorbitsai/inference#/ 文档地址:https://inference.readthedocs.io/zh-cn/latest/#/

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
  1. docker run- 启动一个新的Docker容器
  2. --name xinference- 将容器命名为"xinference"
  3. -d- 以分离(后台)模式运行容器
  4. -p 9997:9997- 将容器的9997端口映射到主机的9997端口
  5. -e XINFERENCE_HOME=/data- 设置环境变量,指定Xinference的主目录为容器内的/data
  6. -v $(pwd):/data- 将当前工作目录挂载到容器内的/data目录,实现数据持久化
  7. --gpus all- 允许容器使用主机上的所有GPU资源
  8. xprobe/xinference:latest- 使用最新版本的xprobe/xinference镜像
  9. 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)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。

项目地址:https://github.com/infiniflow/ragflow 文档地址:https://ragflow.io/docs/dev/

步骤1:克隆仓库

$ 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

# 使用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

依次执行:

docker compose down -v 

docker compose up

https://blog.csdn.net/qq_63490595/article/details/145803280#/

不出意外的话要出意外了! http://localhost:81/login#/

  • 81是修改了默认web端口

dify部署

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

项目地址:https://github.com/langgenius/dify 文档地址:https://docs.dify.ai/zh-hans#/

下载对应版本:

https://github.com/langgenius/dify/tags

访问安装页面:

http://localhost/install

启动报错pgdata: Operation not permitted

以下是关于解决 PostgreSQL 权限错误的步骤的中文翻译:

错误/var/lib/postgresql/data/pgdata: Operation not permitted通常是由于 PostgreSQL 尝试使用的目录存在权限问题。以下是解决步骤:

  1. 确保目录存在:
mkdir -p ./volumes/db/data
  1. 设置正确的权限:
sudo chown -R 999:999 ./volumes/db/data
  1. 验证 Docker Compose 配置:确保你的docker-compose.yaml文件正确映射了 PostgreSQL 的卷。示例:
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
  1. 清理现有数据:
sudo rm -rf ./volumes/db/data/*
  1. 运行 Docker Compose:
docker compose up -d

dify docker部署后,在install界面卡住,step请求报502的问题解

具体可参考:https://blog.csdn.net/qq_53597256/article/details/143745465#/

postgres报错

修正后

新的 _docker-compose.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:

简而言之,修复了以下问题:

volumes:
  - db_data:/var/lib/postgresql/data

在文件最后并添加了以下内容:

# 添加卷名称
volumes:
  db_data:

Ollama部署

Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。

Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种自然语言处理任务。

Ollama 的特点在于它不仅仅提供了现成的模型和工具集,还提供了方便的界面和 API,使得从文本生成、对话系统到语义分析等任务都能快速实现。

与其他 NLP 框架不同,Ollama 旨在简化用户的工作流程,使得机器学习不再是只有深度技术背景的开发者才能触及的领域。

Ollama 支持多种硬件加速选项,包括纯 CPU 推理和各类底层计算架构(如 Apple Silicon),能够更好地利用不同类型的硬件资源

Ollama 下载:https://ollama.com/download

Ollama 官方主页:https://ollama.com

Ollama 官方 GitHub 源代码仓库:https://github.com/ollama/ollama/

运行模型

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
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添加外部知识库

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询