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

安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案

安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为ZEEKLOG博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。 本文主要介绍了安装openclaw时出现npm error code ENOENT npm error syscall spawn git报错的解决方案,希望能对使用openclaw的同学们有所帮助。 文章目录 * 1. 问题描述 * 2. 解决方案 1. 问题描述 今天在使用命令安装openclaw时,却出现了npm error code ENOENT和npm error syscall spawn git的错误提示,具体报错信息如下图所示: 在经过了亲身的实践后,终于找到了解决问题的方案,最终将逐步的操作过程总结如下。希望能对遇到同样bug的同学们有所帮助。

By Ne0inhk
CTFHub 信息泄露通关笔记7:Git泄露 Log

CTFHub 信息泄露通关笔记7:Git泄露 Log

目录 一、Git泄露 1、.git 目录的作用与组成 2、.git 泄露的成因 3、.git 泄露的危害 二、GitHack工具 1、工具简介 2、下载安装 (1)下载安装GitHack ① Git命令下载 ② Web页面下载 (2)基本使用方法 3、利用步骤 三、渗透实战 1、打开靶场 2、目录扫描发现.git文件 3、githack渗透 4、查看git log 5、获取flag (1)git log法 (2)git reset法 本文通过CTFHub的信息泄露-Git泄露-Git log关卡的渗透实战,详细讲解Git泄露的成因、危害及利用方法。

By Ne0inhk
【源力觉醒 创作者计划】文心大模型 4.5 开源了,和你一起解锁 AI 从封闭到开放的澎湃势能

【源力觉醒 创作者计划】文心大模型 4.5 开源了,和你一起解锁 AI 从封闭到开放的澎湃势能

「源力觉醒 创作者计划」文心大模型 4.5 开源了,和你一起解锁 AI 从封闭到开放的澎湃势能 文章目录 * 「源力觉醒 创作者计划」文心大模型 4.5 开源了,和你一起解锁 AI 从封闭到开放的澎湃势能 * 一、开篇引入 * 二、文心大模型 4.5 系列开源情况介绍 * 1. 开源的来龙去脉:从博弈到共建 * 2. 开源模型亮点:技术突破与场景适配 * 三、文心大模型 4.5 系列开源给开发者带来的改变 * 1. 降低开发的门槛和花费 * 2. 带来更多创新的机会 * 四、文心大模型 4.5 系列开源对行业生态的作用 * 1. 推动技术交流和进步 * 2. 促进产业协同发展

By Ne0inhk