目录
前期准备
对Dify进行源码二次开发需要本地调试源码前,需完成以下准备工作:
核心服务组件
-
主服务:api、work、web
-
辅助服务:sandbox、plugin_daemon(采用镜像部署)
依赖中间件
-
缓存服务:Redis
-
数据库:PostgreSQL
-
代理服务器:Squid
-
向量数据库:Weaviate/Milvus
-
文件存储:本地存储/MinIO
插件服务和代码服务配置
由于仅需二次开发api源码,plugin_daemon和sandbox仍使用镜像部署,需开放以下端口供本地调试访问:
-
plugin_daemon:5002、5003
-
-
sandbox:8194
-
缓存服务器配置
本地调试必须开放Redis的6379端口
向量数据库配置
Dify默认使用Weaviate,但为支持海量数据处理和分布式水平扩展(十亿级向量),选用Milvus:
env
复制
VECTOR_STORE=milvus MILVUS_URI=http://[你的IP]:19530 MILVUS_TOKEN= MILVUS_USER=root MILVUS_PASSWORD=Milvus MILVUS_ENABLE_HYBRID_SEARCH=False
需开放端口:
-
Milvus:19530
-
-
etcd相关端口
-
-
MinIO相关端口
-
文件存储配置
Dify默认使用本地存储,不适合分布式部署,改用MinIO分布式存储:
env
复制
STORAGE_TYPE=s3 S3_ENDPOINT=http://[你的IP]:9001 S3_REGION=us-east-1 S3_BUCKET_NAME=difyai S3_ACCESS_KEY=[你的ACCESS_KEY] S3_SECRET_KEY=[你的SECRET_KEY]
Nginx反向代理配置
修改nginx/conf.d/default.conf.template:
nginx
复制
location /console/api { proxy_pass http://[你的IP]:5001; include proxy.conf; } location /api { proxy_pass http://[你的IP]:5001; include proxy.conf; } location /v1 { proxy_pass http://[你的IP]:5001; include proxy.conf; } location /files { proxy_pass http://[你的IP]:5001; include proxy.conf; }
部署验证
完成上述配置后,启动你本地的api代码,访问http://[你的IP]
在控制台能够看到访问日志,证明可以开启dify二次开发之旅了……