heyjunpenn/awesome-jev · 上手攻略

  • 仓库:heyjunpenn/awesome-jev
  • 链接:https://github.com/heyjunpenn/awesome-jev
  • 分类:AI 开发工具 · SDK 生态
  • 作者:Tom
  • 更新:2026-09-24

这是什么

awesome-jev 是一个社区维护的开源项目目录,收录了 896 个基于 TypeSafe AI Jev 决策模型构建的 SDK、工具和集成项目(统计截至 2026-09-23)。仓库本身不是一个 SDK,而是对 Jev 生态的全面测绘——覆盖 Python、TypeScript、Go、Rust、Ruby、Java、Scala、Elixir、Swift、C#、PHP、Zig 等 15+ 编程语言。

解决什么问题

Jev 是 TypeSafe AI 的旗舰决策模型,2026 年 9 月 15 日以"System One Model"定位正式出道。与传统大语言模型不同,Jev 不生成文本,而是:

  • 输入:任意非结构化状态(JSON、日志、邮件、工单、代码上下文等)
  • 输出:带校准置信度的类型化决策(不是文字解释,而是代码可直接使用的结构)

Jev 支持三类决策问题:

问题类型 作用 示例
Choice 从预设选项中选一个 "这个工单应该路由到哪个团队?"
Score 按评分规则打分 "这段代码安全性几分?"
Noul Yes/No 判断 "这个 PR 可以合并吗?"

每类回答都附带了置信度数值,代码里直接 threshold 判断即可,无需解析文字。

awesome-jev 的价值:快速找到适合自己技术栈的 Jev SDK,了解生态里有什么可用,避免重复造轮子。

快速安装

⚠️ 以下为截至 2026-09-23 的信息;API 尚在 early access 阶段,接口可能有变化

前提:需要 TypeSafe AI System One API Key(申请通道 https://docs.typesafe.ai/api)

Python

pip install jevclient        # Async Python client (★1)
# 或
pip install decido           # 支持 Jev + 自带 Playwright crawler (★1)
from jevclient import JevClient

client = JevClient(api_key="tsk-...")

# Choice 问题
result = await client.choice(
    state={"ticket": "用户无法登录,错误码 500"},
    question="应该路由到哪个团队?",
    choices=["billing", "eng-backend", "eng-frontend", "security"],
)
# result.answer = "eng-backend", result.confidence = 0.87

TypeScript / Node.js

npm install jev              # 官方 TS SDK
# 或
npm install pi-typesafe      # 带批处理的 PI extension (★26)
# 或
npm install zod-jev         # Zod 验证 + Jev 语义校验 (★7)
import { Jev } from 'jev';

const jev = new Jev({ apiKey: process.env.TYPESAFE_API_KEY });

const { answer, confidence } = await jev.noul({
  state: "Log: ERROR 500 at /api/auth 2min ago",
  question: "Should we page the on-call engineer?",
  threshold: 0.7,
});
// answer = true, confidence = 0.91 → 触发告警

Go

go get github.com/mattn/go-jev       # ★13, 最活跃的 Go 客户端
# 或
go get github.com/AbdelStark/s1-rs   # Rust 版本
import "github.com/mattn/go-jev"

client := jev.New(os.Getenv("TYPESAFE_API_KEY"))
result, err := client.Choice(
    context.Background(),
    "Order #12345 status: shipped, tracking not updated in 72h",
    "Should we issue a refund proactively?",
    []string{"refund_now", "wait_customer", "contact_carrier"},
)
// result.Answer == "refund_now"

其他语言速查

语言 推荐 SDK 安装
Rust typesafe-ai (gilljon/typesafe-ai-rs) cargo add typesafe-ai
Java spring-ai-typesafe (Spring AI 官方) Maven: spring-ai-typesafe
Scala openai-scala-client (★249, 最高星) libraryDependencies += "io.cequence" %% "openai-scala-client"
Ruby typesafe-sdk (joshmn/typesafe-sdk) gem install typesafe-sdk
Swift TypeSafe Swift SDK (krzyzanowskim) SwiftPM
C# typesafeai-dotnet-sdk dotnet add package TypeSafeAI.DotNet
PHP typesafe-sdk-php (Butochnikov) composer require typesafe/typesafe-sdk-php
Elixir typesafe_sdk (nshkrdotcom) {:typesafe_sdk, "~> 0.1"}

核心用法

决策问题三剑客

# 1) Choice — 从选项中挑
result = await client.choice(
    state={"pr_size": "500 lines", "test_coverage": "60%", "reviewers": 2},
    question="Should this PR block the release?",
    choices=["block", "warn", "approve"],
)

# 2) Score — 打分
result = await client.score(
    state={"code": "...", "language": "python"},
    question="Rate security risk on a 1-10 scale",
    rubric={"1": "no risk", "5": "moderate", "10": "critical"},
)

# 3) Noul — Yes/No
result = await client.noul(
    state={"error_log": "..."},
    question="Is this an infrastructure incident requiring escalation?",
)

置信度门控

THRESHOLD = 0.8

result = await client.noul(state=data, question="Is this spam?")
if result.confidence < THRESHOLD:
    # 置信度不够,交给人工复核
    send_to_human_review(result)
else:
    # 置信度足够,自动化处理
    auto_action(result.answer)

自带 Provider(不依赖 Jev)

# decido 可以接 Jev 也能接其他 provider
from decido import DecisionEngine

engine = DecisionEngine(provider="jev", api_key="tsk-...")
# 或切换本地模型
engine = DecisionEngine(provider="local-llm")

典型适用场景

场景 用法
工单/Issue 路由 Choice 决策:路由到哪个团队或负责人
代码安全审查 Noul 判断:是否含硬编码密钥、SQL 注入风险
PR 合规检查 Score 打分:按 rubric 评估可合并性
客服工单分类 Choice:从 billing/technical/refund 等选项判断
告警压缩 Noul:海量监控告警,只对真正的故障触发通知
数据质量判断 Score:打分数据完整度,过低则打回

坑与注意

⚠️ API 尚在 Early Access:截至 2026-09-23,TypeSafe System One API 仍是 early access 阶段。部分 SDK 版本可能与官方 API 版本不同步,使用前建议先跑官方 examples。

⚠️ 密钥管理:不要把 TYPESAFE_API_KEY 硬编码进代码,推荐用环境变量或 .env 文件(已有 id_rsa / .env / credentials.json 等路径的写入拦截,见 orchestrkit 仓库的 hook blocklist)。

⚠️ 置信度阈值设置:官方建议 0.8 为默认阈值,但不同场景的最优阈值不同——建议先用测试集标定,再写入生产。

⚠️ Choice 选项数量:选项越多,置信度可能越分散。超过 10 个选项时建议分层(先大类,再细类)。

⚠️ Noul vs Score 的选择:Yes/No 够用就用 Noul,比 Score 响应更快(延迟更低);只有需要解释性时用 Score。

⚠️ 没有文字解释:Jev 不返回自然语言推理过程,只返回决策 + 置信度。如需解释,需要配合一个普通 LLM 基于结果再生成。

⚠️ 生态新鲜度:896 个项目绝大多数是 2026 年 9 月之后创建的,质量和维护状态参差不齐。优先选 ★ 高的(openai-scala-client ★249、advocaat ★85、go-jev ★13)。

与同类对比

方案 类型 延迟 成本 输出 适用场景
Jev(TypeSafe) 专用决策模型 70–500ms 极低 类型化决策+置信度 自动化判断、工单路由、告警压缩
普通 LLM(Claude/GPT) 通用生成模型 秒级 文字 需要解释、复杂推理、多步骤生成
LangChain / LlamaIndex LLM 编排框架 取决于 LLM 文字 文档检索、RAG、知识问答
规则引擎(Drools) 确定性规则 毫秒 极低 确定性 规则固定、不可接受概率误差

Jev 的核心差异:不是"生成答案",而是"执行决策函数"。LLM 在生成文字,Jev 在做判断——这个设计使其延迟比 LLMs 低 40–200 倍,成本也相应极低。

一句话推荐结论

Jev 生态爆发中,awesome-jev 是当前最全的索引入口——如果你要做工单路由、告警压缩、PR 合规判断等"非生成式 AI 决策",Jev 的速度与成本优势明显,awesome-jev 帮你快速找到自己语言的 SDK 上车。⚠️ API 早期阶段,生产使用前请确认官方稳定性承诺。