SuperAPI AI 工具集

atai-newton-omega-nvidia-nemotron

智能体与模型

查看项目

更新于 10-21 16:20

技能介绍

用途

本技能在已有的 Omega + KNN 流水线上增加一个解释层。Omega 将传感器窗口转换为嵌入向量,客户端 KNN 将嵌入向量与 n-shot 库比对后给出判定(健康/故障、正常/攻击等)。判定虽然准确,但不会说明原因。本技能引入 NVIDIA Nemotron,当 Omega 标记异常时,Nemotron 读取判定结果和窗口统计信息,生成面向操作员的文字说明:发生了什么变化、可能原因、需要检查什么。

主要能力

  • 将 Omega 的判定结果与 KNN 投票结果、窗口统计信息(均值/最小值/最大值、RMS、峰值、峰度等)以及参考基线或健康同类数据组合,发送给 NVIDIA Nemotron。
  • 通过 NVIDIA 托管 API(https://integrate.api.nvidia.com/v1/chat/completions)调用 Nemotron,接口兼容 OpenAI 客户端。
  • 默认模型为 nvidia/nemotron-3-super-120b-a12b,可通过 NEMOTRON_MODEL 环境变量覆盖。
  • 通过 chat_template_kwargs: {"enable_thinking": false} 关闭推理轨迹(系统提示中的 /no_think 会被忽略)。
  • 输出固定 JSON 结构(如 observation、likely_cause、checks),并在代码中进行字段校验和领域规则检查。
  • 支持按异常签名缓存结果,避免重复调用并降低延迟。
  • 支持异步/线程池方式调用,不阻塞传感循环。

使用方式

  1. 创建 NVIDIA API 密钥:在 https://build.nvidia.com/settings/api-keys 创建(免费 NVIDIA Developer Program)。注意:用于拉取 NVIDIA 容器的 NGC 密钥也以 nvapi- 开头,但调用托管模型会返回 403。
  2. 本地安装:
    python3 -m venv .venv && source .venv/bin/activate
    pip install -r skills/atai-newton-omega-nvidia-nemotron/references/requirements.txt
    cp skills/atai-newton-omega-nvidia-nemotron/references/.env.example .env
    # 填写 ATAI_API_KEY、ATAI_API_ENDPOINT、NVIDIA_API_KEY
    cd skills/atai-newton-omega-nvidia-nemotron/references
    python check_nemotron.py   # 密钥 + 模型预检
    python explain_knn.py      # 在轴承样本上运行 Omega + KNN + Nemotron 简报
    
  3. 调用示例:
    POST https://integrate.api.nvidia.com/v1/chat/completions
    Authorization: Bearer $NVIDIA_API_KEY
    Content-Type: application/json
    {
      "model": "nvidia/nemotron-3-super-120b-a12b",
      "messages": [{"role": "system", "content": "..."}, {"role": "user", "content": "..."}],
      "temperature": 0.2,
      "max_tokens": 800,
      "chat_template_kwargs": {"enable_thinking": false}
    }
    

适用场景

  • 已有 Omega + KNN 流水线并需要生成面向操作员的文字说明(故障简报、建议操作、告警摘要)。
  • 用户明确希望使用 NVIDIA Nemotron(托管于 build.nvidia.com)作为推理模型。
  • 资产具有已知结构(阶段、线路、拓扑),需要生成操作卡片(如 SWaT 演示)。
  • 存在健康同类或基线可供比较,需要生成故障简报(如风力涡轮机演示)。

限制

  • 不适用于需要 Omega 调用、窗口化或 KNN 库的场景,这些属于 atai-newton-omega-model(以及之前的 atai-newton-omega-model-data-prep)。本技能假设这些已正常工作。
  • 不适用于希望在 /query 上使用 Newton 自身推理模型的场景,应使用 atai-newton-fusion-model。
  • 不要将嵌入向量发送给 Nemotron,语言模型无法理解 768 维向量。
  • 模型可能被退役,例如 nvidia/nvidia-nemotron-nano-9b-v2 自 2026-08-26 起返回 410 Gone。部分列出的模型对特定账户返回 404。构建前应运行 check_nemotron.py。
  • 免费层约每分钟 40 次请求,适用于开发和原型。
  • 诊断信息不能证明密钥有效:GET /v1/models 无需密钥,退役模型在检查密钥前就返回 410。只有成功的聊天调用才能证明密钥有效。
  • 状态码含义:401/403 密钥错误或类型错误(NGC 密钥);404 模型对账户不可用;410 模型已退役;429 速率限制。
  • Nemotron 输出应视为不可信输入,必须经过校验后再展示。
  • 密钥仅限服务端使用,切勿将 NVIDIA_API_KEY 或 ATAI_API_KEY 发送到浏览器。

提示词与校验要点

  • 要求仅返回固定结构的 JSON,无散文或代码围栏;解析时仍应提取第一个 {…} 或 […]。
  • 要求引用输入中的数值,并说明“为便于阅读取整”。
  • likely_cause 应表述为假设(“与……一致”/“提示……”),UI 应标注为建议。
  • 避免仅复述判定结果。
  • 可提供领域阅读提示(如“桨距接近 90° = 叶片顺桨”),但不要提示预期的具体故障。
  • 只提供存在的名称列表,并检查输出是否引用了列表外的名称。
  • 校验形状(必填字段非空、列表长度上限)和领域规则(如 SWaT 演示中每张卡片的 origin/direction 必须映射到预期目标阶段)。
  • 失败时显示“Nemotron 不可用”,并保持 Omega 判定可见。判定不依赖 Nemotron。

缓存与延迟

  • 按异常签名缓存(如标记的阶段集合 "P2,P3" 或 turbine + window_start),重复请求立即返回。
  • 不要阻塞传感循环,将 Nemotron 调用提交到线程池/异步任务,结果到达后附加到告警。

文件布局

skills/atai-newton-omega-nvidia-nemotron/
├── SKILL.md
├── references/
│   ├── _common.py            ← Omega embed helpers + Nemotron chat (stdlib), parse/validate, window stats, brief
│   ├── check_nemotron.py     ← preflight: list models, one call, latency + reasoning tokens, error hints
│   ├── explain_knn.py        ← Omega + KNN + Nemotron brief on the bearing sample
│   ├── requirements.txt
│   ├── .env.example
│   └── sample_data/
│       ├── bearing_healthy.csv
│       ├── bearing_degraded.csv
│       ├── bearing_incoming.csv
│       └── README.md
└── tests/
    └── test_references.py    ← network-free unit tests (python -m pytest)

常见陷阱

  • 将嵌入向量发送给 LLM。
  • 使用 NGC 密钥而非 build.nvidia.com 密钥。
  • 在 Nemotron 3 上使用 /no_think(会被忽略)。
  • 硬编码模型 ID 导致退役后失效。
  • 没有参考基线或同类数据,简报只会复述窗口。
  • 渲染未校验的输出。
  • 在 LLM 上阻塞传感循环。