DeepSeek Harness Hub
← 返回列表

JSON 校验修复代理PerryLink/JSON-Schema-Enforcer-Proxy

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

按 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

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群