Comment on page
本地源码启动
操作系统 | 软件 | 说明 |
---|---|---|
macOS 10.14 or later | Docker Desktop | |
Linux platforms | Docker 19.03 or later
Docker Compose 1.25.1 or later | |
Windows with WSL 2 enabled | Docker Desktop | 我们建议将源代码和其他数据绑定到 Linux 容器中时,将其存储在 Linux 文件系统中,而不是 Windows 文件系统中。有关更多信息,请参阅使用 WSL 2 后端在 Windows 上安装 Docker Desktop。 |
Clone Dify 代码:
git clone https://github.com/langgenius/dify.git
在启用业务服务之前,我们需要先部署 PostgresSQL / Redis / Weaviate(如果本地没有的话),可以通过以下命令启动:
cd docker
docker compose -f docker-compose.middleware.yaml up -d
- API 接口服务
- Worker 异步队列消费服务
# 创建名为 dify 的 Python 3.10 环境
conda create --name dify python=3.10
# 切换至 dify Python 环境
conda activate dify
- 1.进入 api 目录cd api
- 2.复制环境变量配置文件cp .env.example .env
- 3.生成随机密钥,并替换
.env
中SECRET_KEY
的值openssl rand -base64 42sed -i 's/SECRET_KEY=.*/SECRET_KEY=<your_value>/' .env - 4.安装依赖包pip install -r requirements.txt
- 5.执行数据库迁移将数据库结构迁移至最新版本。flask db upgrade
- 6.启动 API 服务flask run --host 0.0.0.0 --port=5001 --debug正确输出:* Debug mode: onINFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.* Running on all addresses (0.0.0.0)* Running on http://127.0.0.1:5001INFO:werkzeug:Press CTRL+C to quitINFO:werkzeug: * Restarting with statWARNING:werkzeug: * Debugger is active!INFO:werkzeug: * Debugger PIN: 695-801-919
- 7.启动 Worker 服务用于消费一步队列任务,如数据集文件导入、更新数据集文档等异步操作。 Linux / MacOS 启动:celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail --loglevel INFO如果使用 Windows 系统启动,请替换为该命令:celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail --loglevel INFO正确输出:-------------- [email protected] v5.2.7 (dawn-chorus)--- ***** ------- ******* ---- macOS-10.16-x86_64-i386-64bit 2023-07-31 12:58:08- *** --- * ---- ** ---------- [config]- ** ---------- .> app: app:0x7fb568572a10- ** ---------- .> transport: redis://:**@localhost:6379/1- ** ---------- .> results: postgresql://postgres:**@localhost:5432/dify- *** --- * --- .> concurrency: 1 (gevent)-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)--- ***** ------------------- [queues].> dataset exchange=dataset(direct) key=dataset.> generation exchange=generation(direct) key=generation.> mail exchange=mail(direct) key=mail[tasks]. tasks.add_document_to_index_task.add_document_to_index_task. tasks.clean_dataset_task.clean_dataset_task. tasks.clean_document_task.clean_document_task. tasks.clean_notion_document_task.clean_notion_document_task. tasks.create_segment_to_index_task.create_segment_to_index_task. tasks.deal_dataset_vector_index_task.deal_dataset_vector_index_task. tasks.document_indexing_sync_task.document_indexing_sync_task. tasks.document_indexing_task.document_indexing_task. tasks.document_indexing_update_task.document_indexing_update_task. tasks.enable_segment_to_index_task.enable_segment_to_index_task. tasks.generate_conversation_summary_task.generate_conversation_summary_task. tasks.mail_invite_member_task.send_invite_member_mail_task. tasks.remove_document_from_index_task.remove_document_from_index_task. tasks.remove_segment_from_index_task.remove_segment_from_index_task. tasks.update_segment_index_task.update_segment_index_task. tasks.update_segment_keyword_index_task.update_segment_keyword_index_task[2023-07-31 12:58:08,831: INFO/MainProcess] Connected to redis://:**@localhost:6379/1[2023-07-31 12:58:08,840: INFO/MainProcess] mingle: searching for neighbors[2023-07-31 12:58:09,873: INFO/MainProcess] mingle: all alone[2023-07-31 12:58:09,886: INFO/MainProcess] pidbox: Connected to redis://:**@localhost:6379/1.[2023-07-31 12:58:09,890: INFO/MainProcess] [email protected] ready.
Web 前端客户端页面服务
- 安装 NodeJS + NPM
进入 https://nodejs.org/en/download,选择对应操作系统的 v18.x 以上的安装包下载并安装,建议 stable 版本,已自带 NPM。
- 1.进入 web 目录cd web
- 2.安装依赖包npm install
- 3.配置环境变量。在当前目录下创建文件
.env.local
,并复制.env.example
中的内容。根据需求修改这些环境变量的值:# For production release, change this to PRODUCTIONNEXT_PUBLIC_DEPLOY_ENV=DEVELOPMENT# The deployment edition, SELF_HOSTED or CLOUDNEXT_PUBLIC_EDITION=SELF_HOSTED# The base URL of console application, refers to the Console base URL of WEB service if console domain is# different from api or web app domain.# example: http://cloud.dify.ai/console/apiNEXT_PUBLIC_API_PREFIX=http://localhost:5001/console/api# The URL for Web APP, refers to the Web App base URL of WEB service if web app domain is different from# console or api domain.# example: http://udify.app/apiNEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api# SENTRYNEXT_PUBLIC_SENTRY_DSN=NEXT_PUBLIC_SENTRY_ORG=NEXT_PUBLIC_SENTRY_PROJECT= - 4.构建代码npm run build
- 5.启动 web 服务npm run start# oryarn start# orpnpm start
正常启动后,终端会输出如下信息:
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
warn - You have enabled experimental feature (appDir) in next.config.js.
warn - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
info - Thank you for testing `appDir` please leave your feedback at https://nextjs.link/app-feedback
最后,访问 http://127.0.0.1:3000 即可使用本地部署的 Dify。
最近更新 2mo ago