循序渐进 · AIP 教学 · AIP Evals(五)

评估 Ontology 编辑

测一个会写 Ontology 的函数,难道每次都要真改数据?不用 —— 每个测试用例在 Ontology 模拟环境里跑,真实数据毫发无损。

本文来源 · Source 内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/aip-evals/ontology-edits/
原始标题:AIP Evals • Evaluate Ontology edits • Palantir · 所属:AIP Evals(给 AI 做测试)

先记住这几条

① 写入也能安全地测
不用怕污染生产数据。
② 用模拟环境隔离
每个用例跑在自己的沙盒里。
③ 真实 Ontology 保持不变
这点至关重要。
0

写在前面

运行评估套件时,会为每个测试用例执行其 Logic 函数。对于涉及本体(Ontology)编辑的函数(例如创建、编辑或删除对象),每个测试用例都在一个本体模拟环境中执行。这确保了实际本体在测试和评估期间保持不变。

1

针对 Ontology 编辑的自定义评估函数

要点:怎么判定写入是否正确。

对于会产生本体编辑结果的 AIP Logic 函数,用户必须用 TypeScript 配置自定义评估函数,或使用中间参数。自定义评估函数必须返回布尔型或数值型。一个评估函数也可以通过返回由布尔型或数值型组成的 struct 来返回多个指标。

在 Evaluations 应用中添加评估函数时,系统会提示你在代码仓库中编写函数,或选择现有的已发布函数。借助下文提供的指南,探索各种类型的本体编辑,并学习如何有效地使用 TypeScript 函数对其进行评估。

Created objects

在涉及创建对象的本体编辑情形中,所创建的对象仅存在于模拟本体中。因此,这些创建的对象无法直接配置为测试用例参数进行传入。相反,应使用一个可标识的属性来搜索它,并检查其属性。

@Function()
public async checkTicketWasCreated(
    expectedRequester: string,
    expectedDate: LocalDate,
    expectedClassification: string,
): Promise<boolean> {
    const matches = Objects.search().supportTicket()
        .filter(ticket => ticket.ticketRequester.exactMatch(expectedRequester))
        .filter(ticket => ticket.ticketCreationDate.exactMatch(expectedDate))
        .all();

    if (matches.length !== 1) {
        return false;
    }

    return matches[0].classification === expectedClassification;
}

Edited objects

对于对象编辑的输出类型,被编辑的对象已经存在于真实本体中。在模拟本体中,你可以直接将它传入函数并检查其属性,如下所示:

@Function()
public checkTicketClassification(
    ticket: SupportTicket,
    expectedClassification: string,
): boolean {
    return ticket.classification === expectedClassification;
}

Deleted objects

在涉及删除对象的本体编辑情形中,该对象预期已在模拟本体中被删除,因此它无法被传入评估函数。要验证对象确实已被删除,请传入该对象的一个可标识属性并搜索它,以确保没有结果。

@Function()
public async checkTicketWasDeleted(ticketId: string): Promise<boolean> {
    const count = await Objects.search().supportTicket()
        .filter(ticket => ticket.ticketId.exactMatch(ticketId))
        .count();
    return count === 0;
}

延伸阅读 · 相关页面

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

本组其他页面 · AIP Evals(给 AI 做测试)

同一主题下的相邻内容。