# langchain4j-atguiguV5 **Repository Path**: junjun_com/langchain4j-atguigu-v5 ## Basic Information - **Project Name**: langchain4j-atguiguV5 - **Description**: 教程分为入门指南、核心技术解析、高级主题与最佳实践、实战项目等多个模块,从基础原理讲解到实战项目演练,逐步带你深入理解LangChain4j的核心功能及应用场景,掌握 LangChain4j的技术细节,独立完成基于大语言模型的Java应用开发,增强解决复杂问题的能力,特别是在记忆缓存、提示词工程、持久化、向量数据库和MCP等领域。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-03-09 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, SpringBoot, langchain4j ## README # LangChain4j 教程示例项目 本项目是 LangChain4j 框架的系列教程示例,展示了如何使用 LangChain4j 构建基于大语言模型的 Java 应用程序。每个子模块独立运行,演示不同的核心功能。 ## 项目结构 ``` langchain4j-atguigu-v5 ├── langchain4j-01helloworld # Hello World 入门示例 ├── langchain4j-02multi-model-together # 多模型支持 ├── langchain4j-03boot-integration # Spring Boot 集成 ├── langchain4j-04low-high-api # Low-Level 与 High-Level API ├── langchain4j-05model-parameters # 模型参数配置 ├── langchain4j-06chat-image # 图片聊天模型 ├── langchain4j-07chat-stream # 流式输出 ├── langchain4j-08chat-memory # 对话记忆 ├── langchain4j-09chat-prompt # 提示词模板 ├── langchain4j-10chat-persistence # Redis 持久化 ├── langchain4j-11chat-functioncalling # 函数调用 ├── langchain4j-12chat-embedding # 向量嵌入 ├── langchain4j-13chat-rag01 # RAG 检索增强 └── langchain4j-14chat-mcp # MCP 协议支持 ``` ## 功能模块 ### 01 - Hello World 基础的 LangChain4j 入门示例,展示如何配置通义千问模型并进行简单的对话。 ### 02 - 多模型支持 同时支持多个 LLM 模型(通义千问、DeepSeek),可根据需求动态切换。 ### 03 - Spring Boot 集成 使用 `@AiService` 注解声明式创建 AI 服务,与 Spring Boot 无缝集成。 ### 04 - Low-Level 与 High-Level API - **Low-Level API**:直接使用 `ChatModel` 进行底层操作 - **High-Level API**:通过 `ChatAssistant` 接口简化开发 ### 05 - 模型参数配置 配置模型参数(温度、最大token等),并演示监听器的使用。 ### 06 - 图片聊天模型 - 图片内容识别:读取本地图片并分析 - 图片生成:调用阿里云 Wanx 模型生成图片 ### 07 - 流式输出 支持流式响应(Server-Sent Events),实现实时对话效果。 ### 08 - 对话记忆 - `ChatMessageWindowChatMemory`:基于消息数量的记忆 - `ChatTokenWindowChatMemory`:基于 Token 数量的记忆 ### 09 - 提示词模板 使用 `@StructuredPrompt` 注解构建结构化提示词模板。 ### 10 - Redis 持久化 使用 Redis 存储对话历史,实现跨会话的记忆持久化。 ### 11 - 函数调用 演示 AI 模型调用本地函数: - **WeatherService**:获取天气信息 - **InvoiceHandler**:发票开具处理 ### 12 - 向量嵌入 集成 Qdrant 向量数据库,支持文本嵌入和相似度检索。 ### 13 - RAG 检索增强 基于 InMemoryEmbeddingStore 实现简单的 RAG 应用。 ### 14 - MCP 协议 支持 MCP(Model Context Protocol),实现与 MCP 服务器的通信。 ## 技术栈 - **Java** 17+ - **Spring Boot** - **LangChain4j** - **Maven** - **Redis**(用于会话持久化) - **Qdrant**(向量数据库) - **阿里云通义千问 / DeepSeek**(LLM 提供商) ## 快速开始 ### 环境要求 - JDK 17 或更高版本 - Maven 3.8+ - Redis 服务(部分模块需要) ### 编译运行 ```bash # 克隆项目 git clone https://gitee.com/junjun_com/langchain4j-atguigu-v5.git cd langchain4j-atguigu-v5 # 编译项目 mvn clean package -DskipTests # 运行单个模块(例如 01helloworld) cd langchain4j-01helloworld mvn spring-boot:run ``` ### 配置说明 在运行前,需要在各模块的 `application.properties` 中配置 LLM API Key: ```properties # 示例配置 langchain4j.openai.api.key=your-api-key langchain4j.openai.chat.model.qwen=qwen-turbo ``` ## 接口示例 各模块提供的 HTTP 接口(默认端口 8080): | 模块 | 接口路径 | 说明 | |------|----------|------| | 01 | `/langchain4j/hello` | 基础对话 | | 02 | `/multimodel/qwen` | 通义千问模型 | | 02 | `/multimodel/deepseek` | DeepSeek模型 | | 03 | `/lc4j/boot/declarative` | 声明式AI服务 | | 07 | `/chatstream/chat` | 流式对话 | | 10 | `/chatpersistence/redis` | Redis持久化 | | 12 | `/embedding/embed` | 向量嵌入 | ## 许可证 本项目仅供学习交流使用。