模型
信息
模型是LangChain的核心组成部分。LangChain不是模型的提供商,而是提供了一个标准接口,通过该接口可以与各种语言模型进行交互。 LangChain支持基于文本的大规模语言模型(LLMs)、聊天模型和文本嵌入模型。
LLMs使用基于文本的输入和输出,而聊天模型则使用消息形式的输入和输出。
注意: 聊天模型API相对较新,我们仍在确定正确的抽象方法。如果您有任何反馈,请告诉我们!
所有模型
🗃️ 大型语言模型
1 个项目
🗃️ 聊天模型
1 个项目
🗃️ 嵌入向量
1 个项目
高级内容
此部分面向希望深入了解LangChain工作原理的技术用户。如果您是初学者,可以跳过本节。
所有LLMs和聊天模型都实现了llms.Model
接口。这使我们能够轻松地在链中替换模型而不更改其余代码。
// Model 是所有语言模型必须实现的接口。
type Model interface {
// GenerateContent 要求模型根据消息序列生成内容。这是支持类似聊天交互的多模态LLMs最通用的接口。
GenerateContent(ctx context.Context, messages []MessageContent, options ...CallOption) (*ContentResponse, error)
// Call 是一个简化了的仅文本模型接口,从单个字符串提示中生成单个字符串响应。
// 已废弃:请使用 GenerateContent 替代。
Call(ctx context.Context, prompt string, options ...CallOption) (string, error)
}
llms.Model
接口通过 GenerateContent
提供现代多模态支持,并通过已弃用的 Call
方法提供仅文本的支持。
注意:llms.LLM
是一个为向后兼容性而设的别名,用于 llms.Model
:
// LLM 是 model 的别名,为了向后兼容。
// 已废弃:此别名将来可能会被移除,请使用 Model 替代。
type LLM = Model
无论是仅文本还是基于聊天的所有语言模型都实现了相同的 llms.Model
接口。该接口旨在处理简单的文本提示和复杂的多模态消息序列。