初步本地跑通RAG知识库(一):Docker+Dify+Ollama+Xinference

Updated on

环境

Win11 Processor:Intel(R) Core(TM) Ultra 5 235U 2.00 GHz集显 Installed RAM:32G 没有独显。

安装Docker

直接进入官网安装 Docker Desktop,Docker 和 Docker Compose 都内置在一起1

安装Dify

在你心仪的文件夹地址里输入cmd,直接进入cd到该地址的终端:

  1. 克隆 Dify 源码到本地:
git clone https://github.com/langgenius/dify.git
  1. 进入 Dify 的 Docker 目录:
cd dify/docker
  1. 复制环境变量配置文件:
copy .env.example .env
  1. 启动 Docker 容器:
docker compose up -d

如果拉取失败,可以进入docker的设置,在Docker Engine设置镜像:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://dockerproxy.net"
  ]
}

如果还是不行,可以重启Docker,这样就能清理掉卡死的网络连接,重新d一下2

进入Dify:http://localhost/

部署Ollama

直接在官网下载ollama,在聊天窗口选择心仪的模型,随便发个hi就开始自动下载了。3

或者也可以进入Ollama官网,检索到心意的模型名称,直接在终端里pull 模型名称就行。

如果你想更改模型位置,可以直接在GUI的设置里修改。

部署Xinference

  1. 在docker下载最新版Xinference
docker run -e XINFERENCE_HOST=0.0.0.0 -p 9997:9997 --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0

这个是无显卡版本:

docker run -e XINFERENCE_HOST=0.0.0.0 -p 9997:9997 xprobe/xinference:latest xinference-local -H 0.0.0.0
  1. 使用Modelscope的镜像加速重新启动
docker run -e XINFERENCE_HOST=0.0.0.0 -p 9997:9997 -e XINFERENCE_MODEL_SRC=modelscope xprobe/xinference:latest xinference-local -H 0.0.0.0
  1. 更改模型位置。 现在下载的模型在 Docker 容器“肚子”里。如果删除了容器,模型就没了。可以挂载到本地磁盘:
docker run -e XINFERENCE_HOST=0.0.0.0 -p 9997:9997 -v D:\xinference_models:/root/.xinference/cache -e XINFERENCE_MODEL_SRC=modelscope xprobe/xinference:latest xinference-local -H 0.0.0.0
  1. 进入http://localhost:9997/,直接找到你心仪的模型,点击launch。

在Dify中使用模型

在设置/模型供应商找到Ollama,安装好插件即可配置模型。4

  1. 确定模型名称。

Ollama:把NAME下的字段一字不差地填进去:

ollama list

Xinference: 进入http://localhost:9997/到Register Model即可找到模型ID,在View Datails可找到Model UID。

  1. 基础 URL。这个是Docker Desktop 提供的特殊域名,专门让容器访问你的宿主机。不是localhost,也不是127.0.0.1
http://host.docker.internal:11434

其他配置简单的很,Ollama和Xinference都差不多,有手就行。不知道行不行就先填进去再说,能保存就是配置成功。

常用命令

docker compose down
docker compose up -d

相关链接

Footnotes

  1. Docker:创建和运行单个容器(Container);Docker Compose:定义和管理多个容器组成的应用。Dify 是多容器应用,它把把一个系统拆分成多个专业组件,每个组件住一个容器,各司其职,通过内部网络通信。

  2. 换了那么多源都不行,还是Restart is all u need!

  3. 当然,这一切都默认装在C盘。我记得之前有其他方式可以从一开始吧把ollama和模型安装在其他目录,但教程忘记存在哪里了,好像类似.\"Docker.exe" install --installation-dir=E:\MySoftware\Docker。而哥的新电脑,只有C盘,无需讲究这些。

  4. 我用的是Qwen3-8B。搭建好官方的30分钟快速入门,体验屎中屎。跑了好几分钟,输出的跟空值差不多。