# Java-Dev-Learning-RAG **Repository Path**: godxiu/java-dev-learning-rag ## Basic Information - **Project Name**: Java-Dev-Learning-RAG - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-06 - **Last Updated**: 2025-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java-Dev-Learning-RAG: A Lightweight Retrieval-Augmented Generation Demo > 🚀 从零构建的 RAG (检索增强生成) 核心链路演示。 > 这是一个为了理解大模型应用底层原理而编写的 Python 项目,展示了 **文本 -> 向量 -> 检索 -> 生成** 的完整闭环。 ## 📖 项目简介 (Introduction) 本项目是一个最小化的 **RAG (Retrieval-Augmented Generation)** 系统实现。 与使用 LangChain 等高度封装的框架不同,本项目旨在**解构 RAG 的核心算法逻辑**。作为一个拥有 Java 背景的开发者,我通过这个项目深入探究了向量数据库与语义检索的底层机制,为构建企业级 Java + AI 应用打下基础。 ### 核心功能 1. **知识库构建 (Indexing)**: 使用 `Sentence-Transformers` 将非结构化文本转化为向量矩阵 (Embeddings)。 2. **语义检索 (Retrieval)**: 利用 NumPy 实现基于 **余弦相似度 (Cosine Similarity)** 的向量检索算法。 3. **提示词工程 (Prompt Engineering)**: 动态构建上下文 (Context) 并模拟 LLM 生成流程。 ## 🛠️ 技术栈 (Tech Stack) * **Language**: Python 3.8+ * **Core Library**: * `sentence-transformers`: 用于生成高质量的文本向量 (SBERT)。 * `numpy`: 用于高性能矩阵运算 (模拟向量数据库的核心计算)。 * **Concept**: Vector Space Model, Cosine Similarity, RAG Pipeline. ## 🏗️ 架构解析 (Architecture) 对于 Java 开发者,可以这样理解本项目的架构映射: | RAG 组件 | 对应的本项目代码 | 对应的企业级架构 (Java 生态) | | :--- | :--- | :--- | | **向量数据库** | `numpy.array` (内存矩阵) | **Milvus / ElasticSearch / Pinecone** | | **Embedding 服务** | `SentenceTransformer` 模型 | **Python 微服务 (FastAPI) / ONNX Runtime (Java)** | | **检索算法** | `np.dot` (矩阵点乘) | **HNSW (Hierarchical Navigable Small World)** | | **编排层** | `main.py` 流程控制 | **Spring AI / LangChain4j** | ### 数据流向图 ```mermaid graph LR A[用户问题] --> B(Embedding 模型); C[私有文档] --> D(Embedding 模型); D --> E[(向量知识库/矩阵)]; B --> F[问题向量]; F --> G{计算余弦相似度}; E --> G; G --> H[Top-K 相关文档]; H --> I[构建 Prompt]; I --> J[LLM (GPT)]; J --> K[最终回答];