2026-05-26-dify-workflow.md 3.6 KB

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

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 测试发送消息返回解读

    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 字段