大模型 json格式 修复

随着大模型应用越来越多,大模型返回的json应用也增多,这些json 时不时会出现破损。 如何修复json串,成为大模型应用要处理的一个问题。

工具

在网上看到这库,试了下效果不错。这是个js库,用typescript写的,可以前端调用;也可以用pythonmonkey 在python 中调用。其原理是BNF解析器,使用解析器的规则修复json格式问题。

安装

js 复制代码
$ npm install jsonrepair

import { jsonrepair } from 'jsonrepair'
try {
const json = "{name: 'John'}"
const repaired = jsonrepair(json)
console.log(repaired) // '{"name": "John"}'
} catch (err) {
console.error(err)
}
python 复制代码
pip install pythonmonkey

import pythonmonkey
jsonrepair = pythonmonkey.require('jsonrepair').jsonrepair
json = "[1,2,3,"
repaired = jsonrepair(json)
print(repaired) 
# [1,2,3]

能修复哪些问题

  • 在缺少的键周围添加引号
  • 添加缺少的转义字符
  • 添加缺失的逗号
  • 添加缺失的右括号
  • 修复截断的 JSON
  • 将单引号替换为双引号
  • "..." 用常规双引号替换特殊引号字符
  • 用常规空格替换特殊空格字符
  • 将 Python 常量NoneTrueFalse替换为nulltruefalse
  • 删除尾随逗号
  • 删除类似/* ... */和的评论// ...
  • 带围栏的代码块,如 ```json和```````````
  • 删除数组和对象中的省略号,例如[1, 2, 3, ...]
  • 删除 JSONP 符号,例如callback({ ... })
  • 从转义字符串中去除转义字符,例如{"stringified": "content"}
  • 删除 MongoDB 数据类型,如NumberLong(2)ISODate("2012-12-19T06:01:17.171Z")
  • 连接字符串,例如"long text" + "more text on next line"
  • 将换行符分隔的 JSON 转换为有效的 JSON 数组,例如:
json 复制代码
{ "id": 1, "name": "John" }
{ "id": 2, "name": "Sarah" } 

网上demo

我测试的情况如下,// 注释,另起一行就可以修复,在同一行的就处理不了。

arduino 复制代码
{
  'firstName': 'John'
  lastName: "Smith"
  fullName: John Smith,
  // 这是一个另  
    scores: [ 7.8 6.3 7.3, ],
  "about": "John loves a challenge, "
// 这是一个另 }

处理有问题:

arduino 复制代码
{
  'firstName': 'John'
  lastName: "Smith"
  fullName: John Smith, // 这是一个另  
    scores: [ 7.8 6.3 7.3, ],
  "about": "John loves a challenge, "
// 这是一个另 }

类似库

相关推荐
wangruofeng12 小时前
opencodex 解锁 Codex 任意模型,一个本地代理打通 Claude/Kimi/GLM/DeepSeek
llm·github·openai
wangruofeng12 小时前
姚顺雨长谈:在 Anthropic 和 Gemini 训练模型,英雄主义已经过时
llm·aigc
赵康16 小时前
AI 写代码之后,Code Review 会议怎么开
ai·llm·skill
莫逸风17 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
CedarQR21 小时前
万字长文:从零在 RK3588 上部署 PaddleSpeech 中文 TTS 全流程(FastSpeech2 + HiFiGAN)
开发语言·c++·嵌入式硬件·ubuntu·json
谢白羽1 天前
vllm源码剖析14-vLLM 分布式推理-专家并行EP
笔记·分布式·llm·论文·vllm
Token炼金师1 天前
框架的擂台:LangChain、LlamaIndex、Dify、AutoGen 与 LangGraph —— 应用框架选型五局
人工智能·深度学习·llm
wenb1n1 天前
【 LLM】Agent Planning 完全指南:8 种纯 LLM 范式 + 8 种混合规划模式详解(一)
llm
bonechips1 天前
LLM 的"严谨"与"胡说":temperature、Top K + LangChain 工作流
langchain·llm
带刺的坐椅1 天前
Solon AI:Tool 与 Talent 怎么选?从函数到领域专家
java·ai·llm·agent·solon