🚀 AI Code Helper (Based on LangChain4j)
   
"Every theory is a possibility to be tested." — *Amadeus System*
📖 简介 (Introduction)
AI Code Helper 是一个基于 Spring Boot 3 和 LangChain4j 构建的企业级 AI 编程助手后端服务。 本项目旨在探索 Java 生态下的 LLM 应用开发最佳实践,集成了 RAG (检索增强生成)、分布式会话管理、多模态交互 以及前沿的 MCP (Model Context Protocol) 协议。
它不仅是一个简单的聊天机器人,更是一个具备记忆、知识库和工具调用能力的智能 Agent 框架。
✨ 核心特性 (Key Features)
- 🧠 声明式 AI 服务:基于 LangChain4j 的
AiServices声明式接口,屏蔽底层 LLM 调用细节。 - 💾 分布式记忆 (Distributed Memory):利用 Redis 实现会话持久化,支持滑动窗口 (Window Memory) 策略,完美适配微服务架构。
- 📚 RAG 知识库:集成向量检索流水线 (Embedding Store + Content Retriever),支持私有文档问答,减少 AI 幻觉。
- ⚡ 响应式流式输出:基于 Spring WebFlux (Project Reactor) 实现 SSE (Server-Sent Events) 流式响应,提供极致的用户交互体验。
- 🛠️ MCP 协议集成:(Experimental) 支持 Model Context Protocol,实现了 Java 后端与 Python 工具脚本 (如
markitdown) 的跨进程协同。 - 🛡️ 安全围栏:内置
InputGuardrails,有效拦截 Prompt Injection 及敏感违规内容。 - 🔧 本地工具调用:支持
@Tool注解定义的 Function Calling,赋予 AI 操作本地文件系统的能力。
🛠️ 技术栈 (Tech Stack)
- Language: Java 17+
- Framework: Spring Boot 3.3.x (Web & WebFlux)
- LLM Orchestration: LangChain4j 0.3x
- Model Provider: Alibaba Cloud Qwen (通义千问 / Qwen-Plus / Qwen-VL)
- Database: Redis (Chat History Cache)
- Vector Store: In-Memory (Dev) / Compatible with Milvus/Chroma (Prod)
- Protocol: MCP (Model Context Protocol) via Stdio Transport
🚀 快速开始 (Quick Start)
1. 环境准备
- JDK 17+
- Maven 3.8+
- Redis (本地启动或远程连接)
- Docker (可选,用于部署)
- Python 环境 (如果你需要测试 MCP 功能)
* 建议安装 uv 包管理器:pip install uv
2. 克隆项目
git clone https://github.com/YourUsername/ai-code-helper.git cd ai-code-helper
3. 配置参数 (Configuration)
⚠️ 注意:本项目涉及敏感密钥和本地路径,请在运行前修改配置文件。
在 src/main/resources/application.yml (或创建 application-local.yml) 中配置你的 API Key 和 Redis:
YAML
langchain4j: community: dashscope: chat-model: api-key: ${ALI_API_KEY} # 推荐使用环境变量,或者在本地测试时替换为真实 Key model-name: qwen-plus
spring: data: redis: host: localhost port: 6379
4. 配置 MCP (可选)
如果你想启用 MCP 功能(调用 Python 脚本),请修改 src/main/java/com/rance/aicodehelper/config/McpConfig.java:
Java
// 1. 修改为你项目中的 python 脚本相对路径或绝对路径 String scriptPath = "你的绝对路径/mcp_server.py";
// 2. 修改为你的 Python 环境执行路径 (推荐使用 uv 管理) String uvPath = "C:/Users/你的用户名/.local/bin/uv.exe";
5. 启动运行
Bash
mvn spring-boot:run
- 接口测试
项目启动后,默认运行在 8081 端口。你可以使用 curl 或 Postman 测试流式对话接口:
Bash
curl -N "http://localhost:8081/api/ai/chatStream?memoryId=123&message=你好,请帮我生成一个Java单例模式" 📂 项目结构 (Project Structure) text
src/main/java/com/rance/aicodehelper ├── ai │ ├── listener # 监听器配置 │ ├── guardrail # 安全围栏实现 │ ├── tool # 本地工具 (Function Calling) │ ├── mcp # MCP 协议配置 │ ├── rag # RAG 检索增强生成配置 │ ├── AiCodeHelperService.java # AI 服务接口 (声明式) │ └── AiCodeHelperServiceFactory.java # 工厂类 (组装 AI Agent) ├── config # 全局配置 (CORS, etc.) ├── controller # Web 接口层 └── store # Redis 记忆存储实现 🤝 贡献 (Contributing) 欢迎提交 Issue 和 Pull Request! 无论是修复 Bug、增加新特性,还是改进文档,所有的贡献都值得被记录。
📄 许可证 (License) This project is licensed under the MIT License - see the LICENSE file for details.
