[![贡献者][contributors-shield]][contributors-url] [![分支][forks-shield]][forks-url] [![星标][stars-shield]][stars-url] [![问题][issues-shield]][issues-url] [![GPL 许可证][license-shield]][license-url]
🔧 修复 JSON!解决来自 LLM 的 JSON 异常问题
欢迎使用 json-repair,这是您解决可能影响大型语言模型(LLM)处理的棘手 JSON 异常的首选解决方案。我们的工具包旨在成为所有 JSON 修复需求的瑞士军刀。
🎯 为什么选择 JSON 修复?
- 🏎️ GO 兼容性:我们的库确保 Go 开发者获得无缝体验,具有出色的兼容性。
- 🔗 零依赖:我们精心打造了一个没有外部依赖的工具,保持其精简高效。
- 📚 丰富的测试用例:受益于全面的测试用例套件,确保可靠性和准确性。
- 🤖 自动检测和修复:智能识别并纠正各种 JSON 错误,从语法到结构问题。
- 📐 终端 CLI 支持:该功能还可以在命令行中使用,并可以与命令管道链接。
- ⚙️ 无需担心错误:json-repair 始终给出字符串结果。
- 🌐 开源:加入充满活力的开发者社区,为工具包的持续发展做出贡献。
🔍 支持修复的 LLM JSON 输出异常
- 单引号
"
- 换行符
\n
- 格式不正确的 JSON 字符串
{"key": TRUE, "key2": FALSE, "key3": Null
- 混合引号的字符串
{'key': 'string', 'key2': false, \"key3\": null, \"key4\": unquoted}
- 未闭合的数组
[1, 2, 3, 4
- 未闭合的数组对象
{"employees":["John", "Anna",
- 独立的左方括号
[
- 独立的右方括号
]
- 带有额外换行的数组
[[1\n\n]
- 不正确的键值对
{foo: [}
- 正确的 JSON 字符串
{"text": "The quick brown fox won\'t jump"}
- 不正确的键值对
{"value_1": "value_2": "data"}
- 带有注释的 JSON 字符串
{"value_1": true, COMMENT "value_2": "data"}
- 带有前导空格的 JSON 字符串
- { "test_key": ["test_value", "test_value2"] }
- 包含链接的字符串
{ "content": "[LINK](https://github.com/RealAlexandreAI/json-repair/blob/main/"https://google.com"" }
- 未闭合的链接字符串
{ "content": "[LINK](" }
- 未闭合的链接和额外键字符串
{ "content": "[LINK](", "key": true }
- 不正确的键值对
{"key":"",}
- 等等。
(返回顶部)
🏁 入门指南
要将 JSON 修复添加到您的 Go 项目中,请使用以下命令:
go get github.com/RealAlexandreAI/json-repair
使用方法
package main
import (
"github.com/RealAlexandreAI/json-repair"
)
func main() {
// 来自 LLM 的损坏 JSON 字符串
in := "```json {'employees':['John', 'Anna', ```"
jsonrepair.RepairJSON(in)
// 输出: {"employees":["John","Anna"]}
}
此外,还有
MustRepairJSON
用于不适合错误处理的场景,如管道和受信任的环境
(返回顶部)
终端 CLI
brew install realalexandreai/tap-jsonrepair/jsonrepair
# 从原始字符串
jsonrepair -i "{'employees':['John', 'Anna', "
# 输出: {"employees":["John", "Anna", "Peter"]}
# 从文件
jsonrepair -f <json文件>.json
你也可以从Release下载二进制文件,请参考Releases。
路线图
- 从Python转换项目
- 最低Go版本要求
- 覆盖测试用例
- 终端CLI支持
- 工作流和GitHub Action
- 添加Homebrew tap
- 支持全角字符检测
查看未解决的问题以获取建议功能的完整列表(和已知问题)。
(返回顶部)
贡献
贡献是使开源社区成为一个如此令人惊叹的学习、激励和创造的地方的原因。我们非常感谢您做出的任何贡献。
如果您有使这个项目更好的建议,请fork该仓库并创建一个pull request。您也可以简单地打开一个带有"enhancement"标签的issue。 别忘了给项目点个star!再次感谢!
- Fork项目
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature
) - 提交您的更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 打开一个Pull Request
(返回顶部)
相关项目
- python json_repair - json-repair的灵感来源。
许可证
根据GPLv3许可证分发。有关更多信息,请参阅LICENSE
。
(返回顶部)
联系方式
RealAlexandreAI - @RealAlexandreAI
项目链接:https://github.com/RealAlexandreAI/json-repair
(返回顶部)