循序渐进 · AIP 教学 · Chatbot Studio(六)

引用(Citations)

回答要可信,就得能指出来源。配置了文档或 Ontology 上下文的机器人会输出引用,点击可跳回原始材料。

本文来源 · Source 内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/chatbot-studio/citations/
原始标题:AIP Chatbot Studio • Retrieval context • Citations • Palantir · 所属:AIP Chatbot Studio(做对话机器人)

先记住这几条

① 有上下文的机器人会输出引用
文档上下文、Ontology 上下文均可。
② 引用可点击溯源
直接跳到源材料,便于核验。
③ 消息底部也有引用区
方便集中查看。
④ 引用提升信任与可审计性
这是企业场景的硬需求。
0

写在前面

配置了 document context 或 Ontology context 的 AIP Chatbots 会输出 citations(引用),选中后会链接到源材料。这些 citations 还会出现在每条消息底部的 Sources 下拉菜单中,让用户清楚了解每次回复中所使用和引用的具体上下文。

一个配置了 Ontology context 并输出 citations 的聊天机器人截图。
一个配置了 Ontology context 并输出 citations 的聊天机器人截图。

对于其他类型的上下文,例如 function-backed context 或 tools,默认不提供 citations。不过,用户可以提示聊天机器人将其包含在内。如果 LLM 以正确的 citation 格式回复,对话用户界面就会渲染出该 citation。请参阅下文 citation 格式以了解完整格式列表,并参阅自定义 citation 提示词了解如何在你的聊天机器人中使用这些格式的示例。

1

引用格式

要点:引用长什么样。

AIP Chatbot 界面目前支持以下 citation 格式:

  • Ontology object citations(Ontology 对象引用) 可以以下面两种格式之一返回。选中 citation 气泡将链接到该对象的 Object Explorer 视图。

``xml <citation><key>ri.phonograph2-objects.main.object....</key></citation> ``

其中 <key></key> 标签封装了对象的 RID。

``xml <citation><objectTypeId>...</objectTypeId><primaryKey>...</primaryKey></citation> ``

其中 <objectTypeId></objectTypeId> 标签封装了对象类型 ID(可在 Ontology Manager 中找到),而 <primaryKey></primaryKey> 标签封装了该对象主键的值。

  • Document (PDF) citations(文档(PDF)引用) 应以下列格式返回:

``xml <citation><mediaSetKey>ri.mio.main.media-set...</mediaSetKey><mediaItemKey>ri.mio.main.media-item...</mediaItemKey></citation> ``

选中 citation 气泡将打开一个对话框,显示文档的第一页。如果你想在 citation 中指定文档的某一页,可以像下面这样提供一个 page 标签:

``xml <citation><mediaSetKey>ri.mio.main.media-set...</mediaSetKey><mediaItemKey>ri.mio.main.media-item...</mediaItemKey><page>12</page></citation> ``

随后文档对话框将显示文档的该页。

  • External URL citations(外部 URL 引用) 应以下列格式返回:

``xml <citation><name>My Website</name><href>www.mywebsite.com</href></citation> ``

citation 气泡将显示所提供的名称,例如 My website,选中它将链接到所提供的 URL,例如 www.mywebsite.com

你可以通过导航到 Ontology context 配置面板下的 Citations 标签页,设置一个带 Ontology context 的聊天机器人,以上述三种格式中的任意一种引用对象。

2

引用设置

要点:怎么控制引用的产生。

citation 设置允许你全局启用或禁用 citations,并覆盖默认的点击行为。

citation 设置全局禁用的截图。
citation 设置全局禁用的截图。

对于 ontology 和 document citations,默认的点击行为是打开相应的文档或 ontology 对象。你可以针对每个对象类型,在细粒度层面覆盖默认的 ontology context 行为。可以通过以下方式实现:

Citation variable updates

配置了 Ontology object citations 的聊天机器人也可以配置为在选中对象 citation 时更新应用变量。这使 AIP Chatbots 的使用者可以在对话面板之外显示有关被引用对象的附加信息。

一个常见的例子是 Workshop 中的 AIP Chatbot Widget,你可以在其中使用 application state 来配置选中时弹出的悬浮层。你可以在下文与 Workshop 悬浮层集成一节中找到如何设置它的完整演练。

对于使用 function-backed context 的聊天机器人,你可以提示聊天机器人使用某个自定义提示词来返回对象 citations。

如果你的函数处理多个对象类型,它返回的 citations 可能有些对应对象类型 A,有些对应对象类型 B,依此类推。要处理这类情况,你可以在 citation 设置中为你的函数创建多个 citation variables。当某个 citation 被选中时,与对象类型匹配的那个 citation variable 将被设置为一个包含所引用对象的对象集,而所有其他 citation variables 将被设置为空对象集。这种做法确保在任何时候都只有最相关的 citation variable 被填充。

citation 设置中覆盖了两个对象类型以支持更新变量的截图。
citation 设置中覆盖了两个对象类型以支持更新变量的截图。

Integrate with Workshop overlays

在 AIP Chatbot Studio 中配置好变量更新后,你可以将它们连接到 Workshop 中的 AIP Chatbot widget。有关 AIP Chatbot widget 的更多信息,请参阅 application state 相关章节。

  1. 在 Workshop 中,为你在聊天机器人中配置的每个 citation variable 创建一个空对象集变量。每当 AIP Chatbot widget 中的某个 citation 被选中时,这些变量就会被填充。
  2. 在 Workshop 模块中创建一个悬浮层。
  3. 将该悬浮层设置为 Variable-based visibility,并创建一个布尔变量,用于检查你在第一步中配置的 Workshop 变量是否为空。如果你有多个 citation variables,你可以创建多个悬浮层,或创建单个悬浮层,其可见性由多个布尔变量的并集决定。
Workshop 悬浮层配置面板的截图。
Workshop 悬浮层配置面板的截图。

在选中 citation 时出现的弹出悬浮层通常能为 AIP Chatbot widget 的用户提供最佳体验。不过,你也可以通过浏览 Workshop 文档来探索其他选项。

AIP Chatbot widget 在选中 citation 时配置了弹出悬浮层的截图。
AIP Chatbot widget 在选中 citation 时配置了弹出悬浮层的截图。
3

自定义引用提示词

要点:进阶:让引用更贴合你的场景。

为确保 citations 能在 AIP Chatbot 用户界面中渲染,citations 必须包含在底层 LLM 的回复中。为此,需要使用上述格式之一来提示 LLM。对于带 document context 和 Ontology context 的聊天机器人,此提示词会自动提供。但对于其他聊天机器人,则需要针对具体用例量身定制的自定义提示词。

你可以通过几种不同方式为聊天机器人提供自定义提示词。第一种是使用聊天机器人的 LLM Settings 提供指令。你可以在下面这个聊天机器人示例中看到这种做法,它提示 LLM 在每次使用对象查询工具查询 drivers 时都回复 citations。

用于从 object query 工具输出 citations 的自定义提示词截图。
用于从 object query 工具输出 citations 的自定义提示词截图。

下面是上图中用于从带 object query 工具的聊天机器人输出对象 citations 的提示词:

Whenever the user asks a question about support tickets, use the object query tool to answer it. After using the object query tool, respond to the user query with inline citations that link to the objects returned by the object query tool.

WHENEVER you mention a support ticket, output a citation in the format below:

"<citation><objectTypeId>titan-technologies-support-ticket</objectTypeId><primaryKey>...</primaryKey></citation>"

For example, if I wanted to cite the ticket titled Office Dress Code, I would get the primary key of the ticket, which is TICKET-015 (since the Ticket Id is TICKET-015), and then output the citation like so:

"The ticket about the office dress code says ... <citation><objectTypeId>titan-technologies-support-ticket</objectTypeId><primaryKey>TICKET-015</primaryKey></citation>.""

另一种方式是使用 function-backed context,因为 context retrieval 函数的输出会被直接粘贴到 LLM 系统提示词中。在下面的示例中,context retrieval 函数生成了一段提示词,为 LLM 提供应包含在其回复中的相关对象,以及它应当用于提供 citations 的格式。

用于从 function-backed context 输出 citations 的自定义提示词截图
用于从 function-backed context 输出 citations 的自定义提示词截图

下面是上图中用于从带 function-backed context 的聊天机器人输出对象 citations 的提示词:

Incorporate a citation from the context source in your answer whenever the context content is used.

For example, if the message asks "What is X?"
A valid response would be "X is Y, according to <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.abc-123</key></citation>, ..."

Another example: if the message asks "Why is X?"
A valid response would be: "X is Y because ... For more details or further clarification, please refer to the following sources: <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.def-456</key></citation> <citation><name>Source 3</name><key>ri.phonograph2-objects.main.object.abc-123</key></citation>"

Remember, always include a citation in your answer by using the provided context sources.

Example context sources:

<citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>
Consistency is key when teaching commands to your dog.
<citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>

<citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>
Socialization is important for a dog's development and behavior.
<citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>

Example response with citation:

"Maintaining consistency is essential when training your dog to follow commands <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>. Socializing your dog is crucial for its behavioral development <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>."

[Context Sources Sorted by Relevancy]
<citation><key>ri.phonograph2-objects.main.object.60599f54-c745-412b-98a0-2c7f5f0fa9bf</key></citation>
.... The Titan Technologies dress code is business casual ....
<citation><key>ri.phonograph2-objects.main.object.60599f54-c745-412b-98a0-2c7f5f0fa9bf</key></citation>

<citation><key>ri.phonograph2-objects.main.object.35910c26-8a87-4eb5-8243-52afb88bba11</key></citation>
.... Titan Technologies Employee Handbook ....
<citation><key>ri.phonograph2-objects.main.object.35910c26-8a87-4eb5-8243-52afb88bba11</key></citation>

<citation><key>ri.phonograph2-objects.main.object.3f21b8a6-536b-4374-aaf5-cae641ca836c</key></citation>
.... At Titan Technologies, flexible work hours may be possible .....
<citation><key>ri.phonograph2-objects.main.object.3f21b8a6-536b-4374-aaf5-cae641ca836c</key></citation>

<citation><key>ri.phonograph2-objects.main.object.10b2d64a-4043-438d-894a-80c001ff26e2</key></citation>
.... The dress code for the office is business casual ....
<citation><key>ri.phonograph2-objects.main.object.10b2d64a-4043-438d-894a-80c001ff26e2</key></citation>
[/Context Sources Sorted by Relevancy]

REMINDER:
ALWAYS include citations in the correct format <citation><name>sourceName</name><key>sourceKey</key></citation> in all responses. ALWAYS include the source name and the source key in all citations.

Valid examples are <citation><name>Source 1</name><key>ri.phonograph2-objects.main.object.0c94f9b2-e0c5-4e90-a054-96e570cd11dd</key></citation>, <citation><name>Source 2</name><key>ri.phonograph2-objects.main.object.8c6adc92-cfc6-4b76-b729-2744e369dac3</key></citation>.

延伸阅读 · 相关页面

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

本组其他页面 · AIP Chatbot Studio(做对话机器人)

同一主题下的相邻内容。

常见问题速答 · FAQ

关于「引用(Citations)」,读者最常问的几个问题。

引用格式是什么?
引用长什么样。AIP Chatbot 界面目前支持以下 citation 格式。
如何引用设置?
怎么控制引用的产生。citation 设置允许你全局启用或禁用 citations,并覆盖默认的点击行为。
自定义引用提示词是什么?
进阶:让引用更贴合你的场景。为确保 citations 能在 AIP Chatbot 用户界面中渲染,citations 必须包含在底层 LLM 的回复中。为此,需要使用上述格式之一来提示 LLM。