# 大模型节点 低代码工作流的大模型节点是扣子编程提供的基础节点之一,你可以在该节点使用大语言模型处理任务。 ## 节点说明 大模型节点可以调用大型语言模型,根据输入参数和提示词生成回复,通常用于执行文本生成任务,例如文案制作、文本总结、文章扩写等。 大模型节点依赖大语言模型的语言理解和生成能力,可以处理复杂的自然语言处理任务,你可以根据业务场景的需求选择不同的模型,并配置提示词来定义模型的人设和回复风格。为了更精准地控制模型生成的结果,你还可以在大模型节点中设置模型的参数,从而影响模型回复的文本长度、内容的多样性等。 ## 配置大模型节点 ### **模型** 选择要使用的模型。此节点的输出内容质量很大程度上受模型能力的影响,建议根据实际业务场景选择模型。可选的模型范围取决于当前的账号类型: * 个人版(个人免费版、个人进阶版、个人高阶版、个人旗舰版)用户可以使用默认的几类模型,且存在对话数量限制。 * 企业版(企业旗舰版、企业标准版)用户在上述基础上,还可以使用火山引擎方舟平台的模型。 你还可以单击**配置**图标,调整模型配置。模型配置的详细说明可参考[设置模型](https://docs.coze.cn/api/open/docs/guides/llm)。 ### 技能 支持为大模型节点配置技能,添加插件、工作流或知识库,扩展模型能力的边界。大模型节点运行时,会根据用户提示词自动调用插件、工作流或知识库,综合各类信息输入后输出回复。 配置技能后,大模型节点的能力更接近一个独立运行的智能体,可以自动进行意图识别,并判断调用技能的时机和方式,大幅度提高此节点的文本处理能力和文本生成效果,简化工作流的节点编排。例如用户需求是某地区的穿搭推荐,通常需要先通过插件节点查询某地天气,再由模型节点根据天气情况生成穿搭推荐,现在你可以直接在大模型节点添加查询天气的插件,大模型会自动调用插件,查询天气并推荐穿搭。 * 大模型节点的技能暂不支持添加端插件、添加包含中断节点的工作流。中断节点是指在工作流运行过程中,可能会导致流程暂停或中断的节点。这些节点通常需要用户输入、确认或其他交互操作,例如问答节点、输入节点等。 * 如果该大模型不支持 Function Call,则无法为该模型添加技能。你可以在模型详情中查看模型是否支持 Function Call,或参见[模型服务](https://docs.coze.cn/api/open/docs/guides/model_service)。 | **技能** | **说明** | **示例** | | --- | --- | --- | | 插件 | 调用外部插件工具解决问题。支持配置输入参数是否模型可见。

* **配置输入参数**:设置某个输入参数是否**模型可见**,开启时由模型自动生成参数值并传递给插件;关闭时采用指定的**参数取值**来调用插件,参数取值支持引用大模型节点已定义的变量。例如对于链接读取的插件,可以将前置节点生成的链接定义为大模型节点的变量 `input`,即可作为插件入参来调用插件。
* **配置输出参数**:设置某个输出参数是否**模型可见**,开启时表示模型可见,可根据参数值生成对应回复,关闭时不参考参数值生成回复。配置示例可参考[动态设置大模型工具入参](https://docs.coze.cn/api/open/docs/tutorial/llm_node_tool_parameter)。 |
![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/03ace532ca72462785479f9110aaff20~tplv-goo7wpa0wc-image.image)
| | 工作流 | 调用已发布的工作流处理复杂的流程。支持配置输入参数是否模型可见。

* **配置输入参数**:设置某个输入参数是否**模型可见**,开启时由模型自动生成参数值并传递给工作流;关闭时采用指定的**参数取值**来调用插件,参数取值支持引用大模型节点已定义的变量。
* **配置输出参数**:设置某个输出参数是否**模型可见**,开启时表示模型可见,可根据参数值生成对应回复,关闭时不参考参数值生成回复。 |
![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/479be6c438434e28aab5a3e9e19cab98~tplv-goo7wpa0wc-image.image)
| | 知识库 | 支持使用扣子知识库和火山方舟知识库,两者均支持上传和存储外部知识内容,并提供了多种检索能力,确保查询到用户最需要的文档或段落。配置方式可参考[为智能体添加知识](https://docs.coze.cn/api/open/docs/guides/agent_knowledge)。 | ![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/7a49a2a133784f03b5d93f76b7b3f066~tplv-goo7wpa0wc-image.image) | ### **输入** 需要添加到提示词中的动态内容。系统提示词和用户提示词中支持引用输入参数,实现动态调整的效果。添加输入参数时需要设置参数名和变量值,其中变量值支持设置为固定值或引用上游节点的输出参数。 在多轮对话场景中,你可以在对话流的大模型节点中,开启智能体**会话历史**功能。执行此节点时,扣子编程会将智能体与当前用户的最近多条对话记录和提示词一起传递给大模型,以供大模型参考上下文语境,生成符合当前对话场景的回复。一问一答场景下通常无需开启此功能。 ### 视觉理解输入 对于支持视觉理解的模型,你可以添加图片类型的输入参数,例如在参数中直接上传图片,也可以将图片的 URL 通过变量传入,并在提示词(Prompt)中引用这些变量。例如,可以通过以下方式引用图片输入参数:`图片{{变量名}}中有什么?` 视觉理解输入适用于图像识别、分析和文档处理等领域,能够分析和解析图像内容,识别其中的物体、场景、文字等信息,并生成相关的描述或执行特定任务。 如果需要对图片进行视觉理解等大模型处理时,请使用**视觉理解输入**,不要在**输入**参数中输入图片。 ### **系统提示词** 模型的系统提示词,用于指定人设和回复风格。支持直接插入提示词库中的提示词模版、插入资源库下已创建的提示词,也可以自行编写提示词。编写方式可参考[编写提示词](https://docs.coze.cn/api/open/docs/guides/write_prompt)。 编写系统提示词时,可以引用输入参数中的变量、已经添加到大模型节点的技能,例如插件工具、工作流、知识库,实现提示词的高效编写。例如`{{variable}}`表示直接引用变量,`{{变量名.子变量名}}`表示引用 JSON 的子变量,`{{变量名[数组索引]}}`表示引用数组中的某个元素。 ### **用户提示词** 模型的用户提示词是用户在本轮对话中的输入,用于给模型下达最新的指令或问题。用户提示词同样可以引用输入参数中的变量。 ### **输出** #### 输出格式 指定此节点输出的内容格式与输出的参数。输出格式支持设置为: * **文本**:纯文本格式。此时大模型节点只有一个输出参数,参数值为模型回复的文本内容。 * **Markdown**:Markdown 格式。此时大模型节点只有一个输出参数,参数值为模型回复的文本内容。 * **JSON**:标准 JSON 格式。你可以直接导入一段 JSON 样例,系统会根据样例格式自动设置输出参数的结构,也可以直接添加多个参数并设置参数类型。 参数的名称和描述有助于模型在参数中正确返回匹配的内容。当存在多个输出参数时,建议为输出参数指定有意义的名称,并设置描述信息。例如用于改写 Query 的模型节点,可以设置输出参数为 new_query,描述是改写后的 Query,另一个参数为 reason,描述是改写原因。 注意,当节点的异常处理方式设置为**返回设定内容**或**执行异常流程**时,输出固定为 **JSON** 格式,且同时返回 `isSuccess`、`errorBody` 参数,用于在节点执行异常时传递详细信息。 #### 续写 模型每次生成的内容长度受限于最大输出长度(max_token),过长的内容会被截断,试运行时大模型节点同时提示“输出内容因超出模型最大输出长度被截断。” 大模型节点支持续写功能,在**输出**区域开启**续写**功能开关后,如果触发模型最大输出长度限制,扣子编程会自动通过模型的续写能力获取多次回复,直到模型输出完毕,然后将多次回复拼接成完整回复。续写功能可解决长篇文字输出、代码生成等场景中因截断导致的回复不连贯问题。 * 仅支持续写的模型可开启此功能。你可以在模型列表中通过**续写**标签查看模型是否支持续写。 * 开启续写功能且触发模型续写时,会增加节点响应时间、增加输入 Token 的消耗。原因如下: * 多次调用大模型生成完整回复,会增加大模型节点的整体响应时间,可能会因节点超时导致工作流运行失败。 * 每次调用模型时会在输入中拼接上次的回复,因此会增加输入 Token 的消耗。 ![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/c600407e1a9547698cd139ee483a6cca~tplv-goo7wpa0wc-image.image) ### 异常处理 默认情况下,节点运行超时、运行异常时,工作流会中断,工作流调试界面或 API 中会返回错误信息。你也可以手动设置节点运行超时等异常情况下的处理方式,例如超时时间、是否重试、是否跳转异常分支等。 注意开启流式输出后,一旦开始大模型开始输出数据,即使出现异常也无法重试或者跳转异常分支。 | **异常处理设置** | **说明** | | --- | --- | | 超时时间 | 超时时间指节点运行的最大耗时,如果超过此时长,则判断为节点运行超时。
默认情况下,节点的超时时间默认为 180s,即 3 分钟。你也可以将其改为 0.1s~600s,灵活控制超时时间。 | | 重试次数 | 节点运行超时或异常时,默认不重试,你也可以设置为重试 1 次。
开启重试后,可手动选择备选模型并设置生成随机性等模型参数,扣子编程会优先使用备选模型来重试任务。如果未设置备选模型,则依旧使用原模型。 | | 异常处理方式 | 节点运行超时或异常时,默认中断工作流。你也可以手动修改此节点的异常处理方式:

* **中断流程**:工作流执行中断,不再运行后续节点。
* **返回设定内容**:发生异常后,工作流运行不会中断。开发者可自定义设置需要返回的输出字段内容,必须是输出中已定义的字段,且格式为合法的 JSON 格式。另外,节点还会返回输出参数 `isSuccess`、`errorBody`,传递节点异常的详细信息。
* **执行异常流程**:发生异常后,工作流运行不会中断,转而执行异常流程分析,开发者需要为新增的异常分支配置处理流程。异常信息会通过节点的输出参数 `isSuccess`、`errorBody` 返回。 | ![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/4ea3d4f37bab4b2fa4702fb4eb937b6e~tplv-goo7wpa0wc-image.image) ## 示例 大模型节点的具体示例可参考以下工作流教程: * [动态设置大模型工具入参](https://docs.coze.cn/api/open/docs/tutorial/llm_node_tool_parameter) * [联网搜索](https://docs.coze.cn/api/open/docs/tutorial/workflow_get_content) * [自媒体图文创作](https://docs.coze.cn/api/open/docs/tutorial/template_visual_content_creation) * [解析文件](https://docs.coze.cn/api/open/docs/tutorial/workflow_read_link) ## 常见问题 ### 大模型节点配置技能,和直接使用插件等技能节点有什么区别? 区别如下: * 大模型节点配置技能时,模型会根据用户的 Query 自动判断调用技能的时机与方式、判断执行技能时传递给技能的输入,整体流程更加灵活,是模型 Function call 能力的直接体现。 * 直接使用插件等技能节点时,工作流是开发者人工设计并配置的执行流程,调用技能的时机和方式是固定的,技能的输入也是开发者的指定输入内容,如果编排合理,相对于模型配置技能的场景整体效果更加稳定。 ### 为什么模型输出和节点输出不一致,应如何处理 参数的名称和描述有助于模型在参数中正确返回匹配的内容。当存在多个输出参数时,建议为输出参数指定有意义的名称,并设置描述信息。例如用于改写 Query 的模型节点,可以设置输出参数为 new_query,描述是改写后的 Query,另一个参数为 reason,描述是改写原因。 ![Image](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/fd027215935148cf980427ec62e804ce~tplv-goo7wpa0wc-image.image) ### 为什么输出变量返回 JSON 格式,而不是直接返回变量的值? * 单个输出参数时,支持流式输出,模型返回什么就直接输出什么,因此以 JSON 格式返回。 * 多个输出参数时,扣子编程会等待模型完全返回所有结果后再进行处理和输出,因此可以直接获取其中的具体值。 ### 如果我不希望模型输出为 JSON 格式,该怎么办? 如果你希望模型的输出不是 JSON 格式,可以在提示词中明确指定输出格式。或者在大模型节点后面增加一个代码节点,对输出内容进行格式化。