循序渐进 · AIP 教学 · AIP Logic(四)

AIP Logic 的 block 全清单

Block 是 AIP Logic 的积木,每块都有特定用途:读写 Ontology、做计算、聚合数据、调用函数、与 LLM 交互。这篇是积木图鉴

全部目录 AIP 首页 ← 上一篇 AIP Logic 的 block 全清单 下一篇 →
本文来源 · Source 内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/logic/blocks/
原始标题:AIP Logic • Blocks • Palantir · 所属:AIP Logic(用积木搭 AI 逻辑)

先记住这几条

① Block 是函数的最小单元
输入 → 输出,可串联。
② 用途分几大类
读数据、写数据、计算、调函数、调 LLM。
③ Use LLM 是心脏
最重要的 block,由 prompt + tool + output 构成。
④ 输出可复用
前一个 block 的输出能喂给后面的。
0

写在前面

AIP Logic 函数由 block 组成。Block 接收输入、返回输出,并构成一次与你的数据的独立交互。Block 有许多不同的用途,例如读写 Ontology、执行计算、聚合数据、调用其他函数,或与 LLM 交互。一个 block 的输出可以在后续 block 中使用,从而通过将 block 串联起来构建复杂的操作。

Block 有许多不同的类型;下面介绍了一些常用的 block:

1

Use LLM(调用大模型)

要点:最核心的 block:由 prompt + tool + output 三部分构成。

Use LLM block 是 AIP Logic 的核心,它让你能够利用 LLM 来定义一个 Logic block。Logic block 由 prompt工具(tools)和一个输出组成。Use LLM block 支持平台中任何可用的 LLM,这与 Palantir 的 k-LLM 理念一致。

LLM Block。
LLM Block。

若要一次性替换多个 Logic 函数中所使用的模型,你可以在 Workflow Lineage 中批量替换模型

Prompts

Prompt 是用自然语言写给 LLM 的指令。我们建议从最重要的信息开始(例如对 LLM 应完成任务的概述),随后是 LLM 需要的数据,以及关于何时使用工具的指引。编写 prompt 时请记住,LLM 只能访问你明确提供的内容。

在下面这个示意性 prompt 中,我们使用 LLM 从以往的邮件往来中搜索信息,以便为寻求解决方案的客户提供回复。该示意性 prompt 以任务概述开头:

You are my complaint helper agent. Find other emails that describe similar events to those described in the input email. Look only at the email body. Determine the best solution based on what has worked in the past. Return your one solution recommendation, do not list findings from every email.

随后,prompt 指定了要查询的数据(在此例中为投诉邮件,以 complaint 对象表示)。输入 prompt 后,你可以在 prompt 字段中输入 /,并选择在该 Logic 函数中该位置可用的一个或多个变量(例如输入和 block 输出),从而让 LLM 访问你的输入。选择一个对象或对象集会打开一个子菜单,你可以在其中选择要插入的该对象的哪些属性;在下方的截图中,我们选择了 email 对象的属性。

示意性 prompt,共享了任务概述「You are my complaints helper agent. Find other emails that describe similar events to those described in the input email. Look only at the email body. Determine the best solution based on what has worked in the past. Return your one solution recommendation, do not list findings from every email.」
示意性 prompt,共享了任务概述「You are my complaints helper agent. Find other emails that describe similar events to those described in the input email. Look only at the email body. Determine the best solution based on what has worked in the past. Return your one solution recommendation, do not list findings from every email.」

Tools

工具是 AIP Logic 让 LLM 得以读写 Ontology 并支撑现实世界操作的机制。AIP Logic 利用三类由 Ontology 驱动的工具——数据、逻辑和 action——来有效地查询数据、执行逻辑操作并安全地采取行动。LLM 并不能直接访问工具;LLM 只能请求使用工具,随后这些工具调用会由 AIP Logic 在调用用户的权限范围内执行。

仅在读取时强制执行

行级和列级访问控制(包括受限视图对象安全策略属性安全策略)会在 Query objects 将数据读入 prompt 时,过滤用户所能读取的内容。这些控制不会延伸到模型的输出,也不会延伸到 Apply actions 编写的任何 Ontology 编辑。为了让数据在向下游流转时持续受到保护,请将这些控制与标记(marking)基于分类的访问控制搭配使用。完整的模型说明参见访问控制传播

Tool calling modes

AIP Logic 支持提示式(prompted)工具调用和原生(native)工具调用。原生工具调用利用底层 LLM 内置的能力来提升性能和 token 效率。提示式工具调用则使用 prompt 指示 LLM 如何使用工具。

当一个 Use LLM board 中的所有模型都支持原生工具调用时,AIP Logic 会自动从提示式升级为原生,并在 Debugger 中显示一条提示信息。如果任一模型缺少原生支持,AIP Logic 会继续使用提示式工具调用。

可供选择的 AIP Logic 工具:Apply actions、Call function、Query objects、Calculator tool。
可供选择的 AIP Logic 工具:Apply actions、Call function、Query objects、Calculator tool。

可用的工具包括:

Apply actions

Apply actions 工具让 LLM 能够使用 Action 来编辑 Ontology。你可以描述 LLM 应在何时使用所提供的 Action。关于如何将更改应用到 Ontology 的更多细节,请查阅使用 Logic 函数进行 Ontology 编辑

对「[Titan] Delivery」应用「Adjust delivery completion date」action。

Call function

Call function 工具让你可以选择 LLM 可以调用的函数。函数可以是在代码仓库中定义的代码,也可以是现有的 Logic 函数。

Call function 工具,已从函数下拉菜单中选定「extractAnswer」函数。
Call function 工具,已从函数下拉菜单中选定「extractAnswer」函数。

Query objects

Query objects 工具指定 LLM 可以访问的对象类型。你可以按需添加任意数量的对象类型,并指定 LLM 可以访问哪些属性,以使查询更节省 token。

Query objects 工具,已添加「[Titan] customer order」、「[Titan] Distribution center」和「[Titan] Finished good」三个对象。

Calculator tool

Calculator tool 让你能够借助 LLM 执行精确的数学计算。

2

Apply action(执行动作)

要点:让 LLM 触发 Ontology 写操作。

Apply action block 让你能够确定性地调用 action,而无需经过 LLM block。这个 block 让你可以精确控制参数如何填写,并加快执行速度。在此示例中,我们可以调用一个为某个给定事件赋予优先状态(priority status)的 action。

要编辑被写回 Ontology,必须从某个 action 中调用 AIP Logic 函数。除非该 Logic 函数是从 action 中执行的,否则 Ontology 不会被编辑,即使该函数包含 Apply action block 也是如此。

「Apply action」block。
「Apply action」block。
3

Execute function(调用函数)

要点:把已有函数当作工具给 LLM 用。

Execute function block 让你可以调用 Foundry 内其他现有的函数,例如 TypeScript、Python,甚至其他 Logic 函数。Execute block 让你能够复用那些已经实现你预期任务的现有函数,而不必自己重新实现该逻辑。在下面的示例中,Execute block 用于借助某个语义搜索函数的输出,帮助返回相似事件的解决文本。

Execute block1/2。
Execute block1/2。
Execute block2/2。
Execute block2/2。
4

Conditionals(条件分支)

要点:按条件走不同路径。

条件(Conditionals)是评估某个条件、并根据该条件为真或为假来执行不同路径的 block。可以把条件看作传统编程中的「if-then-else」语句:

  • 如果(If) 某个条件为真,那么(then) 执行一组操作
  • 否则(Else) 执行另一组操作
AIP Logic 界面中的条件 block
AIP Logic 界面中的条件 block

当你需要根据特定条件以不同方式处理数据,或运行不同的 action 时,条件就很有用。

Branch return values

在「then」或「else」部分中,你可以定义该条件分支应返回什么值。共有 3 个选项:

  1. Define a Path: 创建一串要执行的 block。
  2. Return a Variable: 返回现有变量或先前的 block 输出。
  3. Take No Action: 将分支配置为不采取任何操作(当另一个分支会返回 ontology 编辑时可用)。

注意:你可以在一个条件 block 中配置多个分支,每个分支都有自己的「when」条件和「then」操作。

使用条件分支时,所有分支必须返回一致的输出。例如,如果某个分支输出字符串,那么所有其他分支(包括 else 分支)也必须输出字符串。如果分支通过 action 返回 ontology 编辑,那么所有分支都必须运行一个 action,或明确指定「take no action」。

5

Loops(循环)

要点:对集合逐个处理。

循环(Loops)让 AIP Logic 能够遍历一个集合,并对每个元素运行一次转换和/或一个 action。循环对于在一组元素上执行操作,或对多个对象进行 ontology 编辑非常有用。

循环的输出可以是一个值列表,也可以是 ontology 编辑。

循环 block
循环 block

在循环内部,你可以通过 element 变量访问当前元素,并通过 index 变量访问当前元素的索引(如有需要,这些变量可以重命名)。

循环只对 List 操作,不对 Array 操作。选择 array 作为循环的输入时,会自动在循环之前插入一个「Array to List」block,在将输入传入循环之前把它转换为 list。

循环转换
循环转换

注意:如果你的循环不包含任何 action,则每次迭代都会并行执行。

6

Create variable(创建变量)

要点:在 block 之间传递中间结果。

Create variable block 会创建一个可在后续 block 中使用的变量。该变量可以是以下类型:array、boolean、date、double、float、integer、long、object、short、string 或 timestamp。

Create variable 区域 block。
Create variable 区域 block。

延伸阅读 · 相关页面

按主题横向跳转,不必顺着目录一篇篇读。

本组其他页面 · AIP Logic(用积木搭 AI 逻辑)

同一主题下的相邻内容。

常见问题速答 · FAQ

关于「AIP Logic 的 block 全清单」,读者最常问的几个问题。

Use LLM(调用大模型)是什么?
最核心的 block:由 prompt + tool + output 三部分构成。
Apply action(执行动作)是什么?
让 LLM 触发 Ontology 写操作。Apply action block 让你能够确定性地调用 action,而无需经过 LLM block。这个 block 让你可以精确控制参数如何填写,并加快执行速度。
Conditionals(条件分支)是什么?
按条件走不同路径。条件(Conditionals)是评估某个条件、并根据该条件为真或为假来执行不同路径的 block。可以把条件看作传统编程中的「if-then-else」语句。
Loops(循环)是什么?
对集合逐个处理。循环(Loops)让 AIP Logic 能够遍历一个集合,并对每个元素运行一次转换和/或一个 action。循环对于在一组元素上执行操作,或对多个对象进行 ontology 编辑非常有用。