Skip to main content
Version: DEV

生成组件

提示LLM适当响应的组件。


Generate 组件微调 LLM 并设置其提示。

场景

当您需要LLM协助进行总结、翻译或控制各种任务时,生成组件是必不可少的。

配置

模型

点击Model的下拉菜单以显示模型配置窗口。

  • Model: 使用的聊天模型。
    • 确保在Model providers页面上正确设置了聊天模型。
    • 您可以为不同的组件使用不同的模型,以增加灵活性或提高整体性能。
  • 自由度: 一个快捷方式,用于设置温度Top P存在惩罚频率惩罚,表示模型的自由度水平。
    此参数有三个选项:
    • 即兴: 产生更具创意的响应。
    • 精确: (默认) 产生更保守的响应。
    • 平衡: 介于即兴精确之间的中间地带。
  • 温度: 模型输出的随机性水平。
    默认值为0.1。
    • 较低的值会导致更确定和可预测的输出。
    • 较高的值会导致更具创造性和多样化的输出。
    • 温度为零时,相同的提示会产生相同的输出。
  • Top P: 核心采样。
    • 通过设置阈值P并将采样限制在累积概率超过P的标记上,减少生成重复或不自然文本的可能性。
    • 默认值为0.3。
  • Presence penalty: 鼓励模型在响应中包含更多样化的标记。
    • 较高的presence penalty值会使模型更有可能生成尚未包含在生成文本中的标记。
    • 默认值为0.4。
  • 频率惩罚: 阻止模型在生成的文本中过于频繁地重复相同的单词或短语。
    • 较高的频率惩罚值会使模型在使用重复标记时更加保守。
    • 默认值为0.7。
  • 最大令牌数: 设置模型输出的最大长度,以令牌数量衡量。
    • 默认值为512。
    • 如果禁用,您将取消最大令牌限制,允许模型决定其响应中的令牌数量。
NOTE
  • 不必对所有组件都坚持使用相同的模型。如果某个特定模型在特定任务上表现不佳,考虑使用不同的模型。
  • 如果您不确定TemperatureTop PPresence penaltyFrequency penalty背后的机制,您可以直接选择Freedom的三个选项之一。

系统提示

通常,您使用系统提示来描述LLM的任务,指定它应该如何响应,并概述其他杂项要求。我们不打算详细阐述这个话题,因为它可能像提示工程一样广泛。然而,请注意,系统提示通常与键(变量)一起使用,这些键作为LLM的各种数据输入。

系统提示中的键应该用大括号括起来。以下是来自Interpreter模板的Generate组件的提示片段(组件ID:Reflect):

Your task is to read a source text and a translation to {target_lang}, and give constructive suggestions to improve the translation. The source text and initial translation, delimited by XML tags <SOURCE_TEXT></SOURCE_TEXT> and <TRANSLATION></TRANSLATION>, are as follows:

<SOURCE_TEXT>
{source_text}
</SOURCE_TEXT>

<TRANSLATION>
{translation_1}
</TRANSLATION>

When writing suggestions, pay attention to whether there are ways to improve the translation's fluency, by applying {target_lang} grammar, spelling and punctuation rules, and ensuring there are no unnecessary repetitions.
- Each suggestion should address one specific part of the translation.
- Output the suggestions only.

其中 {source_text}{target_lang} 是由 Begin 组件定义的全局变量,而 {translation_1} 是另一个组件 ID 为 Translate directlyGenerate 组件的输出。

引用

此切换设置是否将原文作为参考引用。

NOTE

此功能仅用于多轮对话,并且仅当原始文档上传到知识库并完成文件解析时才适用。

消息窗口大小

一个整数,指定要输入到LLM中的先前对话轮数。例如,如果设置为12,则最后12轮对话的标记将被输入到LLM中。此功能会消耗额外的标记。

IMPORTANT

此功能仅用于多轮对话

键(变量)

IMPORTANT

一个生成组件依赖于变量(键)来指定其数据输入。它的直接上游组件不一定是其数据输入,工作流中的箭头表示处理顺序。

variable_settings

Generate 组件中的键与系统提示一起使用,用于指定LLM的数据输入。如上图所示,值分为两组:

  • 组件输出: 键的值应该是一个组件ID。
  • 开始输入: 键的值应为在开始组件中定义的全局变量的名称。

示例

您可以探索我们的三步解释器代理模板,其中生成组件(组件ID:Reflect)接收三个全局变量:

  1. 点击页面顶部中央的Agent标签以访问Agent页面。
  2. 点击页面右上角的+ 创建代理以打开代理模板页面。
  3. 代理模板页面上,将鼠标悬停在解释器卡片上,然后点击使用此模板
  4. 为你的新代理命名,然后点击确定进入工作流编辑器。
  5. Click on component Reflect, to display its Configuration window, where:
    • {target_lang}{source_text}Begin 组件中定义,需要用户输入。
    • {translation_1} 是上游组件 直接翻译 的输出。