json-brook 解析流式json数据

278 阅读1分钟

背景

目前各种大语言模型蓬勃发展,与此结合的应用也层出不穷。一方面,大预言模型在某些场景下确实能带来不同程度的提效,但是另一方面,大预言模型的响应速度目前还有较大的提升空间。针对这个问题,在使用到非结构化数据例如纯文本的时候,为了提升交互体验,往往会采用流式响应的形式,例如常见的与大模型聊天时,回复都是逐渐给出。然后在需要结构化数据的时候,简单地采用流式响应并不能解决问题,常见的结构化数据都对数据结构的完整性有要求,因此能够解析流式json数据的json-brook便应运而生。

效果

Main.gif

快速入门

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树,最后生成结果

更多