LangChain4j开篇

系列未完待续

1.概述

LangChain4j(https://docs.langchain4j.dev/),由Python AI框架LangChain而来,同时也吸纳了Haystack, LlamaIndex的特性,是一款基于Java语言开发大模型应用的工具,提供统一调用AI大模型以及向量存储的API,类似这样的框架还有Spring AI

LangChain4j开发于2023年初,截至目前它支持:

  • 大语言模型LLM 20+
  • 嵌入(向量)模型 20+
  • 嵌入(向量)数据库 30+
  • 多模态
  • 会话记忆存储实现Chat Memory Stores 7个
  • 文档解析Document Parsers:Tika,MD,PDF…
  • RAG
  • Tools(Function calling)
  • Model Context Protocol (MCP),但是SSE模式未来将不受支持
  • 联网搜索Web Search Engines:SearXNG…

LangChain4j在两个抽象层次上运行:

  • 底层API,访问所有底层组件,例如 ChatModel、UserMessage……、AiMessage…… EmbeddingStore、Embedding……等等

  • 高层API,使用高级API(例如AI Service)与LLM进行交互,可以灵活地调整和微调。

2.快速开始

引入langchain4j-bom,截至目前,官网上langchain4j-bom的最高版本是1.8.0,均需要jdk17+

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

<repositories>
    <repository>
        <name>Central Portal Snapshots</name>
        <id>central-portal-snapshots</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>21</source>
                <target>21</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

以对接OpenAI大模型为例,添加依赖langchain4j-open-ai,原生使用langchain4j

<dependencies>
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-open-ai</artifactId>
    </dependency>
</dependencies>

新建测试类,通过URL,API-KEY以及模型名称构造ChatModel对象,传入system和user提示词,测试调用大模型

package org.example;

import dev.langchain4j.data.message.ChatMessage;
import dev.langchain4j.data.message.SystemMessage;
import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.chat.response.ChatResponse;
import dev.langchain4j.model.openai.OpenAiChatModel;

import java.util.Arrays;
import java.util.List;

public class Main {

    public static void main(String[] args) {

        ChatModel chatModel = OpenAiChatModel.builder()
                .baseUrl("https://api.gptsapi.net/v1")
                .apiKey(System.getProperty("OPEN_API_KEY"))
                .modelName("gpt-4.1")
                .build();

        List<ChatMessage> messages = Arrays.asList(
                new SystemMessage("你是一个数学老师,用简单易懂的方式解释数学概念。"),
                new UserMessage("什么是微积分?")
        );

        ChatResponse chatResponse = chatModel.chat(messages);
        System.out.println(chatResponse);

    }
}

得到大模型的回答,原生方式使用langchain4j调用大模型测试通过。

LangChain4j支持和Quarkus, Spring Boot, Helidon和Micronaut进行整合,后面都会集成到Spring Boot中进行测试

3.使用LangChain4j

序号 文章名 概述
1 LangChain4j Prompt对话机器人 LangChain4j实现Prompt对话

"如果文章对您有帮助,可以请作者喝杯咖啡吗?"

微信二维码

微信支付

支付宝二维码

支付宝


LangChain4j开篇
https://blog.liuzijian.com/post/langchain4j/
作者
Liu Zijian
发布于
2025年5月24日
许可协议