生成组件
提示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
- 不必对所有组件都坚持使用相同的模型。如果某个特定模型在特定任务上表现不佳,考虑使用不同的模型。
- 如果您不确定Temperature、Top P、Presence penalty和Frequency 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 directly 的 Generate 组件的输出。
引用
此切换设置是否将原文作为参考引用。
NOTE
此功能仅用于多轮对话,并且仅当原始文档上传到知识库并完成文件解析时才适用。
消息窗口大小
一个整数,指定要输入到LLM中的先前对话轮数。例如,如果设置为12,则最后12轮对话的标记将被输入到LLM中。此功能会消耗额外的标记。
IMPORTANT
此功能仅用于多轮对话仅。
键(变量)
IMPORTANT
一个生成组件依赖于变量(键)来指定其数据输入。它的直接上游组件不一定是其数据输入,工作流中的箭头仅表示处理顺序。
Generate 组件中的键与系统提示一起使用,用于指定LLM的数据输入。如上图所示,值分为两组:
- 组件输出: 键的值应该是一个组件ID。
- 开始输入: 键的值应为在开始组件中定义的全局变量的名称。
示例
您可以探索我们的三步解释器代理模板,其中生成组件(组件ID:Reflect)接收三个全局变量:
- 点击页面顶部中央的Agent标签以访问Agent页面。
- 点击页面右上角的+ 创建代理以打开代理模板页面。
- 在代理模板页面上,将鼠标悬停在解释器卡片上,然后点击使用此模板。
- 为你的新代理命名,然后点击确定进入工作流编辑器。
- Click on component Reflect, to display its Configuration window, where:
{target_lang}和{source_text}在 Begin 组件中定义,需要用户输入。{translation_1}是上游组件 直接翻译 的输出。