LiteChain 已更名为 LangStream,详情见 issue #4。LangStream 是构建 LLM 应用的轻量级替代方案,与 LangChain 不同,它不提供大量功能和类,而是专注于一个小型核心,易于学习、适配、文档完善、完全类型化且真正可组合,以 Stream(流)而非 Chain(链)作为构建块。
用途
LangStream 用于构建 LLM 应用,通过组合 Stream 来连接不同部分,如 LLM、输出解析器等。它旨在简化 LLM 应用中的管道和连接,让开发者专注于提示工程等核心部分。
主要能力
- Stream 构建块:LLM 是 Stream,输出解析器是 Stream,一组 Stream 可以组合成另一个 Stream。
- 组合函数:提供
and_then、map、collect、join、gather等函数,用于组合 Stream。 - 类型签名:Stream 接受类型签名,如
EmojiStream的类型为[str, OpenAIChatDelta],表示输入和输出类型。类型签名有助于预防错误和调试。 - 异步流:所有 Stream 都是使用 Python 的
AsyncGenerator类的异步流。 - 调试友好:最终流中始终可以访问整个流中经过的所有内容,提供
debug函数和output.final属性。 - 提示外部化:不将提示隐藏在代理中,鼓励构建自己的代理以自定义提示。
- 自带集成:提供 OpenAI 和 GPT4All 等集成,但保持薄层,尽可能接近原始 API。
使用方式
通过组合 Stream 来构建应用。例如,创建一个 GPT4 Stream,将用户消息附加 ". Reply in emojis" 构建提示,使用 OpenAI 聊天结构和零温度。然后使用异步循环遍历每个 token 输出。使用 and_then 等函数连接两个 Stream。
适用场景
适用于需要构建 LLM 应用、希望有轻量级、可组合、类型安全的框架的开发者。特别适合那些希望自定义提示和代理,而不被框架隐藏细节的场景。
限制
- 项目非常新,处于快速发展领域,文档和指南内容需要贡献。
- 不提供大量功能和类,可能不适合需要丰富内置功能的用户。
- 集成较少,目前提供 OpenAI 和 GPT4All 等,但鼓励用户自行添加集成。
- 需要 Python 异步编程知识。
更多信息请参考文档:Getting started、Detailed guides、How-to examples。加入 Discord 社区获取支持。