jevper
Python 包,实现了 TypeSafe AI 的 Jev(System One)有线格式协议
jevper 是一个 Python 包,实现了 TypeSafe AI 的 Jev(System One)有线格式协议,可以在任何兼容 OpenAI API 的 LLM 后端上使用 Jev 接口进行类型安全的分类推理。项目不依赖 TypeSafe 官方 SDK,也不调用其托管 API,纯本地实现,兼容 llama.cpp、vLLM、SGLang 和 LM Studio 等自托管模型服务器。
项目简介
jevper 是 TypeSafe AI Jev 接口的独立实现,与 TypeSafe 公司没有附属关系。它将 Jev 特有的状态输入、类型化问题输出范式(noul / choice / score)适配到任意 OpenAI 兼容的大语言模型上。开发者只需准备状态描述和分类标准,jevper 自动处理提示词构建、响应解析和概率提取,无需自行维护复杂的提示工程。
核心功能
- Jev 接口抽象:在任意 OpenAI 兼容后端上使用统一的 system_one 方法进行分类
- 自托管支持:无缝切换到本地 llama.cpp、vLLM、SGLang 或 LM Studio 服务器
- 概率输出:每个分类标签返回置信度概率和置信度数值
- 多解析策略:支持 logprobs、GBNF 语法约束、JSON Schema 等多种解析方法
- 自动模型适配:自动检测模型类型(推理模型 vs 普通模型)并选择最优解析方式
技术实现
jevper 的核心流程分为四个阶段:构建部件组装、解析方法选择、响应解析和答案输出。在构建阶段,system_one 方法将状态描述、few-shot 示例、问题块和状态轮次组装为完整的提示词。解析方法默认为 auto,会自动判断模型类型——推理模型(如 gpt-5.6-terra)无 logprobs,返回结构化 JSON,此时使用 JSON Schema 解析;非推理模型则请求 logprobs 并对首个标签 token 做 softmax 得到概率分布。jevper 的客户端对象采用鸭式类型设计,任何暴露 responses.create 或 chat.completions.create 方法的对象均可作为后端传入,包括本地运行的 ollama 或 llama.cpp 服务器。项目依赖仅为 pydantic>=2.7,零额外运行时依赖。
快速上手
第一步:安装 jevper:pip install jevper 第二步:准备 OpenAI 兼容客户端(可传入本地模型服务器) 第三步:创建 SystemOneClient 实例并指定模型 第四步:调用 system_one 方法,传入 state 和 questions 字典 第五步:从返回的 answers 中读取分类结果、概率和置信度
适用人群
需要在大语言模型上进行结构化分类任务的 Python 开发者、希望使用本地模型保护数据隐私的团队、探索 Agent 系统中类型化推理能力的 AI 应用开发者,以及需要在分类任务中获取模型置信度信息的机器学习工程师。
项目同时提供 Agent Skill,可通过 npx skills add zhulinchng/jevper-skill 安装后在 Agent 环境中直接使用。
评论与建议
登录 后参与评论或提建议