Skip to content

运行时接入

规则一旦发布,你的应用在运行时调用引擎拿决策——一次请求进、一个决策出,执行时间在亚微秒级。你的应用对接的是引擎(热路径),不是控制面。

Studio 里每个项目都有一个 接入(Integrate) 页,替你生成这些调用——endpoint、项目的 tenant id,以及按你选的规则集预填好的 curl / Node / Python / Go 片段,复制即用。

决策调用

按名字寻址规则;用 tenant 头把它限定到你的项目(你的项目 id 就是执行 tenant)。

bash
POST https://<engine>/api/v1/execute/loan-approval
Header: x-tenant-id: <项目id>
Body:   { "input": { "amount": 5000, "is_vip": true } }
json
{
  "code": "APPROVED",
  "message": "Within limit",
  "output": { "approved": true, "amount": 5000 },
  "duration_us": 6
}

code 分支你的业务逻辑(从 output 读计算出的字段)。要一次算很多输入,用 POST /api/v1/execute/<name>/batch

SDK

官方 SDK 封装了 REST/gRPC,自带重试和类型化结果。

Python

python
from ordo import OrdoClient

client = OrdoClient(http_address="https://<engine>", tenant_id="<项目id>")

result = client.execute("loan-approval", {"amount": 5000, "is_vip": True})
if result.code == "APPROVED":
    ...
print(result.code, result.output, f"{result.duration_us}µs")

Go / Java

sdk/gosdk/java 走 gRPC(OrdoService.Execute),带 x-tenant-id 元数据。具体 API 见各 SDK 的 README。

传输方式

引擎用三种传输暴露同一套执行,按延迟和环境选:

传输适用
HTTP REST:8080默认——任何语言/服务都好接
gRPC:50051高吞吐服务;Go/Java SDK 用它
Unix 域套接字同机同主机的调用方——延迟最低

完整请求/响应 schema 见 HTTP APIgRPC API

引擎跑在哪

  • 托管——平台跑引擎,你发布的规则无需自建即可调用。
  • 自建——在你自己的网络里跑 ordo-server,用接入令牌连到平台。Ordo 引擎为内网可信环境设计(auth/TLS 可选、不强制),决策可以完全留在你的基础设施内。

事实 vs 输入

规则的条件会引用输入字段事实(fact)概念(concept)。概念是派生的、由引擎计算。事实是外部输入——运行时调用里由你在 input 对象中提供(没提供的事实按缺失/null 处理,不报错)。在每条规则的决策契约里建模它的输入/输出。

基于 MIT 许可发布。