Bladeren bron

feat(M1): Docker部署配置 - docker-compose、环境变量模板、.gitignore、部署文档

xieke 1 week geleden
commit
7de45e61bd
6 gewijzigde bestanden met toevoegingen van 637 en 0 verwijderingen
  1. 44
    0
      .gitignore
  2. 32
    0
      docker/.env.docker
  3. 84
    0
      docker/.env.example
  4. 147
    0
      docker/README.md
  5. 271
    0
      docker/docker-compose.yml
  6. 59
    0
      tasks.md

+ 44
- 0
.gitignore Bestand weergeven

@@ -0,0 +1,44 @@
1
+# 环境变量(含密码和密钥)
2
+docker/.env
3
+.env
4
+.env.local
5
+.env.*.local
6
+
7
+# Docker 数据卷
8
+docker/data/
9
+docker/volumes/
10
+
11
+# SSL 证书
12
+docker/nginx/ssl/*.pem
13
+docker/nginx/ssl/*.key
14
+docker/nginx/ssl/*.crt
15
+
16
+# IDE
17
+.vscode/
18
+.idea/
19
+*.swp
20
+*.swo
21
+
22
+# OS
23
+.DS_Store
24
+Thumbs.db
25
+
26
+# Python
27
+__pycache__/
28
+*.py[cod]
29
+*.egg-info/
30
+.venv/
31
+venv/
32
+
33
+# Node
34
+node_modules/
35
+dist/
36
+.next/
37
+
38
+# Logs
39
+*.log
40
+logs/
41
+
42
+# 临时文件
43
+*.tmp
44
+*.bak

+ 32
- 0
docker/.env.docker Bestand weergeven

@@ -0,0 +1,32 @@
1
+# ============================================================
2
+# Dify Docker 内部服务通信环境变量
3
+# 此文件由 docker-compose.yml 的 env_file 引用
4
+# 请勿提交到 Git,已在 .gitignore 中排除
5
+# ============================================================
6
+
7
+# 内部服务间通信不需要修改以下值
8
+# DB/Redis 等地址使用 docker-compose 中的服务名
9
+
10
+EDITION=SELF_HOSTED
11
+CONF_GIT_SYNC_ENABLED=false
12
+
13
+# 知识库检索配置
14
+INDEXING_MAX_SEGMENTATION_TOKENS=500
15
+INDEXING_MAX_SEGMENTATION_CHUNKS_PER_FILE=10
16
+INDEXING_SEGMENTATION_SEPARATOR=['\n','\n\n',' ','。','!','?',';',';']
17
+
18
+# 批量处理配置
19
+BATCH_PROCESSING_ENABLED=true
20
+
21
+# 多模态配置
22
+MULTIMODAL_ENABLED=true
23
+
24
+# 文件上传限制
25
+UPLOAD_FILE_SIZE_LIMIT=50
26
+UPLOAD_IMAGE_FILE_SIZE_LIMIT=20
27
+
28
+# Celery 队列配置
29
+CELERY_QUEUES=dataset,generation,mail
30
+
31
+# 文档解析配置
32
+DOCUMENT_PARSERS=pdf,txt,md,csv,xlsx,pptx,docx

+ 84
- 0
docker/.env.example Bestand weergeven

@@ -0,0 +1,84 @@
1
+# ============================================================
2
+# Dify 环境变量配置模板
3
+# 西安云美电子科技有限公司 - 企业知识库
4
+#
5
+# 使用方法:cp .env.example .env && 编辑 .env 填写实际值
6
+# ============================================================
7
+
8
+# ====================== 基础配置 ======================
9
+
10
+# 运行模式:api(默认)/ worker
11
+DIFY_MODE=api
12
+
13
+# 日志级别:DEBUG / INFO / WARNING / ERROR
14
+LOG_LEVEL=INFO
15
+
16
+# 安全密钥(必须修改!用于加密 Token 等敏感数据)
17
+# 生成方法:openssl rand -hex 32
18
+SECRET_KEY=请替换为随机生成的密钥
19
+
20
+# 应用端口(API 服务内部端口)
21
+HTTP_APP_PORT=5001
22
+
23
+# ====================== 数据库配置 ======================
24
+
25
+POSTGRES_USER=postgres
26
+POSTGRES_PASSWORD=请替换为强密码
27
+POSTGRES_DB=dify
28
+
29
+# ====================== Redis 配置 ======================
30
+
31
+REDIS_PASSWORD=请替换为强密码
32
+REDIS_DB=0
33
+
34
+# ====================== 存储配置 ======================
35
+
36
+# 存储类型:local / s3
37
+STORAGE_TYPE=local
38
+STORAGE_LOCAL_PATH=/app/api/storage
39
+
40
+# ====================== 向量数据库配置 ======================
41
+
42
+# 向量数据库类型:qdrant / weaviate / elasticsearch
43
+VECTOR_STORE=qdrant
44
+
45
+# Qdrant 配置
46
+QDRANT_PORT=6333
47
+QDRANT_API_KEY=
48
+
49
+# ====================== DeepSeek 模型配置 ======================
50
+
51
+# DeepSeek API 地址(国内可直连)
52
+DEEPSEEK_API_BASE=https://api.deepseek.com
53
+DEEPSEEK_API_KEY=请替换为你的DeepSeek API Key
54
+
55
+# ====================== Web 前端配置 ======================
56
+
57
+# 如果使用 Nginx 反向代理且前后端同域名,留空即可
58
+NEXT_PUBLIC_API_BASE_URL=
59
+NEXT_PUBLIC_DEPLOY_ENV=PRODUCTION
60
+
61
+# ====================== Nginx 配置 ======================
62
+
63
+NGINX_PORT=80
64
+NGINX_SSL_PORT=443
65
+
66
+# ====================== SSRF 代理配置 ======================
67
+
68
+SSRF_PROXY_PORT=3128
69
+
70
+# ====================== Sandbox 配置(可选)======================
71
+
72
+SANDBOX_API_KEY=
73
+SANDBOX_URL=
74
+SANDBOX_WORKER_TIMEOUT=15
75
+SANDBOX_ENABLE_NETWORK=true
76
+
77
+# ====================== S3 存储配置(可选)======================
78
+
79
+S3_USE_CUSTOM_DOMAIN=true
80
+S3_ENDPOINT=
81
+S3_BUCKET_NAME=
82
+S3_ACCESS_KEY=
83
+S3_SECRET_KEY=
84
+S3_REGION=

+ 147
- 0
docker/README.md Bestand weergeven

@@ -0,0 +1,147 @@
1
+# Dify 部署指南
2
+
3
+> 西安云美电子科技有限公司 - 企业知识库
4
+
5
+## 前置要求
6
+
7
+| 项目 | 最低要求 | 推荐配置 |
8
+|------|---------|---------|
9
+| CPU | 4 核 | 8 核+ |
10
+| 内存 | 8 GB | 16 GB+ |
11
+| 磁盘 | 50 GB SSD | 100 GB+ SSD |
12
+| Docker | ≥ 20.10 | 最新稳定版 |
13
+| Docker Compose | ≥ 2.0 | 最新稳定版 |
14
+| 操作系统 | Ubuntu 20.04+ | Ubuntu 22.04 LTS |
15
+
16
+## 快速部署
17
+
18
+### 1. 克隆项目
19
+
20
+```bash
21
+git clone http://git.xayunmei.com/yunmei/dify-app.git
22
+cd dify-app
23
+git checkout feature/dev
24
+```
25
+
26
+### 2. 配置环境变量
27
+
28
+```bash
29
+cd docker
30
+cp .env.example .env
31
+
32
+# 必须修改以下配置:
33
+# - SECRET_KEY(安全密钥,用 openssl rand -hex 32 生成)
34
+# - POSTGRES_PASSWORD(数据库密码)
35
+# - REDIS_PASSWORD(Redis 密码)
36
+# - DEEPSEEK_API_KEY(DeepSeek API 密钥)
37
+```
38
+
39
+### 3. 配置 Nginx(可选)
40
+
41
+如果使用自定义域名,编辑 `nginx/nginx.conf`:
42
+
43
+```bash
44
+mkdir -p nginx
45
+# 将 SSL 证书放入 nginx/ssl/ 目录
46
+```
47
+
48
+### 4. 启动服务
49
+
50
+```bash
51
+# 拉取镜像
52
+docker compose pull
53
+
54
+# 后台启动所有服务
55
+docker compose up -d
56
+
57
+# 查看服务状态
58
+docker compose ps
59
+
60
+# 查看日志
61
+docker compose logs -f
62
+```
63
+
64
+### 5. 初始化
65
+
66
+启动完成后,打开浏览器访问:
67
+
68
+```
69
+http://<服务器IP>:80
70
+```
71
+
72
+首次访问会要求设置管理员账号和密码。
73
+
74
+## 服务端口说明
75
+
76
+| 服务 | 容器端口 | 映射端口 | 说明 |
77
+|------|---------|---------|------|
78
+| Nginx | 80/443 | 80/443 | 主入口 |
79
+| Dify API | 5001 | 内部 | API 服务 |
80
+| Dify Web | 3000 | 内部 | 前端 |
81
+| PostgreSQL | 5432 | 内部 | 数据库 |
82
+| Redis | 6379 | 内部 | 缓存 |
83
+| Qdrant | 6333 | 6333 | 向量数据库 |
84
+
85
+## 常用命令
86
+
87
+```bash
88
+# 停止所有服务
89
+docker compose down
90
+
91
+# 停止并清除数据卷(危险!)
92
+docker compose down -v
93
+
94
+# 重启单个服务
95
+docker compose restart api
96
+docker compose restart worker
97
+
98
+# 查看单个服务日志
99
+docker compose logs -f api
100
+docker compose logs -f worker
101
+
102
+# 更新镜像
103
+docker compose pull
104
+docker compose up -d
105
+```
106
+
107
+## 备份与恢复
108
+
109
+### 数据库备份
110
+
111
+```bash
112
+docker compose exec db pg_dump -U postgres dify > backup_$(date +%Y%m%d).sql
113
+```
114
+
115
+### 数据库恢复
116
+
117
+```bash
118
+docker compose exec -T db psql -U postgres dify < backup_20260606.sql
119
+```
120
+
121
+### 数据卷备份
122
+
123
+```bash
124
+docker run --rm -v dify-app_api_storage:/data -v $(pwd):/backup alpine tar czf /backup/api_storage_$(date +%Y%m%d).tar.gz -C /data .
125
+```
126
+
127
+## 故障排查
128
+
129
+| 问题 | 排查方法 |
130
+|------|---------|
131
+| 服务启动失败 | `docker compose logs <service>` |
132
+| 数据库连接失败 | 检查 `.env` 中密码是否一致 |
133
+| 知识库索引失败 | 检查 Worker 日志,确认 Celery 队列正常 |
134
+| 模型调用失败 | 检查 DeepSeek API Key 是否有效 |
135
+| 端口冲突 | 修改 `.env` 中对应端口号 |
136
+
137
+## 安全注意事项
138
+
139
+1. **SECRET_KEY 必须使用随机值**,不要使用默认值
140
+2. **生产环境关闭 Qdrant 外部端口**(注释掉 ports 映射)
141
+3. **定期更换数据库密码**
142
+4. **配置 Nginx SSL 证书**,不要在公网裸跑 HTTP
143
+5. **.env 文件不要提交到 Git**
144
+
145
+---
146
+
147
+_最后更新: 2026-06-06_

+ 271
- 0
docker/docker-compose.yml Bestand weergeven

@@ -0,0 +1,271 @@
1
+# Docker Compose for Dify Self-Hosted
2
+# 西安云美电子科技有限公司 - 企业知识库
3
+# 版本:基于 Dify v1.x 社区版
4
+#
5
+# 使用方法:
6
+#   cp .env.example .env
7
+#   编辑 .env 填写实际值
8
+#   docker compose up -d
9
+
10
+services:
11
+
12
+  ### ======================== 基础设施 ========================
13
+
14
+  # PostgreSQL 数据库
15
+  db:
16
+    image: postgres:15-alpine
17
+    restart: always
18
+    environment:
19
+      POSTGRES_USER: ${POSTGRES_USER:-postgres}
20
+      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
21
+      POSTGRES_DB: ${POSTGRES_DB:-dify}
22
+    volumes:
23
+      - db_data:/var/lib/postgresql/data
24
+    healthcheck:
25
+      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"]
26
+      interval: 10s
27
+      timeout: 5s
28
+      retries: 5
29
+    networks:
30
+      - dify-network
31
+
32
+  # Redis 缓存
33
+  redis:
34
+    image: redis:7-alpine
35
+    restart: always
36
+    command: redis-server --requirepass ${REDIS_PASSWORD} --appendonly yes
37
+    volumes:
38
+      - redis_data:/data
39
+    healthcheck:
40
+      test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
41
+      interval: 10s
42
+      timeout: 5s
43
+      retries: 5
44
+    networks:
45
+      - dify-network
46
+
47
+  ### ======================== Dify 核心服务 ========================
48
+
49
+  # Dify API 后端
50
+  api:
51
+    image: langgenius/dify-api:latest
52
+    restart: always
53
+    env_file:
54
+      - .env.docker
55
+    environment:
56
+      # 基础配置
57
+      - MODE=${DIFY_MODE:-api}
58
+      - LOG_LEVEL=${LOG_LEVEL:-INFO}
59
+      - LOG_FILE=${LOG_FILE:-}
60
+      - SECRET_KEY=${SECRET_KEY}
61
+      # 数据库配置
62
+      - DB_USERNAME=${POSTGRES_USER:-postgres}
63
+      - DB_PASSWORD=${POSTGRES_PASSWORD}
64
+      - DB_HOST=db
65
+      - DB_PORT=5432
66
+      - DB_DATABASE=${POSTGRES_DB:-dify}
67
+      # Redis 配置
68
+      - REDIS_HOST=redis
69
+      - REDIS_PORT=6379
70
+      - REDIS_PASSWORD=${REDIS_PASSWORD}
71
+      - REDIS_DB=${REDIS_DB:-0}
72
+      # 存储配置
73
+      - STORAGE_TYPE=${STORAGE_TYPE:-local}
74
+      - STORAGE_LOCAL_PATH=/app/api/storage
75
+      # 向量数据库
76
+      - VECTOR_STORE=${VECTOR_STORE:-qdrant}
77
+      - QDRANT_URL=http://qdrant:6333
78
+      - QDRANT_API_KEY=${QDRANT_API_KEY:-}
79
+      # S3 配置(可选)
80
+      - S3_USE_CUSTOM_DOMAIN=${S3_USE_CUSTOM_DOMAIN:-true}
81
+      - S3_ENDPOINT=${S3_ENDPOINT:-}
82
+      - S3_BUCKET_NAME=${S3_BUCKET_NAME:-}
83
+      - S3_ACCESS_KEY=${S3_ACCESS_KEY:-}
84
+      - S3_SECRET_KEY=${S3_SECRET_KEY:-}
85
+      - S3_REGION=${S3_REGION:-}
86
+      # SandBox 配置
87
+      - CODE_EXECUTION_API_KEY=${SANDBOX_API_KEY:-}
88
+      - CODE_EXECUTION_API_URL=${SANDBOX_URL:-}
89
+      # 模型配置(DeepSeek)
90
+      - DEEPSEEK_API_BASE=${DEEPSEEK_API_BASE:-https://api.deepseek.com}
91
+      - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
92
+      # 其他
93
+      - HTTP_APP_PORT=5001
94
+      - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis:6379/1
95
+      - CELERY_RESULT_BACKEND=redis://:${REDIS_PASSWORD}@redis:6379/1
96
+    volumes:
97
+      - api_storage:/app/api/storage
98
+      - app_data:/app/data
99
+    depends_on:
100
+      db:
101
+        condition: service_healthy
102
+      redis:
103
+        condition: service_healthy
104
+    networks:
105
+      - dify-network
106
+
107
+  # Dify Web 前端
108
+  web:
109
+    image: langgenius/dify-web:latest
110
+    restart: always
111
+    environment:
112
+      - NEXT_PUBLIC_API_BASE_URL=${NEXT_PUBLIC_API_BASE_URL:-}
113
+      - NEXT_PUBLIC_DEPLOY_ENV=${NEXT_PUBLIC_DEPLOY_ENV:-PRODUCTION}
114
+    volumes:
115
+      - web_config:/app/config
116
+    depends_on:
117
+      - api
118
+    networks:
119
+      - dify-network
120
+
121
+  # Dify Worker(异步任务处理)
122
+  worker:
123
+    image: langgenius/dify-api:latest
124
+    restart: always
125
+    env_file:
126
+      - .env.docker
127
+    environment:
128
+      # 基础配置
129
+      - MODE=${DIFY_MODE:-worker}
130
+      - LOG_LEVEL=${LOG_LEVEL:-INFO}
131
+      - SECRET_KEY=${SECRET_KEY}
132
+      # 数据库配置
133
+      - DB_USERNAME=${POSTGRES_USER:-postgres}
134
+      - DB_PASSWORD=${POSTGRES_PASSWORD}
135
+      - DB_HOST=db
136
+      - DB_PORT=5432
137
+      - DB_DATABASE=${POSTGRES_DB:-dify}
138
+      # Redis 配置
139
+      - REDIS_HOST=redis
140
+      - REDIS_PORT=6379
141
+      - REDIS_PASSWORD=${REDIS_PASSWORD}
142
+      - REDIS_DB=${REDIS_DB:-0}
143
+      # 存储配置
144
+      - STORAGE_TYPE=${STORAGE_TYPE:-local}
145
+      - STORAGE_LOCAL_PATH=/app/api/storage
146
+      # 向量数据库
147
+      - VECTOR_STORE=${VECTOR_STORE:-qdrant}
148
+      - QDRANT_URL=http://qdrant:6333
149
+      - QDRANT_API_KEY=${QDRANT_API_KEY:-}
150
+      # 模型配置(DeepSeek)
151
+      - DEEPSEEK_API_BASE=${DEEPSEEK_API_BASE:-https://api.deepseek.com}
152
+      - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
153
+      # Celery
154
+      - CELERY_BROKER_URL=redis://:${REDIS_PASSWORD}@redis:6379/1
155
+      - CELERY_RESULT_BACKEND=redis://:${REDIS_PASSWORD}@redis:6379/1
156
+    volumes:
157
+      - api_storage:/app/api/storage
158
+      - app_data:/app/data
159
+    depends_on:
160
+      db:
161
+        condition: service_healthy
162
+      redis:
163
+        condition: service_healthy
164
+    networks:
165
+      - dify-network
166
+
167
+  ### ======================== 向量数据库 ========================
168
+
169
+  # Qdrant 向量数据库(默认)
170
+  qdrant:
171
+    image: qdrant/qdrant:latest
172
+    restart: always
173
+    volumes:
174
+      - qdrant_data:/qdrant/storage
175
+    environment:
176
+      - QDRANT_API_KEY=${QDRANT_API_KEY:-}
177
+    ports:
178
+      - "${QDRANT_PORT:-6333}:6333"
179
+    networks:
180
+      - dify-network
181
+
182
+  ### ======================== 安全与代理 ========================
183
+
184
+  # Nginx 反向代理
185
+  nginx:
186
+    image: nginx:alpine
187
+    restart: always
188
+    ports:
189
+      - "${NGINX_PORT:-80}:80"
190
+      - "${NGINX_SSL_PORT:-443}:443"
191
+    volumes:
192
+      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
193
+      - ./nginx/ssl:/etc/nginx/ssl:ro
194
+      - nginx_logs:/var/log/nginx
195
+    depends_on:
196
+      - api
197
+      - web
198
+    networks:
199
+      - dify-network
200
+
201
+  # SSRF 代理(安全防护)
202
+  ssrf-proxy:
203
+    image: ubuntu/squid:latest
204
+    restart: always
205
+    volumes:
206
+      - ./ssrf-proxy/squid.conf.template:/etc/squid/squid.conf.template:ro
207
+    environment:
208
+      - HTTP_PROXY_PORT=${SSRF_PROXY_PORT:-3128}
209
+    ports:
210
+      - "${SSRF_PROXY_PORT:-3128}:3128"
211
+    networks:
212
+      - dify-network
213
+
214
+  ### ======================== 可选服务 ========================
215
+
216
+  # Sandbox 代码执行环境(可选,按需启用)
217
+  # sandbox:
218
+  #   image: langgenius/dify-sandbox:latest
219
+  #   restart: always
220
+  #   environment:
221
+  #     - API_KEY=${SANDBOX_API_KEY}
222
+  #     - GIN_MODE=release
223
+  #     - WORKER_TIMEOUT=${SANDBOX_WORKER_TIMEOUT:-15}
224
+  #     - ENABLE_NETWORK=${SANDBOX_ENABLE_NETWORK:-true}
225
+  #   volumes:
226
+  #     - sandbox_data:/data
227
+  #   networks:
228
+  #     - dify-network
229
+
230
+  # Elasticsearch(可选,替代 Qdrant)
231
+  # elasticsearch:
232
+  #   image: elasticsearch:8.11.0
233
+  #   restart: always
234
+  #   volumes:
235
+  #     - es_data:/usr/share/elasticsearch/data
236
+  #   environment:
237
+  #     - discovery.type=single-node
238
+  #     - xpack.security.enabled=false
239
+  #     - ES_JAVA_OPTS=-Xms512m -Xmx512m
240
+  #   networks:
241
+  #     - dify-network
242
+
243
+  # Weaviate(可选,替代 Qdrant)
244
+  # weaviate:
245
+  #   image: semitechnologies/weaviate:latest
246
+  #   restart: always
247
+  #   volumes:
248
+  #     - weaviate_data:/var/lib/weaviate
249
+  #   environment:
250
+  #     - QUERY_DEFAULTS_LIMIT=25
251
+  #     - AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true
252
+  #     - PERSISTENCE_DATA_PATH=/var/lib/weaviate
253
+  #   ports:
254
+  #     - "8080:8080"
255
+  #   networks:
256
+  #     - dify-network
257
+
258
+volumes:
259
+  db_data:
260
+  redis_data:
261
+  api_storage:
262
+  app_data:
263
+  qdrant_data:
264
+  nginx_logs:
265
+  # sandbox_data:
266
+  # es_data:
267
+  # weaviate_data:
268
+
269
+networks:
270
+  dify-network:
271
+    driver: bridge

+ 59
- 0
tasks.md Bestand weergeven

@@ -0,0 +1,59 @@
1
+# 企业知识库项目 - 任务清单
2
+
3
+> 项目:西安云美电子科技有限公司 企业知识库
4
+> 技术栈:Dify 社区版(Docker)+ DeepSeek 模型
5
+> 分支:feature/dev
6
+
7
+---
8
+
9
+## M1: 环境搭建与 Docker 部署配置
10
+
11
+- [x] M1.1.1 创建 `docker/` 目录结构
12
+- [x] M1.1.2 编写 `docker/docker-compose.yml`(Dify 完整服务编排:api、web、worker、db、redis、nginx、ssrf-proxy 等)
13
+- [x] M1.1.3 编写 `docker/.env.example`(所有环境变量模板,含数据库密码、Secret Key、API 端口等占位符)
14
+- [x] M1.1.4 编写 `docker/.env.docker`(Docker 内部服务通信专用变量)
15
+- [x] M1.1.5 编写 `docker/README.md`(部署步骤说明)
16
+- [x] M1.2.1 编写 `.gitignore`(排除 .env、node_modules、data 卷等)
17
+
18
+---
19
+
20
+## M2: 知识库结构设计与文档编写
21
+
22
+- [ ] M2.1.1 调研云美电子科技典型知识库分类(产品手册、技术规范、管理制度、培训资料等)
23
+- [ ] M2.1.2 编写 `docs/knowledge-base-structure.md`(知识库分类结构设计)
24
+- [ ] M2.1.3 设计知识库分段策略(文档分块大小、重叠策略)
25
+
26
+---
27
+
28
+## M3: 系统提示词设计
29
+
30
+- [ ] M3.1.1 编写 `prompts/system-prompt.md`(Dify 知识库助手的系统提示词)
31
+- [ ] M3.1.2 设计开场白与推荐问题
32
+- [ ] M3.1.3 设计下一步问题建议策略
33
+
34
+---
35
+
36
+## M4: 测试用例与性能基线
37
+
38
+- [ ] M4.1.1 编写 `tests/test-cases.md`(功能测试用例:知识检索、问答质量、多轮对话等)
39
+- [ ] M4.1.2 编写 `docs/performance-baseline.md`(性能基线指标:响应时间、准确率等)
40
+
41
+---
42
+
43
+## M5: API 集成文档
44
+
45
+- [ ] M5.1.1 编写 `docs/api-integration.md`(Dify API 集成指南:对话、知识库管理接口)
46
+
47
+---
48
+
49
+## M6: 应用配置导出与最终整理
50
+
51
+- [ ] M6.1.1 编写 `dsl/app-config.yaml`(Dify 应用 DSL 配置模板)
52
+- [ ] M6.1.2 编写 `docs/deployment-guide.md`(完整部署指南)
53
+- [ ] M6.1.3 创建项目 README.md
54
+- [ ] M6.1.4 整理最终目录结构,确保所有文件就绪
55
+- [ ] M6.1.5 创建最终 Tag(v1.0.0)
56
+
57
+---
58
+
59
+_创建时间: 2026-06-06_