Dify依赖管理poetry切换为uv
Dify
升级 1.3.0
后api的依赖管理从poetry
切换为了 uv
管理,但是官网暂时还没有更新。
升级 tag:Dify 1.3.0版本
在此记录一下 uv 依赖管理操作
使用方法
[重要事项]
在 v1.3.0 版本中,`poetry` 已被[ `uv` ](https://docs.astral.sh/uv/) 替代,作为 Dify API 后端服务的包管理器。
-
启动 docker-compose 栈
后端需要一些中间件,包括 PostgreSQL、Redis 和 Weaviate,可以使用
docker-compose
一起启动。cd ../docker cp middleware.env.example middleware.env # 如果不使用 weaviate,请将配置文件更改为其他向量数据库 docker compose -f docker-compose.middleware.yaml --profile weaviate -p dify up -d cd ../api
-
将
.env.example
复制为.env
cp .env.example .env
-
在
.env
文件中生成一个SECRET_KEY
。Linux 系统的 bash 命令
sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env
Mac 系统的 bash 命令
secret_key=$(openssl rand -base64 42) sed -i '' "/^SECRET_KEY=/c\\ SECRET_KEY=${secret_key}" .env
-
创建环境。
Dify API 服务使用 UV 来管理依赖项。
首先,如果还没有安装 uv 包管理器,需要先安装它。pip install uv # 或者在 macOS 上 brew install uv
-
安装依赖项
uv sync --dev
-
运行迁移
在首次启动之前,将数据库迁移到最新版本。
uv run flask db upgrade
-
启动后端
uv run flask run --host 0.0.0.0 --port=5001 --debug
-
启动 Dify web 服务。
-
通过访问
http://localhost:3000
来设置你的应用程序。 -
如果你需要处理和调试异步任务(例如数据集导入和文档索引),请启动工作进程服务。
uv run celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail,ops_trace,app_deletion
测试
-
为后端和测试环境安装依赖项
uv sync --dev
-
使用
pyproject.toml
文件中tool.pytest_env
部分模拟的系统环境变量在本地运行测试uv run -P api bash dev/pytest/pytest_all_tests.sh