首页 / 技术博客 / Dify AI工作流平台部署与实战:从零搭建企业级LLM应用
部署教程 2026-06-07

Dify AI工作流平台部署与实战:从零搭建企业级LLM应用

手把手教你部署Dify平台,搭建企业级AI工作流,包括知识库管理、Agent编排、API集成和生产环境优化。

Dify核心功能模块 Chatbot对话 多轮对话 + 上下文 Agent智能体 工具调用 + 推理 Workflow工作流 可视化编排 知识库RAG 文档索引 + 检索 模型管理 多模型接入切换 API发布 RESTful + 嵌入 底层: PostgreSQL + Redis + Weaviate/Qdrant + Celery
Dify部署流程 🐳 Docker Compose ⚙️ 环境配置 🧠 模型接入 📚 知识库构建 🚀 应用发布

为什么选择Dify

Dify是2025-2026年增长最快的开源LLM应用开发平台,GitHub Star数突破12万。它将Prompt Engineering、RAG检索增强、Agent工具编排和可视化工作流整合为统一平台,让团队无需从零编写代码即可构建生产级AI应用。相比LangChain自建方案,Dify的可视化工作流构建器将开发周期从数周缩短到数小时;相比闭源的GPTs和Coze,Dify支持私有化部署和完全的数据自主权。

环境准备与Docker Compose部署

Dify官方推荐使用Docker Compose一键部署。以下是经过生产验证的配置:

# docker-compose.yml
version: '3.8'
services:
  api:
    image: langgenius/dify-api:0.15.3
    restart: always
    environment:
      - MODE=api
      - LOG_LEVEL=INFO
      - SECRET_KEY=${SECRET_KEY:-sk-your-random-secret-key-here}
      - CONSOLE_WEB_URL=https://dify.yourdomain.com
      - DB_USERNAME=postgres
      - DB_PASSWORD=${DB_PASSWORD:-dify2026}
      - DB_HOST=db
      - DB_PORT=5432
      - DB_DATABASE=dify
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - REDIS_PASSWORD=${REDIS_PASSWORD:-dify2026}
      - STORAGE_TYPE=s3
      - S3_ENDPOINT=https://s3.amazonaws.com
      - S3_BUCKET_NAME=dify-files
      - S3_ACCESS_KEY=${S3_ACCESS_KEY}
      - S3_SECRET_KEY=${S3_SECRET_KEY}
      - VECTOR_TYPE=qdrant
      - QDRANT_URL=http://qdrant:6333
    volumes:
      - ./volumes/app/storage:/app/api/storage
    depends_on:
      - db
      - redis
      - qdrant

  worker:
    image: langgenius/dify-api:0.15.3
    restart: always
    environment:
      - MODE=worker
      - LOG_LEVEL=INFO
      - SECRET_KEY=${SECRET_KEY:-sk-your-random-secret-key-here}
      - DB_USERNAME=postgres
      - DB_PASSWORD=${DB_PASSWORD:-dify2026}
      - DB_HOST=db
      - DB_PORT=5432
      - DB_DATABASE=dify
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - REDIS_PASSWORD=${REDIS_PASSWORD:-dify2026}
      - VECTOR_TYPE=qdrant
      - QDRANT_URL=http://qdrant:6333
    depends_on:
      - db
      - redis

  web:
    image: langgenius/dify-web:0.15.3
    restart: always
    environment:
      - CONSOLE_API_URL=https://dify-api.yourdomain.com
      - APP_API_URL=https://dify-api.yourdomain.com

  db:
    image: postgres:16-alpine
    restart: always
    environment:
      PGDATA: /var/lib/postgresql/data/pgdata
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: ${DB_PASSWORD:-dify2026}
      POSTGRES_DB: dify
    volumes:
      - ./volumes/db/data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    restart: always
    command: redis-server --requirepass ${REDIS_PASSWORD:-dify2026}
    volumes:
      - ./volumes/redis/data:/data

  qdrant:
    image: qdrant/qdrant:v1.12.1
    restart: always
    volumes:
      - ./volumes/qdrant/data:/qdrant/storage
    ports:
      - "6333:6333"

  nginx:
    image: nginx:alpine
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./certs:/etc/nginx/certs
    depends_on:
      - api
      - web

启动命令:

# 生成随机密钥
export SECRET_KEY=$(openssl rand -base64 42)
export DB_PASSWORD=$(openssl rand -base64 24)

# 启动全部服务
docker compose up -d

# 检查服务状态
docker compose ps

# 查看API日志
docker compose logs -f api --tail=100

部署完成后访问 https://dify.yourdomain.com,首次访问会引导创建管理员账号。

多模型供应商接入

Dify支持数十种模型供应商,通过「设置 → 模型供应商」页面配置:

# 通过API配置模型供应商(以OpenAI Compatible为例)
import requests

API_BASE = "https://dify-api.yourdomain.com/v1"

# 获取当前模型列表
headers = {"Authorization": "Bearer {admin_api_key}"}
models = requests.get(f"{API_BASE}/workspaces/current/models/model-types/llm",
                      headers=headers)
print(models.json())

推荐的多模型配置策略:

  • 主力模型:GPT-4o / Claude 3.5 Sonnet 用于复杂推理
  • 轻量模型:Qwen2.5-7B / DeepSeek-V3 用于简单对话和分类
  • Embedding模型:text-embedding-3-small / BGE-M3 用于知识库向量化
  • Reranker模型:BGE-Reranker-v2 用于检索结果重排序

知识库与RAG配置

Dify内置了完整的RAG管道。创建知识库时的关键配置:

  1. 分段策略:选择「自动分段」或「自定义分段」,推荐chunk size 500-800 tokens,overlap 50-100 tokens
  2. 索引方式:经济模式用关键词索引,高质量模式用高质量索引(需配置Embedding模型)
  3. 检索模式:混合检索(向量+关键词)效果最佳,配合Reranker可将召回精度提升15-20%

在应用中引用知识库时,可以调整检索参数:

{
  "knowledge_retrieval": {
    "query_variable": "user_input",
    "dataset_ids": ["ds-xxxx-xxxx"],
    "retrieval_mode": "hybrid_search",
    "top_k": 5,
    "score_threshold_enabled": true,
    "score_threshold": 0.5,
    "reranking_model": {
      "provider": "bge",
      "model": "bge-reranker-v2-m3"
    },
    "reranking_enable": true
  }
}

Agent工作流实战

Dify的工作流编排是最强大的功能之一。以「智能客服+工单系统」为例:

  1. 开始节点:接收用户输入 {{user_input}}
  2. 知识库检索:先在产品文档知识库中搜索
  3. 条件分支:判断检索结果置信度
  4. 高置信度 → 直接LLM生成回答
  5. 低置信度 → 调用Agent工具(查询CRM系统、搜索内部Wiki)
  6. LLM节点:整合所有信息生成回答
  7. 工具调用:如果用户需要创建工单,调用HTTP请求节点写入Jira
# 通过API调用已发布的Dify应用
import requests

def chat_with_dify(query: str, conversation_id: str = ""):
    response = requests.post(
        "https://dify-api.yourdomain.com/v1/chat-messages",
        headers={
            "Authorization": "Bearer app-your-app-api-key",
            "Content-Type": "application/json"
        },
        json={
            "inputs": {},
            "query": query,
            "response_mode": "streaming",
            "conversation_id": conversation_id,
            "user": "user-001"
        },
        stream=True
    )

    for line in response.iter_lines():
        if line:
            line = line.decode('utf-8')
            if line.startswith('data: '):
                import json
                event = json.loads(line[6:])
                if event.get('event') == 'agent_thought':
                    print(f"[思考] {event.get('thought', '')}")
                elif event.get('event') == 'message':
                    print(event.get('answer', ''), end='', flush=True)

# 使用示例
chat_with_dify("我们的退货政策是什么?超过30天还能退吗?")

生产环境优化

关键优化措施:

  • Nginx配置:启用gzip压缩,设置WebSocket支持SSE流式输出,配置SSL/TLS
  • 数据库:PostgreSQL启用 pgvector 扩展,配置连接池(pgbouncer)
  • 缓存:Redis设置合理的 maxmemory-policyallkeys-lru
  • 监控:接入Prometheus + Grafana监控API延迟、Token消耗和错误率
  • 备份:定时备份PostgreSQL数据和Qdrant向量数据
# 生产环境数据库备份脚本
#!/bin/bash
BACKUP_DIR="/data/backups/dify/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR

# PostgreSQL备份
docker exec dify-db-1 pg_dump -U postgres dify | gzip > $BACKUP_DIR/dify_db.sql.gz

# Qdrant向量数据备份
docker exec dify-qdrant-1 tar czf /tmp/qdrant_backup.tar.gz /qdrant/storage
docker cp dify-qdrant-1:/tmp/qdrant_backup.tar.gz $BACKUP_DIR/

# 保留最近30天备份
find /data/backups/dify/ -maxdepth 1 -mtime +30 -exec rm -rf {} \;

通过以上步骤,你已经拥有了一个生产就绪的企业级AI工作流平台。Dify的可视化编排能力极大降低了LLM应用的开发门槛,而完善的API和多模型支持则保证了平台的灵活性和可扩展性。

订阅更新

获取最新的AI本地化技术文章和教程