本文主要介绍了LangChain4j中与语言模型和聊天模型相关的API。强调了ChatLanguageModel的重要性,并详细解释了如何通过ChatMessage管理多轮对话、支持多模态输入,以及如何利用Kotlin扩展进行异步处理。这些功能使得LangChain4j在构建聊天应用时更加灵活和强大。
本文主要介绍了LangChain4j中语言模型和聊天模型的使用方法,包括:
- 语言模型的两种API类型:LanguageModel和ChatLanguageModel。
- ChatLanguageModel的多轮对话和多模态支持。
- 如何通过ChatMessage管理对话状态。
- Kotlin扩展支持异步处理聊天交互。
这些内容为开发者提供了使用LangChain4j构建聊天应用的基础知识
1. 语言模型的两种API类型
LangChain4j支持两种语言模型(LLM)的API:
- LanguageModel:这种API非常简单,它接受一个字符串作为输入,并返回一个字符串作为输出。这种API正在逐渐被聊天API(第二种API类型)取代。
- ChatLanguageModel:这种API接受多个ChatMessage作为输入,并返回一个AiMessage作为输出。ChatMessage通常包含文本,但某些LLM还支持其他模态(例如图像、音频等)。例如,OpenAI的gpt-4o-mini和Google的gemini-1.5-pro就是支持这种多模态的聊天模型。
LangChain4j不再扩展对LanguageModel的支持,所有新功能都将使用ChatLanguageModel API。
其他模型类型
除了ChatLanguageModel和LanguageModel,LangChain4j还支持以下类型的模型:
- EmbeddingModel:将文本转换为嵌入向量。
- ImageModel:生成和编辑图像。
- ModerationModel:检查文本是否包含有害内容。
- ScoringModel:根据查询对多段文本进行评分或排名,用于检索增强生成(RAG)。
2. ChatLanguageModel API
ChatLanguageModel是LangChain4j中与语言模型交互的底层API,提供了最强大的功能和灵活性。它的核心方法是generate,可以接受一个或多个ChatMessage作为输入,并返回一个AiMessage。
ChatLanguageModel API的核心是generate方法,它接受一个或多个ChatMessage作为输入,并返回一个AiMessage。ChatMessage是一个基础接口,代表聊天消息,有以下几种类型:
- UserMessage:用户的消息,可以是应用的最终用户(人类)或应用本身。根据语言模型支持的模态,UserMe