背景
目前各种大语言模型蓬勃发展,与此结合的应用也层出不穷。一方面,大预言模型在某些场景下确实能带来不同程度的提效,但是另一方面,大预言模型的响应速度目前还有较大的提升空间。针对这个问题,在使用到非结构化数据例如纯文本的时候,为了提升交互体验,往往会采用流式响应的形式,例如常见的与大模型聊天时,回复都是逐渐给出。然后在需要结构化数据的时候,简单地采用流式响应并不能解决问题,常见的结构化数据都对数据结构的完整性有要求,因此能够解析流式json数据的json-brook便应运而生。
效果
快速入门
import { createJsonBrook } from "json-brook";
const jsonBrook = createJsonBrook();
const sample = `{
"string": "welcome to json brook",
"number": 20241102,
"boolean": true,
"array": ["a", "b", "c"],
"null": null
}`;
for (const char of sample) {
jsonBrook.write(char);
console.log(jsonBrook.getCurrent());
}
jsonBrook.end();
console.log(jsonBrook.getCurrent());
实现原理
实现上参考了json-to-ast,走了token解析,转ast树,最后生成结果