← 返回列表
未验证
按 schema 校验并自动重试修复 AI 生成的 JSON
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/22 · 已提供中文文档
A proxy tool that validates and repairs AI-generated JSON against predefined schemas, ensuring reliable structured output from language models. 一个自动修复 AI 生成的 JSON 格式错误的工具,用于验证和修复 AI 生成的 JSON,确保其符合预定义的 schema,从而获得可靠的结构化输出。
综合分
28.2
GitHub 分
28.2
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add PerryLink/JSON-Schema-Enforcer-Proxy该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
JSON-Schema-Enforcer-Proxy
自动校验并修复 AI 生成的 JSON,使其符合预定义的 schema,从而获得可靠的结构化输出。
已移植至 dsh-translate —— 属于 PerryLink DSH 插件家族。
License
English · 简体中文
功能简介
JSON-Schema-Enforcer-Proxy 让语言模型生成结构化数据,依据 schema 校验响应,失败时自动重试,直到输出合法为止。schema 既可以是 Pydantic 模型,也可以是标准 JSON Schema 文件。
核心特性
- 自动校验与修复 —— 依据 JSON schema 校验每次响应,失败时自动重试
- Pydantic 集成 —— 同时支持 Pydantic 模型与标准 JSON schema
- 灵活的 schema 加载 —— 从 Python 类或 JSON 文件加载 schema
- 可配置重试 —— 设置验证的最大重试次数
- Rich CLI 界面 —— 带进度指示器的终端输出
快速开始
pip install json-schema-enforcer-proxy
基本使用
使用 Pydantic 模型
json-schema-enforcer-proxy enforce \
--schema user.py:User \
--prompt "Generate user data with name and email" \
--api-key YOUR_API_KEY
使用 JSON Schema 文件
json-schema-enforcer-proxy enforce \
--schema schema.json \
--prompt "Generate product information" \
--api-key YOUR_API_KEY
保存输出到文件
json-schema-enforcer-proxy enforce \
--schema user.py:User \
--prompt "Generate user data" \
--output result.json
环境变量
export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="https://api.openai.com/v1" # 可选
export OPENAI_MODEL="gpt-4" # 可选
使用指南
定义 schema
使用 Pydantic:
from pydantic import BaseModel, EmailStr
class User(BaseModel):
name: str
email: EmailStr
age: int
使用 JSON Schema:
{
"type": "object",
"properties": {
"name": {"type": "string"},
"email": {"type": "string", "format": "email"},
"age": {"type": "integer"}
},
"required": ["name", "email", "age"]
}
CLI 选项
- --schema —— schema 路径(如 user.py:User 或 schema.json)
- --prompt —— AI 生成的提示词
- --api-key —— OpenAI API Key(或设置 OPENAI_API_KEY)
- --base-url —— API 基础 URL(默认 OpenAI)
- --model —— 模型名称(默认 gpt-4)
- --max-retries —— 最大重试次数(默认 3)
- --output —— 输出文件路径
Python API
from json_schema_enforcer_proxy import SchemaEnforcer, AIClient, load_schema
schema = load_schema("user.py:User") # 或 "schema.json"
client = AIClient(api_key="...", base_url="https://api.openai.com/v1", model="gpt-4")
enforcer = SchemaEnforcer(ai_client=client, max_retries=3)
result = enforcer.enforce(schema=schema, prompt="Generate user data")
print(result.success, result.attempts, result.data)
技术栈
- Python 3.9+ —— 核心语言
- Pydantic 2.6+ —— schema 验证
- Typer —— CLI 框架
- Rich —— 终端格式化
- OpenAI API —— AI 模型集成
开发
poetry install
poetry run pytest
poetry run ruff check .
相关项目
- dsh-translate —— 本项目被移植进的 DSH 插件
- PerryLink —— PerryLink DSH 插件家族
贡献
欢迎贡献!请查看 CONTRIBUTING.md 了解指南。
许可证
Apache License 2.0 © 2026 PerryLink扫码进群