聊天和语言模型
备注
本页描述的是低级 LLM API。 有关高级 LLM API,请参阅 AI 服务。
备注
所有支持的 LLM 可以在这里找到。
LLM 目前有两种 API 类型:
LanguageModel
。它们的 API 非常简单 - 接受String
作为输入并返回String
作为输出。 这种 API 现在正在被聊天 API(第二种 API 类型)所取代。ChatLanguageModel
。这些接受多个ChatMessage
作为输入并返回单个AiMessage
作为输出。ChatMessage
通常包含文本,但某些 LLM 也支持其他模态(例如,图像、音频等)。 这类聊天模型的例子包括 OpenAI 的gpt-4o-mini
和 Google 的gemini-1.5-pro
。
LangChain4j 不会再扩展对 LanguageModel
的支持,
因此在所有新功能中,我们将使用 ChatLanguageModel
API。
ChatLanguageModel
是 LangChain4j 中与 LLM 交互的低级 API,提供最大的能力和灵活性。
还有一个高级 API(AI 服务),我们将在介绍完基础知识后再讨论。
除了 ChatLanguageModel
和 LanguageModel
外,LangChain4j 还支持以下类型的模型:
EmbeddingModel
- 这种模型可以将文本转换为Embedding
。ImageModel
- 这种模型可以生成和编辑Image
。ModerationModel
- 这种模型可以检查文本是否包含有害内容。ScoringModel
- 这种模型可以对查询的多个文本片段进行评分(或排名), 本质上确定每个文本片段与查询的相关性。这对 RAG 很有用。 这些将在后面介绍。
现在,让我们仔细看看 ChatLanguageModel
API。
public interface ChatLanguageModel {
String chat(String userMessage);
...
}
如您所见,有一个简单的 chat
方法,它接受 String
作为输入并返回 String
作为输出,类似于 LanguageModel
。
这只是一个便捷方法,让您可以快速轻松地进行试验,而无需将 String
包装在 UserMessage
中。
以下是其他聊天 API 方法:
...
ChatResponse chat(ChatMessage... messages);
ChatResponse chat(List<ChatMessage> messages);
...