检索上下文类型(Context types)
机器人回答得好不好,八成取决于喂给它的上下文。检索上下文针对每一条新消息确定性地运行,把相关内容塞进模型。
https://www.palantir.com/docs/foundry/chatbot-studio/retrieval-context/
原始标题:AIP Chatbot Studio • Retrieval context • Context types • Palantir · 所属:AIP Chatbot Studio(做对话机器人)
先记住这几条
写在前面
AIP Chatbots 可以配置 retrieval context。retrieval context 会针对每一条新的用户消息确定性地运行,检索到的信息会被传入 LLM。
你可以为聊天机器人配置以下任意数量的 retrieval context 类型:

Ontology 上下文
Ontology context 为聊天机器人提供来自 Ontology 中对象的上下文。你可以提供固定的 N 个对象,也可以执行语义搜索来找出与用户查询最相关的 K 个对象,前提是你的对象类型具有向量嵌入属性。
在配置 Ontology context 时,你可以选择起始对象集为 Static input(静态输入,包含完整对象类型),或 Variable input(变量输入,可以由作为 application state 变量传入的经过筛选的对象集组成)。

你还可以配置一个对象属性列表,以决定每个检索到的对象有哪些属性会被打印并作为上下文传递给 LLM。默认情况下会选中所有属性,但无法打印的属性除外(例如媒体引用或向量嵌入)。

此外,你还可以通过为对象集输出和 citation variable 输出配置变量,将 Ontology context 与你的 application state 集成。更多信息,请参阅 application state 和 citation variable updates 相关章节。
文档上下文
document context 允许用户在每条发送给 LLM 的消息中附带文档中的相关文本。文档的选择与添加方式,与在 AIP Threads 中向对话添加文档的方式相同。
提供 document context 有两种模式:
- Full document text mode(完整文档文本模式): 此模式将文档的完整文本内容提供给 LLM 作为上下文。
- Relevant chunks mode(相关分块模式): 此模式对文档执行语义搜索,将最相关的 K 个分块作为上下文返回给 LLM。
Relevant chunks mode 处于开发的 beta 阶段,你的 enrollment 上可能尚不可用。功能在活跃开发期间可能发生变化。请联系你的 Palantir 代表或 Palantir 支持团队以申请使用此功能。

函数支撑的上下文
function-backed context 使用户能够在每次查询时执行自己的检索。这非常适用于 Ontology context 或 document context 所提供的开箱即用检索方法无法满足某个用例的场景。例如,如果用户想要组合不同的检索方法,比如关键词搜索和语义搜索,那么他们可以编写一个函数来实现,因为 Chatbot Studio 目前尚不支持这种组合。
你可以在 Code Repositories 中用 TypeScript v1 编写这些函数。为此,请导航到一个 TypeScript v1 仓库并导入 AipAgentsContextRetrieval 函数接口。TypeScript v2 仓库不支持函数接口。

然后,编写一个满足该接口的函数,如下所示。为了满足契约,该函数必须将 messages 作为唯一必需的输入。
@AipAgentsContextRetrieval()
public exampleRetrievalFunction(messages: MessageList): RetrievedContext {
let combinedText: string[] = [];
messages.forEach((message) => {
...
})
return {
retrievedPrompt: "..."
}
}检索函数必须输出一个 retrievedPrompt 字符串,AIP Chatbots 会将其粘贴到 LLM 系统提示词中,用于回答用户查询。
发布函数后,在 Chatbot Studio 的 Retrieval context 面板下选择 Function-backed context,以选择一个用于检索的函数。

Application variables in retrieval functions
检索函数还可以接收聊天机器人上 application variables 的值作为输入。要进行此配置,请在函数定义中添加可选参数。目前仅支持字符串和对象集类型的应用变量,因此函数输入必须是这两种类型之一。
@AipAgentsContextRetrieval()
public movieRetrievalFunction(messages: MessageList, movieTitle?: string, movieSet?: ObjectSet<Movie>): RetrievedContext {
...
}对象类型请使用 API 名称。该名称可在 Ontology Manager 中找到。然后,你可以在聊天机器人上的应用变量与类型相匹配的函数输入之间配置映射。

要创建应用变量,请导航到 Chatbot Studio 中的 Application variables 面板。
Write retrieval functions in AIP Logic
用户很快将能够在 AIP Logic 中编写这些函数,后者提供了一个可随时上手使用的界面,用于开发无代码的 LLM 驱动函数。在此期间若要使用检索函数,我们建议编写一个满足该接口的 TypeScript 函数,并在底层调用 Logic 函数。
Custom citations
如果 LLM 以特定的 XML 格式返回 citations,AIP Chatbot 界面将渲染出 citation 气泡。借助 function-backed context,用户可以通过让函数返回一段提示 LLM 按给定格式编写 citations 的字符串,来渲染这些 citations。请参阅 citation formats 了解所提供的格式列表,并参阅 citation variable updates 了解如何在每次选择对象 citation 时更新 Workshop 变量。

在上面的示例中,该函数接收一组表示为 Ontology 对象的文档分块。随后它对这些对象执行语义搜索,并返回最相关的五个对象,且按上述 citation 样式进行格式化。
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
本组其他页面 · AIP Chatbot Studio(做对话机器人)
同一主题下的相邻内容。
- AIP Chatbot Studio 总览想做一个懂你业务、能引用出处、能调工具的对话机器人?AIP Chatbot Studio(原名 AIP Agent St
- Chatbot Studio 核心概念这页把搭建聊天机器人要用到的关键概念一次讲全:应用状态、检索上下文、工具、引用等。
- Chatbot Studio 快速入门这一篇带你从零搭一个基础聊天机器人:认识界面、配置信息与工具,然后部署到生产并监控。
- 应用状态(Application state)聊天机器人要记住会话里的信息,才能做多轮推理。应用状态就是它的"工作记忆"。
- 引用(Citations)回答要可信,就得能指出来源。配置了文档或 Ontology 上下文的机器人会输出引用,点击可跳回原始材料。
- 工具(Tools)工具是外部功能或 API,让 LLM 能执行操作或获取自身不具备的信息。有了工具,机器人从"能说"变成"能做"。
- 把命令用作工具平台里的命令(command)可以直接挂成机器人的工具 —— 用户一句自然语言,就能触发应用里的具体操作。
- 把聊天机器人发布为函数发布为函数(Function)后,你的聊天机器人就能在平台里任何可执行函数的地方被调用 —— 复用性大幅提升。
- 会话日志每次聊天机器人的执行都会被结构化成事件记录下来,可导出到流式数据集,用于监控与分析。
- 用 Marketplace 分发聊天机器人把聊天机器人打包成产品,分发给别的团队/环境安装使用 —— 这是从"自己用"到"组织内复用"的一步。
- 通过 Foundry API 使用聊天机器人要在 Foundry 平台之上自建应用?这一篇讲用 Palantir API 调起会话、发消息、拿回复。
常见问题速答 · FAQ
关于「检索上下文类型(Context types)」,读者最常问的几个问题。