简化 Java 应用集成大语言模型的开源框架,支持 RAG、工具调用和 Agent。提供统一 API 适配 OpenAI、Gemini 等主流模型,深度集成 Spring Boot 与 Quarkus。
LangChain4j 是专为 Java 生态设计的 LLM 集成框架,融合了 LangChain、Haystack 等项目的优秀理念,提供类型安全的 API。
核心特性#
统一 API 抽象#
- 20+ LLM 提供商:OpenAI、Azure OpenAI、Google Gemini (AI/Vertex AI)、Anthropic、Mistral AI、Ollama、Hugging Face、AWS Bedrock、IBM Watsonx 等
- 30+ 向量数据库:Pinecone、Milvus、Qdrant、Chroma、PgVector、Elasticsearch、Weaviate、MongoDB Atlas、Oracle、Cassandra 等
高级 LLM 能力#
- RAG (检索增强生成):支持从简单到高级的 RAG 流程,包括 query transformation、re-ranking、多路召回
- Tool Calling (工具调用):支持 LLM 调用 Java 方法,并支持 MCP (Model Context Protocol)
- Agents (智能体):内置 agentic patterns,支持自主规划与执行
- Chat Memory:多种记忆管理实现(窗口记忆、持久化记忆、按用户隔离)
- Structured Outputs:支持 boolean、Enum、POJO 等类型化输出
- Streaming:Token 级别流式输出,支持取消与回调
AI Services 声明式 API#
通过接口 + 注解的方式构建 LLM 应用:
@SystemMessage/@UserMessage定义提示模板@MemoryId支持多会话记忆隔离@Tool注册工具方法
企业级框架集成#
- Spring Boot 自动装配(基于 starter)
- Quarkus 扩展(quarkus-langchain4j)
- Helidon 集成
- Micronaut 集成
快速开始#
Maven 依赖#
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.11.0</version>
</dependency>
最简示例#
OpenAiChatModel model = OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4o-mini")
.build();
String answer = model.chat("Say 'Hello World'");
AI Services 示例#
interface Assistant {
@SystemMessage("You are a polite assistant.")
String chat(@MemoryId int userId, @UserMessage String userMessage);
}
Assistant assistant = AiServices.builder(Assistant.class)
.chatModel(model)
.chatMemoryProvider(id -> MessageWindowChatMemory.withMaxMessages(10))
.tools(new MyTools())
.build();
架构设计#
分层结构#
- 低层组件:
ChatModel/StreamingChatModel/ChatMemory/EmbeddingModel/EmbeddingStore - 高层抽象:
AiServices/RetrievalAugmentor/ContentRetriever - 模块化集成:每个提供商一个子模块,基于接口 + SPI 风格
设计理念#
- 针对 Java 生态优化,强调类型安全与 POJO 友好
- 支持主流 Java 框架的原生集成
适用场景#
- 企业聊天机器人 / 智能客服
- 文档问答 / 知识检索
- 自动化工作流 Agent
- 内容生成 / 结构化提取
- 多模型切换实验
- Java 后端 AI 能力增强
环境要求#
- JDK 17+
- Maven 或 Gradle
- 许可证:Apache-2.0