跳转到主要内容
回顾第八课,我们使用最后的 LLM 节点产出一篇完整的回复邮件。 虽然,我们在这个 LLM 节点内的 Prompt 里告知了邮件内需要每一个问题对应一个答案,但仍然会有每封邮件输出格式不统一的情况。 为了解决这个问题,我们需要一个专属的排版小助手,在最终生成邮件之前,把所有的内容整理成工整和标准的格式。

模板转换

你可以将它理解成排版设计师,它能够接收一个或者多个输入变量(比如我们的答案列表),然后按照你设置好的模板,将这些变量重新组合、排版,最终输出一段格式统一的文本。

动手实践:优化邮件排版

1

更新 LLM 节点

既然模板节点将会负责处理问候语和落款,我们需要告诉 LLM 只专注于回答问题本身就行。你可以复制并粘贴下方的提示词,也可以自由修改。别忘了在用户消息(User Message)中把文本替换成相应的变量。
Combine all answers for the original email. Write a complete, clear, and friendly reply that only includes the summarized answers.

IMPORTANT: Focus SOLELY on the answers. Do NOT include greetings (like "Hi Name"), do NOT write intro paragraphs (like "Thank you for reaching out"), and do NOT include signatures.
2

添加用户信息 (User Message)

在 LLM 的 User 框内,分别列出并插入对应的变量。
设置输入
3

添加模板转换节点(Template Node)

在 LLM 节点之后,点击 + 号添加一个模板节点。
添加模板转换节点
4

设置输入变量

我们需要把原材料交给我们的排版设计师,让它知道该排版哪些内容。 点击模板节点,找到输入变量(Input Variables)区域,并添加以下这两个变量:
  • customer:选择 User Input / {x} customer_name String
  • body:选择 LLM / {x} text String
    设置模板转换器输入变量
5

使用 Jinja 语法进行排版

什么是 Jinja2?简单来说,Jinja2 就是一种让你把变量(比如答案列表)按照你想要的格式,填入到一个文本模板里的工具。它使用一些简单的符号来标记变量的位置和执行一些基本操作。通过它,我们能把一个原始的数据列表,转换成一段格式整齐的文本。在这里,我们可以把开场白、邮件正文和署名落款拼装在一起,确保每次发出的邮件都既专业又格式统一。请将下方这段排版代码直接复制并粘贴到模板节点的代码框中。
Hi {{ customer }},

Thank you for reaching out to us, and we are more than happy to provide you with the information you are seeking.

Here are the details regarding your specific questions:

{{ body }}

---
Thank you for reaching out to us!
Best regards,
Anne
这是最终的工作流:
最终工作流
点击运行,在一封邮件中提出多个问题进行测试。你会发现,最终生成的回复完美包含了个性化的开场白、LLM 在中间部分出色总结的答案,以及最下方标准、专业的落款。

小挑战

  1. 如何修改 Jinja2 的语法,将项目符号列表修改成数字编号列表。
    可前往 Template Designer Documentation,或者向 AI 提问,探索更多格式。
  2. 格式转换除了对列表进行统一的格式处理,还能做什么?