在富文本编辑器中实现 Markdown 流式增量解析算法

thbcm阅读(229)


SSE流式输出的场景下,
LLMs模型会逐步输出
Markdown文本,在基本场景下我们只需要实现
DOM的渲染即可。然而,在富文本编辑器的场景下,这件事就变得复杂了起来,因为编辑器通常都是自行维护一套数据结构,并不可以直接接受
DOM结构,再叠加性能问题就需要考虑到下面几点:

gRPC不是银弹:为内网极致性能,如何设计自己的RPC协议?

thbcm阅读(218)

TCP拆包粘包

RPC协议是建立在传输层协议之上的应用层协议,其中传输层协议包括TCP、UDP等。TCP协议因其高可靠性和全双工的特点,成为许多应用层协议的选择,包括gRPC所使用的HTTP/2协议。

然而,TCP协议传输的是一串无边界的二进制流。由于底层网络并不了解应用层数据的具体含义,它会根据TCP缓冲区(Buffer Cache)的情况进行数据包的划分。这就可能导致一个完整的应用层数据包被TCP拆分为多个小包进行发送,或者将多个小包封装成一个大的数据包进行发送。这种现象通常被称为TCP拆包(Packet splitting)和粘包(Packet sticking)问题。


ConcurrentHashMap的Null禁令:一场针对“渣男”Null的完美防卫战

thbcm阅读(194)

这个设计决策常常让刚从HashMap转来的开发者困惑不已。为什么HashMap可以坦然接受null,而CHM却如此决绝?背后究竟隐藏着怎样的深意?今天,让我们揭开这个设计背后的思考,看看CHM如何在这场与null的较量中捍卫了并发世界的秩序。

Django事务

thbcm阅读(209)

Django 默认使用自动提交模式,每个查询都会立即提交到数据库。但你可以手动控制事务。

我的后台管理项目报Error: spawn …esbuild.exe ENOENT了

thbcm阅读(212)

对于开发er来说换设备是件比较痛苦的事,因为一堆开发环境和开发工具需要重新配置和安装,这次也不例外,大概经过小半天的时间,终于可以干活了,但是当我启动我的后台管理项目的时候报如下错:

联系我们