第 7 期:LLM 节点深度配置

更新于 2026/4/6

LLM 节点的三大核心配置

graph TB
    LLM[LLM 节点] --> P[Prompt 提示词]
    LLM --> M[Model 模型选择]
    LLM --> Params[Parameters 参数调优]
    
    P --> SP[System Prompt]
    P --> UP[User Prompt]
    P --> FE[Few-Shot Examples]
    
    M --> Provider[模型提供商]
    M --> ModelName[模型名称]
    
    Params --> Temp[Temperature 0-2]
    Params --> TopP[Top-P 0-1]
    Params --> MaxTokens[Max Tokens]
    Params --> JSON[JSON Mode]

System Prompt 设计最佳实践

# 结构化 System Prompt 模板
你是 {{role_name}},专注于 {{domain}}。

## 任务
{{task_description}}

## 约束条件
1. {{constraint_1}}
2. {{constraint_2}}
3. {{constraint_3}}

## 输出格式
{{output_format}}

## 示例
输入: {{example_input}}
输出: {{example_output}}

实例:产品评论情感分析

你是一个电商产品评论分析专家。

## 任务
分析用户提交的产品评论,提取情感倾向和关键观点。

## 输出格式 (严格 JSON)
{
  "sentiment": "positive | negative | neutral",
  "score": 0.0 到 1.0 的置信度,
  "key_points": ["观点1", "观点2"],
  "suggested_reply": "建议的客服回复"
}

Temperature 与 Top-P 调参指南

场景 Temperature Top-P 说明
代码生成 0.0 - 0.2 0.1 确定性强,减少幻觉
事实问答 0.1 - 0.3 0.3 精准回答
文章写作 0.5 - 0.7 0.7 创造性适中
头脑风暴 0.8 - 1.2 0.9 高创造性发散

JSON Mode 结构化输出

# 当开启 JSON Mode 后,模型保证输出合法 JSON
# 在 Dify 画布中,LLM 节点配置:
# - Response Format: JSON
# - System Prompt 中明确 JSON 结构

# 下游 Code 节点可直接解析
import json

def main(llm_output: str) -> dict:
    data = json.loads(llm_output)
    # data 已经是结构化的 dict
    return {
        "sentiment": data["sentiment"],
        "score": data["score"]
    }

上下文窗口管理

graph LR
    subgraph "Token Budget"
        System["System Prompt
~500 tokens"] Context["RAG Context
~3000 tokens"] History["Chat History
~2000 tokens"] Query["User Query
~200 tokens"] Response["Response Budget
~2000 tokens"] end System --> Context --> History --> Query --> Response

合理分配 Token 预算是 LLM 节点的关键。建议使用 Max Tokens 参数控制输出长度,避免超出模型窗口限制。