# aardio 范例: 调用结构化决策模型



```aardio
//调用结构化决策模型
//使用指南: https://www.aardio.com/zh-cn/docs/library/web/rest/aiDecision/index.html

import web.rest.aiDecision;

var client = web.rest.aiDecision({ 
    key = "sk-or-v1-********"; // 省略则从环境变量 AI_DECISION_API_KEY 读取密钥。
    model = "inception/mercury-decide";
});
/*
model 指定为  `~typesafe/jev-latest`) 则仅支持英文
更多可用模型与排行请参考 https://openrouter.ai/rankings/decisions?view=day#top-models
*/

if(!#client.config.key){
    print("请先设置环境变量 AI_DECISION_API_KEY，或在客户端配置中填写自己的 key。");
    return;
}

//协议字段与类型名保持原样；问题、选项和待判断内容使用中文。
var questions = {
    department = ["choice", "这条工单应由哪个团队处理？", {
        ["财务"] = "付款、发票和退款问题";
        ["技术"] = "软件故障、服务中断和系统集成问题";
        ["销售"] = "价格咨询、套餐升级和购买意向";
        ["其他"] = "不属于以上类别或信息不足";
    }];
    urgent = ["noul", "这条工单是否需要立即处理？"];
    severity = ["score", "当前问题对业务造成的影响有多严重？", [
        "轻微影响，主要功能正常",
        "部分功能受影响，业务仍可继续",
        "核心业务完全中断，无法继续工作"
    ]];
};

var result,err,errCode = client.evaluate({
    state = { //state 可以指定字符串，也可以指定为表对象（自动转 JSON）
    	 //mercury-decide 上下文较大，可选指定知识库，注意多数决策模型上下文很小。
        // knowledge_base = $"~/docs/guide/ide/system-prompt.md";
        message = "生产系统从今天早上起完全无法登录，所有员工都无法开展工作，请立即修复！";
    };
    questions = questions;
});

if(!result){
    print("请求失败：",err,errCode);
    return;
}

print("实际模型：",result.model);
print("负责团队：",result.answers.department.choice);
print("需要立即处理的概率：",result.answers.urgent.noul);
print("业务影响评分（0～2）：",result.answers.severity.score);
print("输入、输出用量：",result.usage.input_tokens,result.usage.output_tokens);

//评分按等级数组从 0 编号，可能为小数；不等于 aardio 数组的下标。
//如需 Jev，可显式选用 ~typesafe/jev-latest；仅保留兼容，其中文支持较差。
//换模型后要重新评估业务阈值，不要把模型输出直接当作不可撤销操作的授权。

```

