跳到主要内容
版本: DEV

生成组件

用于提示大型语言模型 (LLM) 进行适当响应的组件。


一个**生成**组件用于微调大型语言模型 (LLM) 并设置其提示。

使用场景

当您需要大型语言模型 (LLM) 协助进行摘要、翻译或控制各种任务时,**生成**组件至关重要。

配置

模型

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

  • **模型**:要使用的聊天模型。
    • 请确保您在**模型提供商**页面上正确设置了聊天模型。
    • 您可以为不同的组件使用不同的模型,以增加灵活性或提高整体性能。
  • **自由度**:是**温度 (Temperature)**、**Top P**、**存在惩罚 (Presence penalty)** 和**频率惩罚 (Frequency penalty)** 设置的快捷方式,表示模型的自由度。从**即兴 (Improvise)**、**精确 (Precise)** 到**平衡 (Balance)**,每个预设配置对应于**温度**、**Top P**、**存在惩罚**和**频率惩罚**的独特组合。
    此参数有三个选项
    • **即兴**:生成更具创意的响应。
    • **精确**:(默认)生成更保守的响应。
    • **平衡**:介于**即兴**和**精确**之间的中间选项。
  • **温度 (Temperature)**:模型输出的随机性水平。
    默认为 0.1。
    • 较低的值会导致更确定和可预测的输出。
    • 较高的值会导致更具创意和多样化的输出。
    • 温度为零时,相同的提示将得到相同的输出。
  • **Top P**:核采样。
    • 通过设置阈值 *P* 并将采样限制在累积概率超过 *P* 的 token,减少生成重复或不自然文本的可能性。
    • 默认为 0.3。
  • **存在惩罚 (Presence penalty)**:鼓励模型在响应中包含更多样化的 token。
    • **存在惩罚**值越高,模型越有可能生成尚未包含在已生成文本中的 token。
    • 默认为 0.4。
  • **频率惩罚 (Frequency penalty)**:阻止模型在生成的文本中过于频繁地重复相同的词语或短语。
    • **频率惩罚**值越高,模型在使用重复 token 时越保守。
    • 默认为 0.7。
注意
  • 并非所有组件都必须使用相同的模型。如果特定模型在某个任务上表现不佳,可以考虑使用不同的模型。
  • 如果您不确定**温度**、**Top P**、**存在惩罚**和**频率惩罚**背后的机制,只需选择**预设配置**中的三个选项之一即可。

系统提示

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

重要

**生成**组件依靠键(变量)来指定其数据输入。它的直接上游组件*不*一定是其数据输入,工作流中的箭头*仅*表示处理顺序。**生成**组件中的键与系统提示结合使用,以指定大型语言模型 (LLM) 的数据输入。使用正斜杠 / 或 **(x)** 按钮来显示可用的键。

下方是来自**解释器 (Interpreter)** 模板中一个**生成**组件(组件 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 directly)** 的**生成**组件的输出。

引用

此开关设置是否引用原文作为参考。

注意

此功能仅在原始文档上传到相应的知识库并完成文件解析后才生效。

消息窗口大小

一个整数,指定要输入到大型语言模型 (LLM) 的先前对话轮数。例如,如果设置为 12,则最近 12 轮对话的 token 将被馈送到 LLM。此功能会消耗额外的 token。

重要

此功能*仅*用于多轮对话。

示例

您可以探索我们的三步解释器智能体模板,其中一个**生成**组件(组件 ID:**Reflect**)使用三个全局变量:

  1. 点击页面顶部中心的**智能体**标签页,访问**智能体**页面。
  2. 点击页面右上角的 **+ 创建智能体**,打开**智能体模板**页面。
  3. 在**智能体模板**页面,将鼠标悬停在**解释器 (Interpreter)** 卡片上,然后点击**使用此模板**。
  4. 命名您的新智能体,然后点击**确定**进入工作流编辑器。
  5. 点击组件 **Reflect**,以显示其**配置**窗口,其中:
    • {target_lang}{source_text} 在**开始 (Begin)** 组件中定义,需要用户输入。
    • {translation_1} 是上游组件**直接翻译 (Translate directly)** 的输出。