Dify 是一款专注于 快速构建和部署 AI 应用 的开源平台,旨在帮助开发者、企业甚至非技术用户轻松利用大型语言模型(如 GPT-4、Claude、Llama 等)开发智能应用,例如聊天机器人、知识库助手、自动化工作流等。
核心功能
-
低代码/无代码开发:提供可视化界面,通过拖拽式操作设计 AI 应用的工作流程,无需深入编程即可完成开发;支持自定义提示词(Prompt)优化、数据接入(如文本、文件、API)和模型调参。
-
多模型支持:兼容主流大语言模型(如 OpenAI、Anthropic、Hugging Face、本地部署模型等),用户可灵活切换或混合使用不同模型;支持模型微调(Fine-tuning)和 RAG(检索增强生成)技术,提升回答准确性和专业性。
-
数据处理与知识库:可上传文档、网页、CSV 等数据,自动构建向量知识库,使 AI 应用基于私有数据生成更精准的回答;支持数据清洗、分块、嵌入(Embedding)和检索优化,降低幻觉(Hallucination)风险。
-
团队协作与部署:提供多角色权限管理(开发者、管理员、普通用户),支持团队协作开发;一键部署为 API、Web 应用或集成到现有系统(如 Slack、钉钉等)。
-
监控与优化:实时跟踪应用使用情况(如请求量、响应时间、成本),分析用户交互日志以优化模型表现。
其实按照官方给出的源码配置步骤跟着就安装好了,但是为了防止有些小伙伴有些步骤跟不上或者有报错在这里再走一遍流程,仅作自己流程的分享。
安装步骤:
一、Docker部署
# 克隆化项目
git clone https://github.com/langgenius/dify.git
因为我这里是用的最新版v1.1.3,也可以在官网https://github.com/langgenius/dify的tags里下载压缩包到本地,然后用pycharm打开整个项目。
# 部署依赖服务
然后在启用业务服务之前,我们需要先部署 PostgreSQL / Redis / Weaviate(如果本地没有的话),我们可以使用以下命令启动它们:
cd docker
#在终端输入你的项目文件,进入docker这个文件夹,用我的举例 cd D:\PycharmProjects\dify-1.1.3\api
cp middleware.env.example middleware.env
docker compose -f docker-compose.middleware.yaml up -d
执行完了之后会在docker里面出现如下图:
二、部署后端服务
# 基础环境安装
因为官方说最好用python3.12,所以咱们创建一个虚拟环境
conda create -n dify python=3.12
conda activate dify
激活dify环境后,运行如下代码,
# 还是以我自己的项目地址为例,请替换成你们自己的地址/api
cd D:\PycharmProjects\dify-1.1.3\api
# 复制环境变量配置文件:
cp .env.example .env
# 生成随机密钥,执行完后会生成一串密钥
openssl rand -base64 42
# 替换.env文件中SECRET_KEY的值:
sed -i 's/SECRET_KEY=.*/SECRET_KEY=<your_value>/' .env
注意:windows可能在sed -i 's/SECRET_KEY=.*/SECRET_KEY=<your_value>/' .env这里执行时会报错,原因是什么无法识别sed指令还是啥,我忘记了,反正博主这里报错了。 可以直接在api文件下的.env里直接添加生成出来的密钥,如下图:
# 安装所需的依赖项、数据库迁移、启动 API 服务器
# 会弹出来一行绿色的代码
poetry env use 3.12
# Dify API 服务使用Poetry来管理依赖项
poetry install
# 执行数据库迁移到最新版本
poetry run flask db upgrade
# 启动 API 服务器
poetry run flask run --host 0.0.0.0 --port=5001 --debug
# 运行结果如下图
注意要在你的环境文件.env里面把对应数据库信息改成你自己的数据库信息,不然会出现类似报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 61: invalid continuation byte。特别是我画框这两个部分,我密码是对的但是我的库里面没有一个dify的数据库,我添加了一个以后就正常了
正常运行:
启动API服务器正常运行:
# 启动 Worker 服务
要使用队列中的异步任务(例如数据集文件导入和数据集文档更新),请按照以下步骤在windows系统下启动Worker服务,运行结果如下图:
poetry run celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail,ops_trace --loglevel INFO
3.前端服务部署
# 基础环境的安装:
要启动 Web 前端服务,您将需要Node.js v18.x (LTS)和NPM 版本 8.xx或Yarn。
-
安装 NodeJS + NPM
请访问Node.js — Download Node.js®并选择适合您操作系统的安装包,即 v18.x 或更高版本。建议下载稳定版本,默认包含 NPM。
因为在安装nodejs的时候会自动安装对应版本的npm,但是他这里只需要版本8.xx的,所以给他降一下版本
# 降级 npm 到 8.19.4(最后一个 8.x 版本)
npm install -g npm@8.19.4
# 验证 npm 版本
npm -v # 应输出 8.19.4
# 安装依赖包
# 前端代码在 web 文件夹,还是以我自己的为例
cd D:\PycharmProjects\dify-1.1.3\web
npm install
或者
pnpm install
# 如果担心安装很慢 可以切换源,先执行这一步再执行上一步
npm config set registry https://registry.npm.taobao.org
# 配置环境变量
在web目录下创建文件 .env.local,并复制 .env.example 中的内容,全部复制过去就行了
# 构建代码(如果是本地部署可以不用这一步,反正我没用直接pnpm dev就跑起了)
npm run build
# 启动 Web 服务
npm run start
# or
yarn start
# or
pnpm start
# npm、pnpm、yarn 是前端开发中最常用的工具
# 因为我npm启动有问题,所以我用的如下启动指令:
pnpm dev
启动了之后运行如下图:
点击链接:
因为我是创建过的 第二次就是让我登陆了