LangChain4j 从入门到放弃,java可以使用的 LLM 大模型 AI 框架(2)LangChain4j 支持的 API 和消息类型

注意:本篇文章建立在官方文档的理解上,文章会围绕官方文档去书写,博主会根据对框架的理解去动态修改文章内容,由于该框架的官方文档写的并不是很详细,市面上也没有特别详细的教程,所以博主也不能很全面的理解整个框架,但是对于入门来说,已经足够了,如果有看不懂的地方建议把全部文章都阅读一遍后再回顾会有不同的理解。

LangChain4j 支持的 API 和消息类型(Chat and Language Models)

官网Chat and Language Models介绍

LangChain4j 的核心 API 类型

当前,LangChain4j 支持的 LLMs API 主要分为两种:

  • LanguageModels
    • 早期的简单 API,只接受 String 输入并返回 String 输出。此 API 已过时,未来将主要支持新的聊天 API(即 ChatLanguageModel)。
  • ChatLanguageModels
    • 目前推荐使用的主要 API,支持更复杂的输入和输出。
    • 接受单个或多个 ChatMessages 作为输入,并返回 AiMessage 作为输出。ChatMessage 通常包含文本,但某些 LLMs 还支持文本和Images 的混合。此类聊天模型的示例包括 OpenAI 的 gpt-4o-mini 和 Google 的 gemini-1.5-pro

未来 LangChain4j 不再扩展 LanguageModel 支持,因此推荐在所有新功能中使用 ChatLanguageModel

特定功能模型类型

除了这两类核心 API,LangChain4j 还支持几种特定功能的模型类型,这些模型并非标准的聊天和语言 API,但用于特定应用场景中:

  • EmbeddingModel:用于将文本转换为向量(Embedding),便于语义搜索和聚类。
  • ImageModel:用于生成和编辑图像。
  • ModerationModel:用于检测文本是否包含有害内容,确保内容安全。
  • ScoringModel:用于根据查询对文本段落进行相关性评分,适用于 RAG(检索增强生成)任务。

ChatLanguageModel 的API

简化版 generate 方法

public interface ChatLanguageModel {
   
    
    

    String generate(String userMessage);
    
    ...
}

如上所示,generate 方法接收一个 String 类型的输入,并返回一个 String 类型的输出,这与 LanguageModel 类似。这是一个简化的便捷方法,方便你快速进行测试,而无需将字符串封装在 UserMessage 中。

实际的聊天 API

    ...
    
    Response<AiMessage> generate(ChatMessage... messages);

    Response<AiMessage> generate(List<ChatMessage> messages);
        
    ..