# Sub-Plan B: Dify Chatflow 设计 > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development > **前置依赖:** Dify 实例已部署,API Key 就绪 **目标:** 创建能量盘对话 Chatflow,接收能量盘数据 + 用户消息,返回 AI 解读 --- ### 工作流结构 ``` START (Input) │ inputs: { chart_data, user_message, history } ▼ [Python Node: context_builder] │ - 解析 chart_data JSON │ - 构建易读的系统上下文文本 │ - 输出: system_context 字符串 ▼ [LLM Node: chat] │ - System: 数字能量学解读 Prompt │ - User: {{user_message}} │ - 历史: {{history}} ▼ END (Output) │ output: { answer: "..." } ``` ### Python Node: context_builder ```python import json def main(chart_data: dict, user_message: str, history: list) -> dict: positions = chart_data.get("positions", {}) zones = chart_data.get("zones", {}) context = f"【能量盘数据】\n" context += f"主性格数字: {chart_data.get('mainCharacter')}\n" if chart_data.get('isMasterNumber'): context += "(卓越数,天赋异禀)\n" context += "\n三角形各位置数字:\n" context += f"顶端: O={positions.get('O')}\n" context += f"第四层: I={positions.get('I')}, K={positions.get('K')}\n" context += f"第三层: J={positions.get('J')}, M={positions.get('M')}, L={positions.get('L')}\n" context += f"第二层: F={positions.get('F')}, G={positions.get('G')}, N={positions.get('N')}, H={positions.get('H')}\n" context += f"底层: A={positions.get('A')}, B={positions.get('B')}, C={positions.get('C')}, D={positions.get('D')}, E={positions.get('E')}\n" context += "\n五区数据:\n" for key, zone in zones.items(): context += f"{zone.get('name')}: 数字={zone.get('values')}\n" return { "system_context": context } ``` ### LLM Node Prompt **System Prompt:** ``` 你是一位专业的数字能量学解读师,精通生命密码(数字能量学)的三角形能量盘分析体系。 以下是当前用户的完整能量盘数据: {{#context_builder.system_context#}} ## 回答规则: 1. 所有解读必须基于上述能量盘中的实际数字,不得编造 2. 每个回答 200-300 字,言简意赅 3. 语气温和正向,避免恐吓或绝对化表述(如"你一定会..."改为"你可能会...") 4. 如果用户没有明确问题,主动介绍能量盘亮点(主性格含义、特殊数字组合等) 5. 涉及多区域时,交叉引用各位置数字的关系 6. 回答末尾加一句 "仅供参考" ## 用户聊天: ``` **Response:** LLM 直接输出文本回复 ### Dify 端操作步骤 - [ ] Step 1: 登录 Dify,创建空白 Chatflow - [ ] Step 2: 添加 Python 节点,粘贴 context_builder 代码 - [ ] Step 3: 添加 LLM 节点,粘贴 System Prompt,关联 context_builder 输出 - [ ] Step 4: 连接 START → context_builder → LLM → END - [ ] Step 5: 发布 Chatflow,获取 API URL 和 API Key - [ ] Step 6: 验证 — 用 curl 测试发送消息返回解读 ```bash curl -X POST https://your-dify.com/v1/chat-messages \ -H "Authorization: Bearer your_api_key" \ -H "Content-Type: application/json" \ -d '{ "inputs": {"chart_data": {"mainCharacter":7,"positions":{"O":7,"I":3,"K":5,"J":2,"M":8,"L":4,"F":1,"G":6,"N":9,"H":7,"A":1,"B":9,"C":9,"D":0,"E":1},"zones":{"mainCharacter":{"name":"主性格","values":[7]},"fatherSource":{"name":"父源区","values":[3,2]},"motherSource":{"name":"母源区","values":[5,4]}}}}, "query": "我的左区数字有什么含义?", "response_mode": "blocking" }' ``` Expected: 返回 JSON 含 `answer` 字段