当前位置: 首页 > news >正文

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 一起启动。

    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

    cp .env.example .env 
    
  3. .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
    
  4. 创建环境。

    Dify API 服务使用 UV 来管理依赖项。
    首先,如果还没有安装 uv 包管理器,需要先安装它。

    pip install uv
    # 或者在 macOS 上
    brew install uv
    
  5. 安装依赖项

    uv sync --dev
    
  6. 运行迁移

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

    uv run flask db upgrade
    
  7. 启动后端

    uv run flask run --host 0.0.0.0 --port=5001 --debug
    
  8. 启动 Dify web 服务。

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

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

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

测试

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

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

    uv run -P api bash dev/pytest/pytest_all_tests.sh
    

相关文章:

  • C语言 函数补充
  • 【差分隐私】basic primitive的含义
  • 【C++指南】告别C字符串陷阱:如何实现封装string?
  • 更智能的银行体验:生成式 AI 与语义搜索的实际应用
  • 深度剖析操作系统核心(第二节):从X86/ARM/MIPS处理器架构到虚拟内存、分段分页、Linux内存管理,再揭秘进程线程限制与优化秘籍,助你成为OS高手!
  • 开源项目实战学习之YOLO11:ultralytics-cfg-datasets-Objects365、open-images-v7.yaml文件(六)
  • 清理HiNas(海纳斯) Docker日志并限制日志大小
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用CFStringRef类型字符串?
  • 【Linux学习笔记】进程的fork创建 exit终止 wait等待
  • Graph Database Self-Managed Neo4j 知识图谱存储实践2:通过官方新手例子入门(未完成)
  • WebGL2简单实例
  • VsCode如何使用默认程序打开word Excel pdf等文件
  • 珍爱网:从降本增效到绿色低碳,数字化新基建价值凸显
  • 浅析锁的应用与场景
  • Java大模型开发与应用 - 面试实战
  • SQL 函数进行左边自动补位fnPadLeft和FORMAT
  • 嵌入式开发:基础知识介绍
  • vue-lottie的使用和配置
  • Linux系统中命令设定临时IP
  • Linux:进程的等待
  • 铜钴巨头洛阳钼业一季度净利润同比大增九成,最新宣布首度进军黄金矿产
  • 释新闻|印度宣布“掐断”巴基斯坦水源,对两国意味着什么?
  • 全国首例!上市公司董监高未履行公开增持承诺,投资者起诉获赔
  • 马上评|起名“朱雀玄武敕令”?姓名权别滥用
  • 唐仁健违规收受礼品、礼金被点名!十起违反中央八项规定精神典型问题被通报
  • 印控克什米尔26名游客遭恐袭丧生后,印度对巴宣布多项反制措施