开源决策引擎

把判断
变成决策

模型告诉你发生了什么,Ordo 决定接下来怎么做。规则单独管理,改之前先看清会影响谁。

Ordo Studio 用退款分流规则逐步处理四条真实记录的退款请求
1🚀1µs
起始Chargeback or legal threat决策
jev.chargeback.noul ...
默认
2✓1µs
Is it a refund request决策
jev.intent.choice !=...
默认
3✓1µs
Priority决策
jev.urgency.score >=...
默认
4✓2µs
Route by confidence and order决策
customer.refunds_90d...
order.days_since_del...
jev.intent.choice ==...
jev.intent.choice ==...
jev.intent.choice ==...
默认
5✓0µs
Dispatch决策
$decision == "AUTO_R...
$decision == "LLM_DR...
默认
Escalate终结
ESCALATE
priority="high"
jev_chargeback=jev.chargeback....
Other team终结
ROUTE_TEAM
team=jev.intent.choi...
jev_confidence=jev.intent.conf...
6🏁0µsAUTO_REFUND
Auto refund终结
AUTO_REFUND
amount=order.amount
priority=$priority
jev_confidence=jev.intent.conf...
LLM draft终结
LLM_DRAFT
reason=$reason
priority=$priority
jev_confidence=jev.intent.conf...
Human review终结
HUMAN_REVIEW
reason=$reason
priority=$priority
jev_confidence=jev.intent.conf...
1🚀1µs
起始Chargeback or legal threat决策
jev.chargeback.noul ...
默认
2✓1µs
Is it a refund request决策
jev.intent.choice !=...
默认
3✓1µs
Priority决策
jev.urgency.score >=...
默认
4✓2µs
Route by confidence and order决策
customer.refunds_90d...
order.days_since_del...
jev.intent.choice ==...
jev.intent.choice ==...
jev.intent.choice ==...
默认
5✓0µs
Dispatch决策
$decision == "AUTO_R...
$decision == "LLM_DR...
默认
Escalate终结
ESCALATE
priority="high"
jev_chargeback=jev.chargeback....
Other team终结
ROUTE_TEAM
team=jev.intent.choi...
jev_confidence=jev.intent.conf...
6🏁0µsAUTO_REFUND
Auto refund终结
AUTO_REFUND
amount=order.amount
priority=$priority
jev_confidence=jev.intent.conf...
LLM draft终结
LLM_DRAFT
reason=$reason
priority=$priority
jev_confidence=jev.intent.conf...
Human review终结
HUMAN_REVIEW
reason=$reason
priority=$priority
jev_confidence=jev.intent.conf...
流程回放搅拌机
输入快照
{
  "jev": {
    "intent": {
      "choice": "refund",
      "confidence": 0.97
    },
    "urgency": {
      "score": 0.43
    },
    "chargeback": {
      "noul": 0.04
    }
  },
  "order": {
    "amount": "129.00",
    "days_since_delivery": 1
  },
  "customer": {
    "refunds_90d": 0
  }
}
{"jev":{"intent":{"choice":"refund","confidence":0.97},"urgency":{"score":0.43},"chargeback":{"noul":0.04}},"order":{"amount":"129.00","days_since_delivery":1},"customer":{"refunds_90d":0}}
结果码AUTO_REFUND
输出
{"amount":129,"jev_confidence":0.97,"priority":"normal"}

Ordo 帮你做三件事

01

模型判断,规则决定

Jev 这类模型读懂客户说的话,给出判断。退不退钱、要不要人工看,和折扣、额度一样写在规则里,业务同事也看得懂。

02

改之前先看影响

调一个门槛之前,先看清哪些决策会跟着变,变成了什么。

03

改完马上生效

规则更新后直接生效。业务系统不用改代码,也不用重新发版。

一个例子

一个写死在代码里的 0.85

客户发来一段话,Jev 判断这是退款请求,把握超过 0.85 就自动退钱。这个 0.85 通常写死在代码里,没人看过,模型一升级,它的意思就变了。

放进 Ordo 之后,有人提议降到 0.80。测试全部通过,Ordo 把改动前后放在一起跑了一遍,发现 18 种情况会从「客服确认」变成「直接退款」。要不要这样改,合并之前就能决定。

模型可以换,也可以升级。退款门槛一直留在 Ordo 里,有测试,也有版本记录。

自动退款门槛0.85→0.80

309 种情况里,21 种结果会变

  • 想退款,把握 0.84,订单 129 元,昨天签收

    客服确认→直接退款LLM_DRAFT → AUTO_REFUND

  • 想退款,把握 0.80,订单 39.90 元,前天签收

    客服确认→直接退款LLM_DRAFT → AUTO_REFUND

其余 288 种情况不变

Studio

不写代码的同事,也能看懂规则

同一份规则可以看成流程图,也可以看成一张表。业务同事在这里看逻辑、跑测试、提发布,研发继续用代码仓库。

了解 Studio
Ordo Studio 用决策表展示退款分流规则的路由步骤,逐条匹配输入
添加行添加输入列添加输出列
搅拌机样例
命中策略首次匹配
追踪条件输出
#追踪
INchoicestring
$.jev.intent.choice
INconfidencenumber
$.jev.intent.confidence
INamountnumber
$.order.amount
INdays_since_deliverynumber
$.order.days_since_delivery
INrefunds_90dnumber
$.customer.refunds_90d
OUTdecisionstring
decision
OUTreasonstring
reason
输入实际值
refund
0.97
129.00
1
0
AUTO_REFUND
1
未命中
0 in [3, ∞)
*实际值: refund
*实际值: 0.97
*实际值: 129.00
*实际值: 1
[3, ∞)实际值: 0
HUMAN_REVIEW
repeat_refunds
2
未命中
1 in (30, ∞)
*实际值: refund
*实际值: 0.97
*实际值: 129.00
(30, ∞)实际值: 1
*实际值: 0
HUMAN_REVIEW
outside_window
3
命中
全部条件命中
refund实际值: refund
[0.85, ∞)实际值: 0.97
(-∞, 200]实际值: 129.00
*实际值: 1
*实际值: 0
AUTO_REFUND
4
未命中
全部条件命中
refund实际值: refund
[0.85, ∞)实际值: 0.97
*实际值: 129.00
*实际值: 1
*实际值: 0
HUMAN_REVIEW
amount
5
未命中
全部条件命中
refund实际值: refund
[0.6, ∞)实际值: 0.97
*实际值: 129.00
*实际值: 1
*实际值: 0
LLM_DRAFT
medium_confidence
6
未命中
全部条件命中
*实际值: refund
*实际值: 0.97
*实际值: 129.00
*实际值: 1
*实际值: 0
HUMAN_REVIEW
low_confidence

从一个现成的例子开始

Jev 退款分流、信贷审批、优惠叠加、支付风控,四个写好的规则包,拷过去改成你们自己的政策。