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在两个抽象层次上运行:

低层,访问所有底层组件,例如 ChatModel、UserMessage……、AiMessage…… EmbeddingStore、Embedding……等等
高层,使用高级API(例如AI Service)与LLM进行交互,可以灵活地调整和微调。
2.快速开始
LangChain4j支持和Quarkus, Spring Boot, Helidon和Micronaut进行整合,这里肯定以Spring Boot为例
引入spring-boot 3.5.4,langchain4j-bom。截至目前,官网上langchain4j-bom的最高版本是1.8.0,均需要jdk17+
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.4</version>
</parent>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<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>以对接OpenAI大模型为例,添加依赖langchain4j-open-ai-spring-boot-starter
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>application.yml,配置模型地址和模型
langchain4j:
open-ai:
chat-model:
base-url: https://api.gptsapi.net/v1
api-key: ${OPEN_AI_KEY}
model-name: gpt-5-chat
log-requests: true
log-responses: true测试类传入system和user提示词,测试调用大模型
package org.example.test;
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 jakarta.annotation.Resource;
import org.example.Main;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Arrays;
import java.util.List;
@SpringBootTest(classes = Main.class)
public class ChatTest {
@Resource
private ChatModel chatModel;
@Test
public void test() {
List<ChatMessage> messages = Arrays.asList(
new SystemMessage("你是一个数学老师,用简单易懂的方式解释数学概念。"),
new UserMessage("什么是微积分?")
);
ChatResponse chatResponse = chatModel.chat(messages);
System.out.println(chatResponse);
}
}
3.使用LangChain4j
| 序号 | 文章名 | 概述 |
|---|---|---|
| 1 | LangChain4j Prompt对话机器人 | LangChain4j对Prompt的支持 |
"如果文章对您有帮助,可以请作者喝杯咖啡吗?"
微信支付
支付宝
LangChain4j开篇
https://blog.liuzijian.com/post/langchain4j/