前言
Dify MacOS 系统环境搭建
Dify是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中
MacOS系统确保系统已安装以下工具:
- Homebrew(包管理工具)
- Python 3.12+ 和 poetry
- Node.js v18.x (LTS) 和 NPM version 8.x.x 或 Yarn
- Docker Desktop(用于运行数据库和 Redis)
- Git
官方说明文档:README_CN.md
官方api:地址
1. 安装 Homebrew(若未安装)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. 安装 Python(若未安装)
确保使用 python3 和 pip3
2.1 安装pyenv(若未安装)
brew update
brew install pyenv
pyenv -v
2.2 安装python3.12 (若未安装)
pyenv install 3.12
pyenv versions
pyenv global 3.12
pyenv versions
# DifyAPI 服务使用poetry来管理依赖项
brew install pipx
# 配置环境变量
pipx ensurepath
source ~/.zshrc
source ~/.bashrc
pipx install poetry
3. 安装 Docker Desktop
4. 克隆 Dify 仓库
git clone https://github.com/langgenius/dify.git
5. 后端配置与启动
5.1 首先部署 PostgreSQL/Redis/Weaviate
cd docker
cp middleware.env.example middleware.env
docker compose -f docker-compose.middleware.yaml up -d
5.2 服务端api启动
cd api
cp .env.example .env
# 生成一个随机的密钥并在. env 文件中替换 SECRET _ KEY 的值
awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env
# poetry 初始化
poetry env use 3.12
# 安装依赖包 很重要!!
poetry install
# 安装 `shell` 插件
poetry self add poetry-plugin-shell
poetry env info
# 激活虚拟环境
poetry shell
# 执行数据库迁移到最新版本 很重要记得执行!!
flask db upgrade
# 启动 API 服务器
flask run --host 0.0.0.0 --port=5001 --debug
5.3 启动 Worker 服务
celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail,ops_trace
6. 前端配置与启动
6.1 环境配置
要启动 Web 前端服务,您需要 Node.js v18.x (LTS) 和 NPM 版本 8.x.x 或 Yarn。
请访问 nodejs.org/en/download 并选择适用于您各自作系统的 v18.x 或更高版本的安装包。建议下载稳定版本,默认包含 NPM。
6.2 安装依赖项
# 进入 Web 目录
cd web
# 安装依赖项。
npm install
6.3 配置环境变量
在当前目录中创建一个名为 .env.local 的文件,并从 .env.example 中复制内容。根据您的要求修改这些环境变量的值:
# 对于生产版本,将其更改为 PRODUCTION
NEXT_PUBLIC_DEPLOY_ENV=DEVELOPMENT
# 部署版本,SELF_HOSTED 或 CLOUD
NEXT_PUBLIC_EDITION=SELF_HOSTED
# 控制台应用程序的基本 URL,如果控制台域不同于 api 或 Web 应用程序,则指 WEB 服务的控制台基本 URL。
# 示例:http://cloud.dify.ai/console/api
NEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api
# Web APP 的 URL,如果 Web 应用程序域不同于控制台或 api ,则指 WEB 服务的 Web 应用程序基本 URL。
# 示例:http://udify.app/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
# SENTRY
NEXT_PUBLIC_SENTRY_DSN=
NEXT_PUBLIC_SENTRY_ORG=
NEXT_PUBLIC_SENTRY_PROJECT=
6.4 构建代码
npm run build
6.5 启动Web服务
npm run start
# or
yarn start
# or
pnpm start
7. 访问 Dify
最后,访问 http://127.0.0.1:3000 以使用本地部署的 Dify。