跳转到主要内容
⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版
大型语言模型节点调用语言模型来处理文本、图像和文档。它向你配置的模型发送提示词并捕获其响应,支持结构化输出、上下文管理和多模态输入。
LLM Node Overview

大型语言模型节点配置界面

在使用大型语言模型节点之前,请先在系统设置 → 模型供应商中配置至少一个模型供应商。请参阅模型配置指南了解设置说明。

模型选择和参数

从你已配置的任何模型供应商中进行选择。不同模型擅长不同任务 - GPT-4 和 Claude 3.5 在复杂推理方面表现良好但成本较高,而 GPT-3.5 Turbo 在能力和经济性之间取得平衡。对于本地部署,使用 Ollama、LocalAI 或 Xinference。
LLM Node Configuration

模型选择和参数配置

模型参数控制响应生成。温度范围从 0(确定性)到 1(创造性)。核采样通过概率限制词汇选择。频率惩罚减少重复。存在惩罚鼓励新话题。你也可以使用预设:精确平衡创意

提示词配置

你的界面根据模型类型自适应。聊天模型使用消息角色(系统用于行为,用户用于输入,助手用于示例),而完成模型使用简单的文本续写。 在提示词中使用双花括号引用工作流变量:{{variable_name}}。变量在到达模型之前会被实际值替换。
System: You are a technical documentation expert.
User: {{user_input}}

上下文变量

上下文变量在保持来源归属的同时注入外部知识。这使得大型语言模型可以使用你的特定文档回答问题的检索增强生成应用成为可能。
Context Variables

在检索增强生成应用中使用上下文变量

将知识检索节点的输出连接到你的大型语言模型节点的上下文输入,然后引用它:
Answer using only this context:
{{knowledge_retrieval.result}}

Question: {{user_question}}
当使用来自知识检索的上下文变量时,Dify 会自动跟踪引用与归属,以便用户看到信息来源。

结构化输出

强制模型返回特定数据格式(如 JSON)以便程序化使用。通过三种方法配置:
  • 可视化编辑器
  • JSON Schema
  • AI 生成
用户友好的界面适用于简单结构。添加具有名称和类型的字段,标记必需字段,设置描述。编辑器自动生成 JSON Schema。
具有原生 JSON 支持的模型可以可靠地处理结构化输出。对于其他模型,Dify 在提示词中包含 Schema,但结果可能有所不同。

记忆和文件处理

启用记忆以在工作流运行中的多个大型语言模型调用之间维护上下文。该节点在后续提示词中包含之前的交互。记忆是节点特定的,不会在工作流运行之间持续存在。 对于文件处理,将文件变量添加到多模态模型的提示词中。GPT-4V 处理图像,Claude 直接处理 PDF,而其他模型可能需要预处理。

视觉能力配置

处理图像时,你可以控制细节级别:
  • 高细节 - 对复杂图像具有更好的准确性但使用更多标记数
  • 低细节 - 对简单图像进行更快处理,使用较少标记数
视觉能力的默认变量选择器是 sys.files,它会自动从开始节点获取文件。
File Processing

多模态模型的文件处理

对于完成模型中的对话历史,插入对话变量以维护多轮对话上下文:
Conversation History

使用对话历史变量

Jinja2 模板支持

大型语言模型提示词支持 Jinja2 模板以进行高级变量处理。当你使用 Jinja2 模式(edition_type: "jinja2")时,你可以:
{% for item in search_results %}
{{ loop.index }}. {{ item.title }}: {{ item.content }}
{% endfor %}
Jinja2 变量与常规变量替换分别处理,允许在提示词中进行循环、条件和复杂数据转换。

流式结果返回

大型语言模型节点默认支持流式结果返回。每个文本块都作为 RunStreamChunkEvent 产生,实现实时响应显示。文件输出(图像、文档)在流式传输期间自动处理和保存。

错误处理

为失败的大型语言模型调用配置重试行为。设置最大重试次数、重试间隔和退避乘数。当重试不足时,定义回退策略,如默认值、错误路由或替代模型。