LangChain源码逐行解密之LLMs(二)
18.3 base.py源码逐行剖析
现在我们要聚焦于源代码中的大语言模型部分。如图18-3所示,LangChain提供了许多语言模型的选择。 Gavin大咖微信:NLP_Matrix_Space
图18- 3 LangChain的llms目录
如图18-4所示,整个LangChain的模块化设计非常出色,你可以看到大模型(llms)、索引(indexes)、嵌入(embeddings)、评估(evaluation)等功能,这些都是非常好的模块化设计。
图18- 4 LangChain的模块化设计
Gavin大咖微信:NLP_Matrix_Space
另一方面,LangChain的结构设计也非常出色。直觉上,你会想要查看它的源代码,因为它有很多实现。当然,你的核心或出发点应该是查看base.py,只要你有基本的编程经验,就不会在这个地方遇到问题。因为base.py定义了它的协议,并提供了一些通用的操作或基本的工具类,最重要的是它提供了接口。其他模块的源代码要遵循这个接口,因为我们将模型放入LangChain或Agent的整个框架中,当框架调用你的代码时,是根据接口来调用的。
如果是一个语言模型,语言模型涉及到生命周期。当你调用语言模型时,需要进