admin管理员组文章数量:1446760
大模型系统dify本地源码启动
1.下载源码
代码语言:javascript代码运行次数:0运行复制git clone .git
在启用业务服务之前,需要先部署 PostgreSQL / Redis / Weaviate(如果本地没有的话),可以通过以下命令启动: 依赖安装高版本的docker-compose
代码语言:javascript代码运行次数:0运行复制cd docker
cp middleware.env.example middleware.env
docker compose -f docker-compose.middleware.yaml up -d
需要对docker-compose.middleware.yaml的镜像地址进行替换。
代码语言:javascript代码运行次数:0运行复制/
2. 安装python
dify依赖的python版本是 Python 3.12。下面是rocky linux安装Python 3.12的步骤 查看当前系统安装的Python版本
代码语言:javascript代码运行次数:0运行复制yum list python3
搜索Python 3.12
代码语言:javascript代码运行次数:0运行复制yum search python3.12
安装Python 3.12
代码语言:javascript代码运行次数:0运行复制yum install -y python3.12.x86_64
3. 后端启动服务
3.1 进入 api 目录
代码语言:javascript代码运行次数:0运行复制cd api
3.2 复制环境变量配置文件
代码语言:javascript代码运行次数:0运行复制cp .env.example .env
3.3 生成随机密钥,并替换 .env 中 SECRET_KEY 的值
代码语言:javascript代码运行次数:0运行复制awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env
提示是否覆盖,直接覆盖即可。
3.4 安装依赖包
Dify API 服务使用 Poetry 来管理依赖。你可以执行 poetry shell 来激活环境。
代码语言:javascript代码运行次数:0运行复制poetry env use 3.12
poetry install
3.5 执行数据库迁移
将数据库结构迁移至最新版本。
代码语言:javascript代码运行次数:0运行复制poetry shell
flask db upgrade
3.6 启动 API 服务
代码语言:javascript代码运行次数:0运行复制poetry shell
flask run --host 0.0.0.0 --port=5001 --debug
正确输出:
代码语言:javascript代码运行次数:0运行复制2025-03-12 06:15:07,607 INFO [utils.py:162] NumExpr defaulting to 4 threads.
* Debug mode: on
2025-03-12 06:15:29,759 INFO [_internal.py:97] 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:5001
* Running on :5001
2025-03-12 06:15:29,759 INFO [_internal.py:97] Press CTRL+C to quit
2025-03-12 06:15:29,769 INFO [_internal.py:97] * Restarting with stat
2025-03-12 06:15:31,752 INFO [utils.py:162] NumExpr defaulting to 4 threads.
2025-03-12 06:15:34,703 WARNING [_internal.py:97] * Debugger is active!
2025-03-12 06:15:34,703 INFO [_internal.py:97] * Debugger PIN: 119-829-848
3.7 启动 Worker 服务
用于消费异步队列任务,如知识库文件导入、更新知识库文档等异步操作。 Linux / MacOS 启动:
代码语言:javascript代码运行次数:0运行复制poetry shell
celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail,ops_trace --loglevel INFO
如果使用 Windows 系统启动,请替换为该命令:
代码语言:javascript代码运行次数:0运行复制celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail,ops_trace --loglevel INFO
正确输出:
代码语言:javascript代码运行次数:0运行复制2025-03-12 06:15:07,607 INFO [utils.py:162] NumExpr defaulting to 4 threads.
/root/dify/dify-main/api/.venv/lib/python3.12/site-packages/celery/platforms.py:829: SecurityWarning: You're running the worker with superuser privileges: this is
absolutely not recommended!
Please specify a different user using the --uid option.
User information: uid=0 euid=0 gid=0 egid=0
warnings.warn(SecurityWarning(ROOT_DISCOURAGED.format(
-------------- celery@mk8s-master v5.4.0 (opalescent)
--- ***** -----
-- ******* ---- Linux-6.11.9-1.el9.elrepo.x86_64-x86_64-with-glibc2.34 2025-03-12 06:15:31
- *** --- * ---
- ** ---------- [config]
- ** ---------- .> app: app_factory:0x7fd60823c7d0
- ** ---------- .> 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
.> ops_trace exchange=ops_trace(direct) key=ops_trace
[tasks]
....省略....
2025-03-12 06:15:31,511 INFO [connection.py:22] Connected to redis://:**@localhost:6379/1
2025-03-12 06:15:31,524 INFO [mingle.py:40] mingle: searching for neighbors
2025-03-12 06:15:32,623 INFO [mingle.py:49] mingle: all alone
2025-03-12 06:15:32,676 INFO [worker.py:175] celery@mk8s-master ready.
2025-03-12 06:15:32,683 INFO [pidbox.py:111] pidbox: Connected to redis://:**@localhost:6379/1.
4. 前端页面部署
进入 ,选择对应操作系统的 v18.x 以上的安装包下载并安装,建议 stable 版本。
4.1 进入 web 目录
代码语言:javascript代码运行次数:0运行复制cd web
4.2 安装依赖包
代码语言:javascript代码运行次数:0运行复制npm install pnpm -g --registry=/
pnpm install --registry=/
4.3 配置环境变量
在当前目录下创建文件 .env.local,并复制.env.example中的内容。根据需求修改这些环境变量的值。
代码语言:javascript代码运行次数:0运行复制# For production release, change this to PRODUCTION
NEXT_PUBLIC_DEPLOY_ENV=DEVELOPMENT
# The deployment edition, SELF_HOSTED
NEXT_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:
NEXT_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: /api
NEXT_PUBLIC_PUBLIC_API_PREFIX=http://localhost:5001/api
# SENTRY
NEXT_PUBLIC_SENTRY_DSN=
NEXT_PUBLIC_SENTRY_ORG=
NEXT_PUBLIC_SENTRY_PROJECT=
4.4 构建代码
代码语言:javascript代码运行次数:0运行复制pnpm run build
这个需要等待的实际比较长
5. 启动web服务
代码语言:javascript代码运行次数:0运行复制pnpm start
正常启动后,终端会输出如下信息:
代码语言:javascript代码运行次数:0运行复制> dify-web@1.0.0 start /root/dify/dify-main/web
> cp -r .next/static .next/standalone/.next/static && cp -r public .next/standalone/public && cross-env PORT=$npm_config_port HOSTNAME=$npm_config_host node .next/standalone/server.js
▲ Next.js 14.2.24
- Local: http://localhost:3000
- Network: :3000
✓ Starting...
✓ Ready in 1278ms
5. 访问 Dify
最后,访问 http://127.0.0.1:3000 即可使用本地部署的 Dify。
6. 总结
在安装、启动过程过程中会遇到不少确实依赖库的情况,多用以下命令进行依赖安装即可。
代码语言:javascript代码运行次数:0运行复制pip install
代码语言:javascript代码运行次数:0运行复制参考:
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-15,如有侵权请联系 cloudcommunity@tencent 删除部署服务模型系统源码本文标签: 大模型系统dify本地源码启动
版权声明:本文标题:大模型系统dify本地源码启动 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1748241521a2831123.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论