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 后端服务的包管理器。
  1. 启动 docker-compose 栈

    后端需要一些中间件,包括 PostgreSQL、Redis 和 Weaviate,可以使用 docker-compose 一起启动。

    bash 复制代码
    cd ../docker
    cp middleware.env.example middleware.env
    # 如果不使用 weaviate,请将配置文件更改为其他向量数据库
    docker compose -f docker-compose.middleware.yaml --profile weaviate -p dify up -d
    cd ../api
  2. 将 .env.example 复制为 .env

    cli 复制代码
    cp .env.example .env 
  3. 在 .env 文件中生成一个 SECRET_KEY。

    Linux 系统的 bash 命令

    bash 复制代码
    sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env

    Mac 系统的 bash 命令

    bash 复制代码
    secret_key=$(openssl rand -base64 42)
    sed -i '' "/^SECRET_KEY=/c\\
    SECRET_KEY=${secret_key}" .env
  4. 创建环境。

    Dify API 服务使用 UV 来管理依赖项。

    首先,如果还没有安装 uv 包管理器,需要先安装它。

    bash 复制代码
    pip install uv
    # 或者在 macOS 上
    brew install uv
  5. 安装依赖项

    bash 复制代码
    uv sync --dev
  6. 运行迁移

    在首次启动之前,将数据库迁移到最新版本。

    bash 复制代码
    uv run flask db upgrade
  7. 启动后端

    bash 复制代码
    uv run flask run --host 0.0.0.0 --port=5001 --debug
  8. 启动 Dify web 服务。

  9. 通过访问 http://localhost:3000 来设置你的应用程序。

  10. 如果你需要处理和调试异步任务(例如数据集导入和文档索引),请启动工作进程服务。

bash 复制代码
uv run celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail,ops_trace,app_deletion

测试

  1. 为后端和测试环境安装依赖项

    bash 复制代码
    uv sync --dev
  2. 使用 pyproject.toml 文件中 tool.pytest_env 部分模拟的系统环境变量在本地运行测试

    bash 复制代码
    uv run -P api bash dev/pytest/pytest_all_tests.sh
相关推荐
我不会起名字3221 天前
Redis 从 0 到 1(十六):1 亿 UV 只占 12KB?计数去重三件套的 Go 实测
redis·go·uv·布隆过滤器·hyperloglog
2601_961146204 天前
实验室等离子表面处理设备安全整改记录:通风、UV、接地三项
笔记·安全·uv
毒爪的小新4 天前
最新 Dify 1.14.0+ 内网离线插件打包、部署完整踩坑方案(解决 uv.lock 依赖校验失败)
运维·ai·uv·dify
醇氧5 天前
CentOS7 使用 uv 安装 Python3.11.9 生产部署文档
uv·python3.11
工业涂料百问12 天前
水性、粉末、UV、溶剂型怎么选?一张对照表看清四条涂层路线的边界
uv
AI 编程助手GPT13 天前
GPT 脚本别只发一个文件:用 uv 把依赖和锁一起交付
人工智能·python·gpt·uv·依赖管理
Martina_032113 天前
AI生成3D模型UV岛太碎,重绘贴图全是接缝?用6步重整UV并保留原材质
图像处理·人工智能·3d·自然语言处理·贴图·uv·游戏策划
学Linux的语莫20 天前
uv的使用
python·uv
zhang-ge21 天前
python包和项目管理器uv在ubuntu下的安装与使用
开发语言·python·uv
Martina_032121 天前
AI生成3D模型怎么判断能不能继续编辑?用6步检查Mesh、材质、UV与导出文件
图像处理·人工智能·3d·ai·自然语言处理·uv·游戏策划