第1章:LangChain4j的聊天与语言模型
- 软件开发
- 2025-08-22 13:15:02

LangChain4J官方文档翻译与解析 目标文档路径: docs.langchain4j.dev/tutorials/chat-and-language-models/
语言模型的两种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是LangChain4j中与LLM交互的低级API,提供了最大的灵活性和功能。此外,LangChain4j还支持其他类型的模型,例如: EmbeddingModel:将文本转换为嵌入向量。 ImageModel:生成和编辑图像。 ModerationModel:检查文本是否包含有害内容。 ScoringModel:对多段文本进行评分或排名,以确定它们与查询的相关性。这对于检索增强型生成(RAG)非常有用。ChatLanguageModel API ChatLanguageModel API的核心是generate方法,它接受一个或多个ChatMessage作为输入,并返回一个AiMessage。ChatMessage是一个基础接口,代表聊天消息,有以下几种类型: UserMessage:用户发送的消息,可以是文本或其他模态内容。 AiMessage:AI生成的消息,通常是对UserMessage的回应。 ToolExecutionResultMessage:工具执行请求的结果。 SystemMessage:系统消息,通常由开发者定义,用于指定LLM在对话中的角色、行为风格等。LLM会更关注SystemMessage,因此不要让用户随意修改或注入内容。多轮对话的管理 由于LLM本身是无状态的,因此需要开发者手动管理对话状态。例如,一个简单的多轮对话如下: 用户:你好,我叫Klaus。 AI:你好Klaus,我能帮你什么? 用户:我的名字是什么? AI:Klaus。 在ChatLanguageModel中,需要将之前的对话消息传递给generate方法,以维护对话上下文。例如: java复制 UserMessage firstUserMessage = UserMessage.from(“你好,我叫Klaus”); AiMessage firstAiMessage = model.generate(firstUserMessage).content(); UserMessage secondUserMessage = UserMessage.from(“我的名字是什么?”); AiMessage secondAiMessage = model.generate(firstUserMessage, firstAiMessage, secondUserMessage).content();多模态支持 UserMessage不仅可以包含文本,还可以包含其他类型的内容,例如图像、音频、视频或PDF文件。例如,发送文本和图像的代码如下: java复制 UserMessage userMessage = UserMessage.from( TextContent.from(“描述下面的图像”), ImageContent.from(“ example /cat.jpg”) ); Response response = model.generate(userMessage);Kotlin扩展 LangChain4j为Kotlin提供了扩展,支持异步处理聊天交互。这些扩展利用Kotlin的协程功能,提供了chatAsync和generateAsync方法,简化了聊天请求的构建和对话处理。 总结 这篇文章主要介绍了LangChain4j中与语言模型和聊天模型相关的API。它强调了ChatLanguageModel的重要性,并详细解释了如何通过ChatMessage管理多轮对话、支持多模态输入,以及如何利用Kotlin扩展进行异步处理。这些功能使得LangChain4j在构建聊天应用时更加灵活和强大。第1章:LangChain4j的聊天与语言模型由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“第1章:LangChain4j的聊天与语言模型”
上一篇
算法-二叉树-判断二叉树是否相等