问题提出 最近在实现一个转发大模型调用请求的中转功能,因为现在的大模型都支持流式与非流式调用,所以我在实现的时候自然而然的想到了要不要区分两种调用方式,使用不同的代码逻辑。一开始写的时候分开了两个调用方式来写,后来发现这两种方式对于服务端来说实际没有区别,重点在于客户端的使用。 原理探寻 首先看一下两种调用方式实际返回的数据。 ==== 非流式调用…
总结 对于同步和异步来说,最简单的说法就是:同步会按部就班的执行代码,一句一句的执行代码,所以遇到耗时操作会直接出现程序卡住的情况;异步会在异步语句时把操作交给别人(线程池、回调、消息队列)去干。 而异步和线程调度本质上并无关联,只是异步编程可能会用到线程调度(异步编程也可以用事件循环实现)。至于我们写的程序,如果说没有使用异步操作编写代码,程序卡…