LangChain4j 1.0.0 正式版现已发布!本文将深入解析其核心新特性与升级指南,助您快速掌握这一强大的 Java LLM 开发框架。

📌 引言

LangChain4j 是目前最火爆的 Java AI SDK,这款全面领先的开源框架彻底革新了大型语言模型 (LLM) 与 Java 应用的集成方式。作为 Java 生态系统中的 AI 开发利器,它提供了业内最完善的抽象层和工具链,让开发者能以前所未有的速度构建智能应用。1.0.0 版本的重磅发布不仅标志着框架达到企业级成熟度,更奠定了 Java 在 AI 应用开发领域的主导地位,使 Java 开发者能够无缝衔接最前沿的 AI 能力,在 LLM 应用开发赛道上遥遥领先。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-bom</artifactId>
            <version>1.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

✨ 核心新特性

🔹 官方 OpenAI Java SDK 支持

LangChain4j 现已集成官方 OpenAI Java SDK。相比之前的自定义实现,这一重要变更为用户带来了更佳的兼容性、稳定性与安全性,并确保能及时获取 OpenAI 的全部功能。

ChatModel model = OpenAiOfficialChatModel.builder()
    .modelName(ChatModel.GPT_4O)
    .apiKey(System.getenv("OPENAI_API_KEY"))
    .build();

🔹 GitHub Models 集成

新版本支持通过 Azure AI Inference API 访问 GitHub Models,在 GitHub Actions 或 Codespaces 环境中可使用 GITHUB_TOKEN 自动认证:

ChatModel model = OpenAiOfficialChatModel.builder()
    .modelName(ChatModel.GPT_4O_MINI)
    .isGitHubModels(true)
    .build();

💾 更广泛的数据库和向量存储支持

🔹 Neo4j 集成

引入与图数据库 Neo4j 的深度集成,支持:

  • Neo4jEmbeddingStore:在 Neo4j 中存储和查询向量嵌入
  • Neo4jText2CypherRetriever:根据用户问题生成并执行 Cypher 查询

这使得开发者能够构建”GraphRAG”应用,利用数据关系增强 LLM 推理能力。

🔹 MongoDB Atlas 集成

提供对 MongoDB Atlas 作为嵌入存储的原生支持:

MongoClient mongoClient = MongoClients.create("mongodb+srv://...");
MongoCollection<Document> collection = mongoClient
    .getDatabase("langchain4j")
    .getCollection("embeddings");

EmbeddingStore<TextSegment> embeddingStore = MongoDBAtlasEmbeddingStore.builder()
    .collection(collection)
    .build();

🔹 Google Cloud 数据库集成

扩展对 Google Cloud 数据库的支持,包括:

  • AlloyDB PostgreSQL 集成
  • Cloud SQL for PostgreSQL 集成

🔹 可定制的 HTTP 客户端

LangChain4j 1.0.0 支持自定义底层 HTTP 客户端,使您能够根据需求灵活配置网络请求。目前支持两种内置实现:

  • JDK HttpClient:默认用于基本模块(如 langchain4j-open-ai)
  • Spring RestClient:默认用于 Spring Boot 集成(如 langchain4j-open-ai-spring-boot-starter)

自定义 JDK HttpClient 示例:

HttpClient.Builder httpClientBuilder = HttpClient.newBuilder()
        .sslContext(customSslContext)
        .connectTimeout(Duration.ofSeconds(30));

JdkHttpClientBuilder jdkHttpClientBuilder = JdkHttpClient.builder()
        .httpClientBuilder(httpClientBuilder);

OpenAiChatModel model = OpenAiChatModel.builder()
        .httpClientBuilder(jdkHttpClientBuilder)
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .modelName("gpt-4o-mini")
        .build();

⚠️ 破坏性变更及迁移指南

核心接口重命名

旧版接口新版接口迁移操作
ChatLanguageModelChatModel更新所有相关类中的接口名称
StreamingChatLanguageModelStreamingChatModel更新所有相关类中的接口名称

流式 API 方法调整

旧方法新方法迁移操作
onNext()onPartialResponse()更新流式响应处理代码
onComplete()onCompleteResponse()更新流式响应处理代码

内部工具类变更

部分公共但非预期外部使用的类现已使用 @Internal 注解标记,可能被重命名或重组。建议避免直接使用这些内部类,应依赖公共 API。

废弃接口移除

先前版本中已标记为 @deprecated 的接口已被移除。请更新代码使用其非废弃的替代方案。


📝 总结

LangChain4j 1.0.0 版本是该框架发展的重要里程碑,提供了丰富的新特性和稳定的 API。 笔者之前整理的 LangChain4j 入门系列教程已全面更新至 1.0.0 版本,欢迎访问 https://javaai.pig4cloud.com/introduction 获取最新实践指南和代码示例,助您快速掌握这一强大框架的全部特性。