跳到主要内容

模型

模型是LangChain的核心组成部分。LangChain不是模型的提供商,而是提供了一个标准接口,通过该接口可以与各种语言模型进行交互。 LangChain支持基于文本的大规模语言模型(LLMs)、聊天模型和文本嵌入模型。

LLMs使用基于文本的输入和输出,而聊天模型则使用消息形式的输入和输出。

注意: 聊天模型API相对较新,我们仍在确定正确的抽象方法。如果您有任何反馈,请告诉我们!

所有模型

高级内容

此部分面向希望深入了解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 接口。该接口旨在处理简单的文本提示和复杂的多模态消息序列。