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

大模型向量数据库机器学习

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容器
  1. --name xinference
  • 将容器命名为"xinference"
  1. -d
  • 以分离(后台)模式运行容器
  1. -p 9997:9997
  • 将容器的9997端口映射到主机的9997端口
  1. -e XINFERENCE\_HOME=/data
  • 设置环境变量,指定Xinference的主目录为容器内的/data
  1. -v $(pwd):/data
  • 将当前工作目录挂载到容器内的/data目录,实现数据持久化
  1. --gpus all
  • 允许容器使用主机上的所有GPU资源
  1. xprobe/xinference:latest
  • 使用最新版本的xprobe/xinference镜像
  1. xinference-local -H 0.0.0.0
  • 在容器内运行xinference-local命令,并设置主机地址为0.0.0.0(允许从任何IP地址访问)

picture.image

部署成功之后可以直接访问:http://localhost:9997

部署一个reranker

选择从modelscope下载速度比较快

picture.image部署成功之后

picture.image

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.2picture.image


            
            
                

              
 # 使用CPU进行嵌入和DeepDoc任务:
 
              
   

 
              $ docker compose -f docker-compose.yml up -d
              
   

 
              
   

 
              
 # 使用GPU加速嵌入和DeepDoc任务:
 
              
   

 
              
 # docker compose -f docker-compose-gpu.yml up -d
 
              
   

 
            
          

picture.image

问题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端口picture.image

picture.image

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

picture.image

访问安装页面:

http://localhost/install

picture.image

启动报错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报错

picture.image

修正后

新的 _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
            
          

picture.image以下是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

picture.image


            
            
                

              deepseek-r1:14b 基础 Url http://host.docker.internal:11434 API-Key 最大token数 8192
            
          
  • RAGFlow集成Xinference 重排序模型

我在Xinference 运行了一个排序模型picture.image

  • Dify集成Ollama模型

picture.image

  • Dify集成Xinference 排序模型

picture.image

  • Dify集成Xinference 向量模型picture.image

Dify集成RAGFlow

picture.image

  • 获取RAGFlow知识库idpicture.image

  • Dify添加外部知识库picture.image

picture.image

添加微信,备注” LLM “进入大模型技术交流群

picture.image

picture.image

如果你觉得这篇文章对你有帮助,别忘了点个赞、送个喜欢

/ 作者:致Great

/ 作者:欢迎转载,需要标注公众号名片即可

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论