
环境准备与前置条件
1、 系统要求
- Windows用户:需Windows 10 1903+或Windows 11,开启Hyper-V和WSL2功能
- Linux用户:推荐Ubuntu 22.04 LTS,内核版本5.15+
- 硬件配置:最低4核CPU/8GB内存/50GB存储空间,推荐使用SSD硬盘提升向量检索速度7
2、 核心组件安装
bash
复制
# Windows系统需执行(管理员权限):
dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /all /norestart
wsl --install -d Ubuntu
# Linux系统安装Docker:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable docker && systemctl start docker
# 验证安装(所有系统适用):
docker run hello-world | grep -q "Hello from Docker!" && echo "安装成功"
二、Dify本地部署全流程
1、源码获取与配置
bash
复制
git clone -b v0.15.3 https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env # 关键配置修改:
sed -i 's/CUSTOM_MODEL_ENABLED=false/CUSTOM_MODEL_ENABLED=true/g' .env
sed -i 's/WEAVIATE_HOST=weaviate/WEAVIATE_HOST=host.docker.internal/g' .env
2、容器启动与问题排查
bash
复制
# 首次启动(建议科学上网):
docker-compose up -d --build
# 查看实时日志:
docker-compose logs -f --tail=100 api
# 常见错误处理:
# 1. 端口冲突解决:
lsof -i :80 | awk 'NR>1 {print $2}' | xargs kill -9
# 2. 数据库连接失败:
docker exec -it docker-db-1 psql -U postgres -c "CREATE USER dify WITH PASSWORD 'dify';"
3、系统初始化与模型接入
3.1 访问http://localhost/install创建管理员账户
3.2 在模型供应商中添加Ollama本地服务:
yaml
模型配置示例,模型名称:deepseek-r1 基础URL:http://host.docker.internal:11434 上下文长度:4096
三、MCP Server深度集成
1、基础服务部署
bash
复制
# 创建MCP配置文件:
mkdir -p /etc/dify/mcp && cat > /etc/dify/mcp/config.yaml <<EOF
dify_base_url: "http://localhost:80"
dify_app_sks:
- "app-sk-xxxx"
EOF
# 启动MCP服务容器:
docker run -d --name dify-mcp \
-v /etc/dify/mcp:/config \
-p 8080:8080 \
mcp-server:latest \
--config /config/config.yaml
2、高级功能扩展
自定义工具开发(Python示例):
python
复制
from mcp import FastMCP
mcp = FastMCP("财务工具集")
@mcp.tool()
def tax_calculator(income: float, region: str) -> dict:
"""个税计算工具"""
# 对接本地财务系统API
tax_data = requests.get(f"http://erp.internal/{region}/tax").json()
return {
"应纳税额": income * tax_data['rate'],
"税率": tax_data['rate']
}
if __name__ == "__main__":
mcp.run(transport='http', port=8081)
3、服务验证与调试
bash
复制
# 测试MCP服务连通性:
curl -X POST http://localhost:8080/tools/list \
-H "Authorization: Bearer app-sk-xxxx" \
-d '{"service_type": "finance"}'
# 预期返回:
{"tools": ["tax_calculator", "report_generator"], "status": 200}
四、生产环境优化方案
1、安全加固措施
nginx
复制
# Nginx反向代理配置示例
location /mcp/ {
proxy_pass http://dify-mcp:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_ssl_session_reuse off;
proxy_ssl_verify on;
proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
}
2、性能调优参数
组件 | 优化参数 | 推荐值 |
PostgreSQL | shared_buffers | 25%内存 |
Redis | maxmemory-policy | allkeys-lru |
Weaviate | vector_cache_max_objects | 1000000 |
3、监控体系搭建
yaml
复制
# Prometheus监控配置示例
scrape_configs:
- job_name: 'dify'
static_configs:
- targets: ['dify-api:5001', 'dify-worker:5002']
- job_name: 'mcp'
static_configs:
- targets: ['dify-mcp:8080']
五、典型故障排除手册
1、SSE连接异常
现象:前端显示”工具连接超时”
- 检查防火墙规则:iptables -L | grep 8080
- 验证网络策略:docker network inspect docker_default
- 增加超时阈值:MCP_SSE_TIMEOUT=600
2、知识库召回失败
解决方案:
2.1 重建向量索引:
bash
复制
docker exec -it docker-weaviate-1 \
curl -X POST http://localhost:8080/v1/schema/reload
2.2 调整chunk策略:
python
复制
# 修改dify-api/config/rag.py
CHUNK_SIZE = 800 # 原值500
OVERLAP = 200 # 原值100
3、模型响应异常
诊断步骤:
bash
复制
# 查看Ollama日志:
docker logs ollama | grep -C 10 "ERROR"
# 测试模型基础功能:
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1",
"prompt": "1+1等于几?"
}'
转载作品,原作者:Ai滚球兽,文章来源:https://www.toutiao.com/article/7490175418834764323