01_Dify开源版使用源代码本地启动

01_Dify开源版使用源代码本地启动

一、前提条件

1.1 硬件要求

在安装 Dify 之前,请确保您的设备符合以下最低系统要求:

  • CPU >= 2 核
  • RAM >= 4 GiB

1.2 安装Docker和Docker Compose

在这里插入图片描述

👉 Ubuntu 安装Docker和Docker Compose图文教程

👉 Windows下DockerDesktop安装配置图文教程,含软件安装包

1.3 安装 Git

👉 Windows下Git安装配置及常用操作图文教程,含软件安装包

二、克隆 Dify 仓库

2.1 添加 Dify 的远程仓库

git remote add dify https://gitee.com/dify_ai/dify.git 
在这里插入图片描述

2.2 查看已关联的远程仓库

git remote -v 
在这里插入图片描述

2.3 拉取 Dify 远程仓库指定 tag 的代码

获取 Dify 远程仓库的所有信息(包括 tags),这会从远程仓库下载所有 tag 和对应的提交历史。

git fetch --tags 
在这里插入图片描述

查看可用的 tag 列表,退出输入q

git tag -l 
在这里插入图片描述

完整克隆 Dify 代码

git clone https://github.com/langgenius/dify.git 

切换到 Dify 代码目录

cd dify 
在这里插入图片描述

然后创建基于 tag 的分支

# git checkout tags/<tag_name> -b <new_branch_name> git checkout tags/1.4.3 -b dify-1.4.3 

三、创建虚拟环境

👉 Windows下Miniconda3安装配置图文教程,含软件安装包

3.1 创建虚拟环境

需要 Python 3.12

conda create --name dify python=3.12
在这里插入图片描述

3.2 查看虚拟环境

conda env list 
在这里插入图片描述

四、启动 API 服务

4.1 Dify 项目配置文件

导航到 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 
在这里插入图片描述

4.2 安装 Dify 项目依赖

使用 VSCode 打开 Dify 项目,选择 dify 虚拟环境

在这里插入图片描述

使用 uv 管理依赖,安装 uv

pip install uv 
在这里插入图片描述

通过运行以下命令使用 uv 安装所需依赖

uv sync
在这里插入图片描述

4.3 Dify 数据库迁移

在 PostgreSQL 数据库创建 dify 库

在这里插入图片描述

执行数据库迁移到最新版本

uv run flask db upgrade 
在这里插入图片描述

4.4 启动 API 服务

uv run flask run --host 0.0.0.0 --port=5001 --debug 
在这里插入图片描述

五、启动 Worker 服务

要从队列中消费异步任务,例如数据集文件导入和数据集文档更新,请按照以下步骤启动 Worker 服务

5.1 macOS 或 Linux 启动 Worker 服务

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

5.2 Windows 系统启动 Worker 服务

新建终端,安装 python-magic 的 Windows 兼容版本

# 进入 api 目录 cd api # 安装依赖  pip install python-magic-bin 
在这里插入图片描述

启动 Worker 服务请使用以下命令:

uv run celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail,ops_trace --loglevel INFO 

预期输出:

在这里插入图片描述

六、设置 Web 服务

启动用于前端页面的 web 服务。

6.1 环境准备

要启动 web 前端服务,需要 Node.js v22 (LTS) 和 PNPM v10。

👉 Windows下Node和pnpm的安装配置图文教程,含软件安装包

6.2 启动 Web 服务

新建终端,进入 web 目录

cd web 
在这里插入图片描述

安装依赖

pnpminstall
在这里插入图片描述

准备环境变量配置文件:在当前目录中创建一个名为 .env.local 的文件,并从 .env.example 复制内容。根据您的需求修改这些环境变量的值:

在这里插入图片描述

启动 web 服务

pnpm run dev 
在这里插入图片描述

6.3 访问 Dify

通过浏览器访问 http://127.0.0.1:3000 即可享受 Dify 所有激动人心的功能

在这里插入图片描述

控制台日志输出:

在这里插入图片描述

6.4 设置管理员账户

注册管理员账户

在这里插入图片描述

注册成功后登录

在这里插入图片描述

登录成功

在这里插入图片描述

七、解决后台报错问题

7.1 问题分析

在这里插入图片描述

在本地部署 Dify 时,其核心模块尝试与插件守护进程(Plugin Daemon Service)通信失败

7.2 解决方案

dify-plugin-daemon使用源码启动图文教程

7.3 效果展示

API 服务端控制台输出不再报获取插件的错误

在这里插入图片描述

Read more

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:智行无忧停车场管理系统(前后端源码 + 数据库 sql 脚本)

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:智行无忧停车场管理系统(前后端源码 + 数据库 sql 脚本)

🔥博客主页: 【小扳_-ZEEKLOG博客】 ❤感谢大家点赞👍收藏⭐评论✍   文章目录         1.0 项目介绍         1.1 项目功能         2.0 用户登录功能         3.0 首页界面         4.0 车辆信息管理功能         5.0 停车位管理功能         6.0 入场登记管理功能         7.0 预约管理功能         8.0 收费规则功能         9.0 出场登记管理功能         10.0 用户信息管理功能         11.0 SQL 数据库设计         1.0 项目介绍         开发工具:IDEA、VScode

By Ne0inhk
GoWeb必备理论

GoWeb必备理论

关于goweb,你不得不知道的知识 若是初学者可以借鉴GoWeb查阅本文。 HTTP状态码: 意义 每个状态码都是,http设计者对“网络通讯”中可能出现的情况的假设、预判。他就相当于现实世界的信号灯,就像大家一遇到404,就知道资源找不到了。一遇到500就知道服务器挂了。这种共识,也就是如今万维网的高效率的基础之一。 http状态码是日常开发,修改bug,的居家必备神器。咱们对常见状态码做了分类。 1、必须掌握的状态码 200 ok 最常见的状态码,代表请求完全正确,比如打开网页、调用api啥的。 301 moved permanently 资源永久迁移(例:访问时a.com会被从定项到b.com) 302 Found (部分资源,临时迁移) 400 Bad request(请求出错,参数缺少什么的..) 401 unauthorized(没有登入) 403 forbidden(

By Ne0inhk
Flutter 三方库 tflite_web 端云协同 AI 引擎鸿蒙化高配适配:搭建异构计算 WebGL 后台管线并强力驱动 TensorFlow Lite-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 tflite_web 端云协同 AI 引擎鸿蒙化高配适配:搭建异构计算 WebGL 后台管线并强力驱动 TensorFlow Lite-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 tflite_web 端云协同 AI 引擎鸿蒙化高配适配:搭建异构计算 WebGL 后台管线并强力驱动 TensorFlow Lite 轻量大模型推理内核运转 前言 在 OpenHarmony 构建混合架构(Hybrid App)的过程中,将 AI 能力直接下沉到客户端侧执行已成为主流趋势。虽然鸿蒙原生提供了强大的 AI 框架,但对于已有大量积累、且运行在 Flutter Web 容器中的应用而言,寻找一致性的端侧 AI 推理方案至关重要。tflite_web 库为基于 Flutter Web 的应用提供了调用 TensorFlow Lite 模型的能力。本文将调研其在鸿蒙 Web

By Ne0inhk
《Web 自动化测试入门:从概念到百度搜索实战全拆解》

《Web 自动化测试入门:从概念到百度搜索实战全拆解》

一、自动化的核心概念 1. 定义:通过自动方式替代人工操作完成任务,生活中常见案例(自动洒水机、自动洗手液、超市闸机)体现了 “减少人力消耗、提升效率 / 质量” 的特点。 2. 软件自动化测试的核心目的: * 用于回归测试:软件迭代新版本时,验证新增功能是否影响历史功能的正常运行。 3. 常见面试题解析: * 自动化测试不能完全取代人工测试:需人工编写脚本,且功能变更后需维护更新,可靠性未必优于人工。 * 自动化测试不能 “大幅度降低工作量”:仅能 “一定程度” 减少重复工作,需注意表述的严谨性。 二、自动化测试的分类 自动化是统称,包含多种类型,核心分类及说明如下: 分类说明接口自动化针对软件接口的测试,目的是验证接口的功能、性能、稳定性等。UI 自动化 针对软件界面的测试,包含: 1. 移动端自动化:通过模拟器在电脑上编写脚本,测试手机应用;稳定性较差(受设备、

By Ne0inhk