deepseek和dify环境搭建
dify是一个用于构建AI应用的模型编排软件,开箱即用,可以通过拖拉拽的形式,快速组合出一个AI应用,支持接入各厂商的云上模型,也支持接入本地ollama引擎运行的模型。
准备工作
- 需要魔法:https://qq829.cn/book/books/cee63/page/9872e
- 镜像代理:https://qq829.cn/book/books/k8s/page/harbordockerdocker
- 需要升级docker-compose版本:https://github.com/docker/compose/releases
- 安装ollama:https://qq829.cn/book/books/bbcbf/page/deepseek
- 下载dify源代码:https://github.com/langgenius/dify
安装ollama
version: "3"
services:
ollama:
image: harbor.iovhm.com/hub/ollama/ollama:0.5.12
container_name: ollama
restart: always
privileged: true
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# capabilities: [gpu]
# count: all
networks:
- vpclub-bridge
下载dify源代码,进入到docker目录,修改北墙的docker镜像地址使用魔法地址
下载到源代码后,进入到docker目录,打开docker-compose.yaml,里面总共有26个服务,将镜像地址修改为私有仓库。
真正有用的10个服务,其他的是各种不同类型的向量数据库
将如下10个服务的镜像地址修改为镜像代理地址,使用docker-compose up -d 即可以将软件运行起来。其他服务是各种不同的向量数据库,需要根据自己的需要才启动,只有使用 docker-compose --profile=xxx up -d 才会启动特定的服务。
为了保持和官方版本升级时候的兼容性,不建议直接修改docker-compose.yaml,比喻把镜像下载回来了重命名一下。
- api
- worker
- web
- db
- redis
- sandbox , 一些模型可以调用代码,一个用于运行代码的沙箱容器
- plugin_daemon , 开发插件用的
- ssrf_proxy , 一个用来防止SSRF_PROXY攻击的代理软件
- nginx , 入口nginx
- weaviate,向量数据库
env配置文件
官方指导是将 .env.example 复制一个后改名为 .env , 但是需要配置的内容项太多了,从头看到尾很需要时间,在此我摘抄了一个极简的 .env
官方文档:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/environments
CONSOLE_API_URL=
CONSOLE_WEB_URL=
SERVICE_API_URL=
APP_API_URL=
APP_WEB_URL=
FILES_URL=
# 对外公布的服务端口
EXPOSE_NGINX_PORT=80
EXPOSE_NGINX_SSL_PORT=443
# 是否开启检查版本策略,若设置为 false,则不调用 https://updates.dify.ai 进行版本检查。
# 由于目前国内无法直接访问基于 CloudFlare Worker 的版本接口,
# 设置该变量为空,可以屏蔽该接口调用
CHECK_UPDATE_URL=
# 向量数据库配置
VECTOR_STORE=weaviate
# Weaviate 端点地址,如:http://weaviate:8080
WEAVIATE_ENDPOINT=http://weaviate:8080
连接 Weaviate 使用的 api-key 凭据
WEAVIATE_API_KEY=WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih