Python圈最重要的库刚刚发布了Alpha版,我看完设计文档感觉被刷新了认知
前两天Simon Willison发布了LLM 0.32a0,这是一个Python库,专门用来调用各种大模型的CLI工具。我之前也在用,但看完这次的设计文档,我是真的愣住了。以前的LLM,本质上就是一个逻辑:丢一段文字进去,拿一段文字出来。简单粗暴,但问题是,现在的模型早就不是这样了。现在的模型能干的事情太多了。图片输入、音频输入、视频输入、工具调用、结构化输出、推理过程、甚至直接返回图片。你怎么用一个"prompt in, text out"的接口来表达这一切?第一,模型输入变成了消息序列。不是简单的字符串,而是类似于对话历史的那种结构,user一条、assistant一条、system一条。这样做的好处是什么?你可以精确控制上下文,不用再自己拼接那个让人头秃的prompt模板。第二,模型输出变成了流式多类型片段。以前的输出就是一个字符串,现在可能是文本片段、工具调用的结果、图片、或者推理步骤的日志。应用程序可以精确地处理每一种输出类型,而不是面对一个黑箱。我跟你说,这个设计方向的转变,比很多人以为的要重要得多。为什么?因为它反映了我们对AI应用范式认知的深层变化。早期的AI应用,就是"问一句答一句"。现在的AI应用,是"多轮协作、工具增强、多模态混合"。一个好的基础设施库,应该能表达这种复杂性,而不是把它隐藏起来,然后用一堆trick去模拟。Simon Willison这次做的,就是让底层模型的能力和上层的应用逻辑之间的映射变得更干净。说实话,我自己在写一些AI应用的时候,也经常遇到这种拉扯。模型能做的和代码能表达的之间,总有一道沟。0.32a0的设计,给了一个很有价值的示范。具体怎么用我这里就不展开说了,大家可以去看官方的changelog。最后说一点,这个版本是alpha,质量可能不稳定。但如果你是做AI应用开发的,我强烈建议你关注一下这个方向。