本体函数Models and graphs创建模型函数

注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

术语,

此页面描述了Typescript 函数,它们是用于Vertex中逻辑的构建模块。为了在Object的函数中调用实时部署的模型,请参阅模型上的函数

创建模型函数

函数可以被用于编写模型函数,这是模型中的逻辑,基于一些输入估计一组输出。此ModelFunction可以在Vertex、目标、场景和Foundry平台的其余部分中使用。

模型函数被用于基于输入集估计一组值。这些函数是纯函数,使用相同输入多次评估模型函数总是会产生相同的输出值。模型函数不加载数据,计算可以完全基于提供的输入集完成。

术语

以下是使用模型函数时具有特定含义的一些术语:

  • 模型 - 模型是一组逻辑,基于其他Object属性估计一些Object属性。这被认为是对值将如何变化的预测,而不是用户将执行的更改。
  • 模型函数 – 一种函数,基于一些原始输入估计一组原始输出。这些函数没有副作用且不加载数据。

模型函数的使用

模型函数在Foundry中具有以下用途:

  • 场景 - 场景是使用操作、覆盖和模型来预测更改可能对Ontology产生影响的使用。它使得可以使用Ontology中的Objects和模型的本体概念创建和比较“假设”分析。任何模型函数都可以在场景中用作模型。
  • Vertex - Vertex是一个Foundry应用程序,用于系统建模和模拟以预测值将如何变化。它允许在运行模拟时可视化Object图。任何模型函数都可以被配置并用于在Vertex中模拟值。
  • 建模目标 - 建模目标是一组模型、数据和上下文,用于解决特定的组织问题陈述和操作化结果。这些是定义为在一些Object集上运行模型,并将模型应用于每个单独的Object。模型函数可以用于将模型应用于Objects。

如何编写模型函数

模型函数与标准函数在两个关键方面不同:

  • 它们使用从@foundry/functions-api导入的@ModelFunction()进行装饰(而不是@Function()
  • 输入和输出类型限制为标准函数中允许类型的子集

任何可以在标准函数上执行的操作都可以在模型函数上执行,例如,在实时预览中测试、标记和发布。模型函数也可以在标准函数可以被用于的任何上下文中使用。

model-functions-decorator

模型函数支持的输入

模型函数仅支持可用函数类型的一个子集。允许的类型是原始类型,例如所有标量、非必填项和集合。对于集合类型,集合中的所有Object也必须是允许的类型之一。值得注意的是,模型函数不支持聚合、Ontology类型或通知。为了在模型函数中使用来自Object的值,您应该为每个您希望使用的属性设置一个输入参数。在另一个Foundry应用程序中使用此模型函数时,您将能够指定Object中的哪些属性对应于每个参数。这将在下面的教程中进一步介绍。

模型函数支持的输出

模型函数必须输出一个匿名的自定义类型,其中的每个字段都是上述支持的原始类型之一。

如果使用不允许的类型编写模型函数,您将收到出错信息,并且函数将不会被发布:

model-functions-error

如何提交模型到建模目标

本教程概述了如何将模型提交到建模目标。

如何配置模型以用于Vertex

本教程概述了如何配置模型以用于Vertex。