定义

允许借助 Jinja2 的 Python 模板语言灵活地进行数据转换、文本处理等。

什么是 Jinja?

Jinja is a fast, expressive, extensible templating engine.

Jinja 是一个快速、表达力强、可扩展的模板引擎。

场景

模板节点允许你借助 Jinja2 这一强大的 Python 模板语言,在工作流内实现轻量、灵活的数据转换,适用于文本处理、JSON 转换等情景。例如灵活地格式化并合并来自前面步骤的变量,创建出单一的文本输出。这非常适合于将多个数据源的信息汇总成一个特定格式,满足后续步骤的需求。

示例1: 将多个输入(文章标题、介绍、内容)拼接为完整文本

拼接文本

示例2: 将知识检索节点获取的信息及其相关的元数据,整理成一个结构化的 Markdown 格式

{% for item in chunks %}
### Chunk {{ loop.index }}. 
### Similarity: {{ item.metadata.score | default('N/A') }}

#### {{ item.title }}

##### Content
{{ item.content | replace('\n', '\n\n') }}

---
{% endfor %}

知识检索节点输出转换为 Markdown

你可以参考 Jinja 的官方文档,创建更为复杂的模板来执行各种任务。

示例 3: 支持渲染 HTML 的表单

<form data-format="json"> // Default to text
  <label for="username">Username:</label>
  <input type="text" name="username" />
  <label for="password">Password:</label>
  <input type="password" name="password" />
  <label for="content">Content:</label>
  <textarea name="content"></textarea>
  <label for="date">Date:</label>
  <input type="date" name="date" />
  <label for="time">Time:</label>
  <input type="time" name="time" />
  <label for="datetime">Datetime:</label>
  <input type="datetime" name="datetime" />
  <label for="select">Select:</label>
  <input type="select" name="select" data-options='["hello","world"]'/>
  <input type="checkbox" name="check" data-tip="By checking this means you agreed"/>
  <button data-size="small" data-variant="primary">Login</button>
</form>