第 7 期:LLM 节点深度配置
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 参数控制输出长度,避免超出模型窗口限制。