LangChain4j × Micronaut配置管理、依赖注入与 AiService 声明式 AI 集成实战指南【免费下载链接】langchain4jLangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM providers and vector stores, and makes implementing tool calling (including MCP support), agents and RAG easy. It integrates seamlessly with enterprise Java frameworks like Quarkus and Spring Boot.项目地址: https://gitcode.com/GitHub_Trending/la/langchain4jMicronaut 为 LangChain4j 提供了官方集成模块micronaut-langchain4j将 LangChain4j 的模型、向量存储等 API 纳入 Micronaut 的配置管理与依赖注入体系让开发者无需手动AiServices.create(...)即可在 Micronaut 应用中声明式地获得ChatModel、StreamingChatModel、Embedding Store 与 AI Service。本文以仓库内 micronaut 集成文档 为主线结合 Micronaut 集成教程、AI Services 教程 以及langchain4j模块中AiServices的源码实现系统讲解集成模块的四大核心能力与实战用法。Micronaut 集成模块能带来什么LangChain4j 本身是一个与框架无关的 Java 库核心抽象如ChatModel、EmbeddingStore定义在langchain4j-core模块中。在普通 Java 应用中你需要手动完成模型构建、生命周期管理与对象装配而在 Micronaut 应用中micronaut-langchain4j 集成模块接管了这些样板工作提供配置管理与依赖注入通过 Micronaut 的application.yml/application.properties配置不同提供商的ChatModel与StreamingChatModel并作为 Bean 自动注入到任意组件中Embedding Store 简易装配为常见向量数据库提供商提供开箱即用的配置入口免去手动构建客户端与EmbeddingStore实例容器化测试支持与 Micronaut Test Resources 及 Testcontainers 集成可在测试中自动拉起本地容器如向量数据库来测试 LangChain4j 功能声明式AiService将 LangChain4j 的高层 AI Service 抽象以注解方式接入 Micronaut 编程模型Tools函数调用与 Language Model 的装配由框架自动完成。从 intro.md 可以看到LangChain4j 为 Java 生态四大企业框架Quarkus、Spring Boot、Helidon、Micronaut均提供了一等公民集成Micronaut 集成仓库维护在 micronaut-projects 的micronaut-langchain4j项目下完整文档与快速入门教程可在其官方指南中查阅关联文档micronaut 集成教程。为 ChatModel 与 StreamingChatModel 提供配置与依赖注入配置驱动的模型 Bean集成模块最核心的价值是把「构建某个 LLM 提供商客户端」的过程简化为一段声明式配置。开发者无需在代码中调用OpenAiChatModel.builder()...build()这类工厂方法只需在 Micronaut 配置文件中声明提供商参数如 API Key、模型名、base URL 等集成模块便会根据配置自动创建并注册对应的ChatModel与StreamingChatModelBean。以典型配置为例你可以在src/main/resources/application.yml中按提供商声明参数具体属性名以 micronaut-langchain4j 指南为准不同提供商对应各自的micronaut.langchain4j.provider.*配置前缀micronaut: langchain4j: openai: api-key: ${OPENAI_API_KEY} chat-model: model-name: gpt-4o-mini temperature: 0.7 streaming-chat-model: model-name: gpt-4o-mini配置完成后任意 Micronaut 组件都可以通过构造器注入或Inject获得模型实例import dev.langchain4j.model.chat.ChatModel; import dev.langchain4j.model.chat.StreamingChatModel; import jakarta.inject.Inject; import jakarta.inject.Singleton; Singleton public class ChatService { private final ChatModel chatModel; private final StreamingChatModel streamingChatModel; Inject public ChatService(ChatModel chatModel, StreamingChatModel streamingChatModel) { this.chatModel chatModel; this.streamingChatModel streamingChatModel; } public String chat(String message) { return chatModel.chat(message); } }底层原理支撑LangChain4j 的低层 API 中ChatModel负责同步对话输入ChatMessage返回AiMessageStreamingChatModel负责流式返回配合TokenStream二者定义在langchain4j-core模块是 AI 应用的基础原语参见 chat-and-language-models 教程。集成模块本质上是在 Micronaut 的 Bean 容器中把「配置属性 → 提供商客户端 → LangChain4j 模型」这条装配链自动化了这与 Quarkus 扩展、Spring Boot Starter 的做法一脉相承。多提供商切换由于统一 API 的存在切换 LLM 提供商时业务代码零改动只需替换配置段例如从 OpenAI 切到 Anthropic、Ollama 或 Vertex AI Gemini。LangChain4j 目前支持 20 个 LLM 提供商完整清单见 language-models 集成文档每个提供商对应的配置前缀与参数说明可参照各提供商页面。需要说明的是由于模型能力的差异如是否支持流式、是否支持系统消息切换时需确认所选模型特性与你的调用方式匹配。Embedding Store 的简易装配RAG 场景通常需要把文档切分后向量化并存入向量数据库再在检索时通过EmbeddingStore查询。集成模块为常见 Embedding Store 提供商提供了类似模型的配置式装配声明连接参数URL、凭据、集合名等框架即可创建并注入EmbeddingStoreBean。micronaut: langchain4j: # 以某个向量数据库提供商为例具体键名以 micronaut-langchain4j 指南为准 pgvector: url: jdbc:postgresql://localhost:5432/ragdb username: ${DB_USER} password: ${DB_PASSWORD} embedding-store: table: documents dimension: 384注入使用示例import dev.langchain4j.store.embedding.EmbeddingStore; import dev.langchain4j.data.segment.TextSegment; import jakarta.inject.Inject; import jakarta.inject.Singleton; Singleton public class DocumentIndexer { private final EmbeddingStoreTextSegment embeddingStore; Inject public DocumentIndexer(EmbeddingStoreTextSegment embeddingStore) { this.embeddingStore embeddingStore; } public void store(TextSegment segment) { embeddingStore.add(segment); } }LangChain4j 支持 30 个 Embedding Store 提供商embedding-stores 集成文档EmbeddingStore接口与其add、search等核心方法的语义定义于langchain4j-core。完整的 RAG 链路文档加载 → 切分 → 向量化 → 入库 → 检索 → 重排可参考 RAG 教程。与 Micronaut Test Resources 和 Testcontainers 的容器化测试集成模块的另一大特色是测试体验通过 Micronaut Test Resources 与 Testcontainers可以在运行测试时自动启动所需的基础设施容器典型场景是向量数据库、本地 LLM 服务等测试结束自动销毁无需手动维护外部依赖。典型用法示意在测试中启用 Micronaut Test Resources如MicronautTest声明需要启动的容器Testcontainers 管理生命周期集成模块将容器地址自动映射到EmbeddingStore等 Bean 的配置项测试代码直接注入使用。这使得「本地没有部署向量数据库也能跑通 RAG 检索测试」「CI 中一键拉起全部依赖」成为可能与 LangChain4j 社区强调的「integration test each AI Service in isolation」理念见 AI Services 教程 的 Testing 章节相互呼应。声明式 AiService让 Tools 与 Language Model 自动装配从 AiServices.create 到框架自动装配在纯 Java 中AI Service 的典型创建方式是调用AiServices.create(...)或AiServices.builder(...).chatModel(model)...build()手工装配实现在 AiServices.java。而在 Micronaut 集成中AiService注解让框架替你做这件事只需声明一个带注解的接口框架即自动创建代理对象并注册为 Bean你可以在任何地方直接注入使用。从 AI Services 教程 可以看到 AI Service 的设计哲学面向 Java 的声明式 LLM API与 Spring Data JPA / Retrofit 的代理模式类似——你定义接口LangChain4j 生成实现。集成模块把这一步从手动调用AiServices.create提升为框架级自动装配就像 Quarkus 的RegisterAiService与 Spring Boot 的自动配置一样见 quarkus 框架文档。一个完整的 AiService 示例import dev.langchain4j.service.AiService; import dev.langchain4j.service.SystemMessage; import dev.langchain4j.service.UserMessage; import dev.langchain4j.service.TokenStream; AiService public interface Assistant { SystemMessage(You are a helpful assistant. Answer concisely.) String chat(UserMessage String userMessage); SystemMessage(You are a helpful assistant.) TokenStream stream(UserMessage String userMessage); }import jakarta.inject.Inject; import jakarta.inject.Singleton; Singleton public class AssistantController { private final Assistant assistant; Inject public AssistantController(Assistant assistant) { this.assistant assistant; } public String ask(String question) { return assistant.chat(question); } }这里的ChatModel或流式场景下的StreamingChatModel由集成模块根据配置自动注入到 AI Service 背后开发者无需关心AiServices.create的装配细节。AiService 背后的能力图谱AiService并非简单的方法转发它继承了 LangChain4j AI Service 的全部高层能力这些能力均可声明式启用提示词模板与消息注解SystemMessage可带fromResource加载模板文件、UserMessage模板变量用{{it}}引用唯一参数或用V(name)命名参数结构化输出方法返回类型可以是boolean、枚举、POJO 甚至ResultT携带TokenUsage、RAG 检索到的Content源、工具执行记录、FinishReason等元数据详见 structured-outputs 教程流式响应返回TokenStream逐 token 消费支持onPartialResponse、onCompleteResponse、onError等回调详见 response-streaming 教程对话记忆通过MemoryId参数配合ChatMemoryProvider为每个用户维护独立会话消息窗口/Token 窗口算法详见 chat-memory 教程Tools函数调用用Tool标注的方法可被 LLM 自主调用例如import dev.langchain4j.agent.tool.Tool; public class CalculatorTools { Tool(Adds two numbers) public int add(int a, int b) { return a b; } Tool(Multiplies two numbers) public int multiply(int a, int b) { return a * b; } }在 Micronaut 中Tool类同样可以作为 Bean 注册由AiService自动发现并暴露给 LLM具体装配方式以 micronaut-langchain4j 指南为准纯 Java 侧的注册方式为AiServices.builder(...).tools(new CalculatorTools())详见 tools 教程RAG 增强配置ContentRetriever实现朴素 RAG配置RetrievalAugmentor实现查询改写、路由、重排等高级 RAG详见 RAG 教程自动内容审核配置ModerationModel后检测到不当内容会抛出含原始Moderation对象的异常见 AI Services 教程 的 Auto-Moderation 章节。与 Quarkus、Spring Boot、Helidon 的集成对比从仓库框架集成文档看四种企业框架的集成思路一致——都是「配置驱动 声明式 AI Service 框架原生编程模型」差异在于各自生态的注解与装配机制框架声明式 AI Service 入口集成文档QuarkusRegisterAiServiceCDI Bean、GraalVM 原生编译、Dev UIquarkus 框架文档Spring Boot自动配置 自动注册 AI Service Beanspring-boot 集成教程HelidonHelidon Inject 服务注册表 CDI 桥接helidon 框架文档MicronautAiService Micronaut 配置管理本文选用 Micronaut 集成的场景通常包括偏好 Micronaut 的轻量启动与编译时依赖注入、使用 Micronaut Test Resources 管理测试基础设施、或已运行于 Micronaut 微服务体系配合 GraalVM 原生镜像部署。快速开始路径创建 Micronaut 应用可使用 Micronaut Launch引入micronaut-langchain4j依赖具体坐标与版本见 micronaut-langchain4j 官方指南关联入口micronaut 集成教程在application.yml中按上文方式配置所选 LLM 提供商与可选Embedding Store定义AiService接口并注入使用如需测试启用 Micronaut Test Resources Testcontainers 声明容器依赖。深入阅读Micronaut 集成教程集成模块的官方文档入口与快速入门指引AI Services 教程AiService声明式 API 的完整用法消息注解、结构化输出、记忆、工具、RAG、流式AI Service 核心实现AiServices.create/builder的底层装配逻辑与代理机制AI Service 测试用例工具调用、记忆、RAG 等场景的集成测试示例RAG 教程 与 Embedding Store 集成索引向量检索链路与可选提供商intro.mdLangChain4j 整体架构、两大抽象层级与模块化设计说明【免费下载链接】langchain4jLangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM providers and vector stores, and makes implementing tool calling (including MCP support), agents and RAG easy. It integrates seamlessly with enterprise Java frameworks like Quarkus and Spring Boot.项目地址: https://gitcode.com/GitHub_Trending/la/langchain4j创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考