# build_rag_for_openharmony **Repository Path**: lmxxff/build_rag_for_openharmony ## Basic Information - **Project Name**: build_rag_for_openharmony - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-31 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 本地OpenHarmony代码RAG知识库构建教程 本项目提供了一套脚本,用于为完整的OpenHarmony源代码构建一个本地的、可查询的、基于AI的RAG(检索增强生成)知识库。 一旦知识库构建完成,您就可以通过命令行与它进行交互,提出关于代码库的复杂问题。 --- ## 1. 项目目标与思想 为了解决OpenHarmony代码库极其庞大和复杂,传统搜索难以理解代码意图和上下文的问题,我们构建了一个基于 **RAG(检索增强生成)** 思想的本地知识库。它能让大型语言模型(LLM)“学习”整个OpenHarmony代码,从而实现对代码的深度理解和智能问答。 其核心思想分为两步: 1. **检索 (Retrieval)**:当用户提问时,系统首先通过向量相似度计算,精确地找出与问题最相关的代码块。 2. **生成 (Generation)**:系统将用户的问题和检索到的代码块一并交给大型语言模型,让模型基于给定的上下文,生成准确的答案。 --- ## 2. 技术栈与核心组件 * **编程语言**: `Python 3.10+` * **核心框架**: `LlamaIndex` * **嵌入模型**: `Qwen3-Embedding-0.6B` (本地模型) * **向量数据库**: `ChromaDB` * **代码解析器**: `SentenceSplitter` (基于字符数切分) * **执行模型**: `单进程 + GPU加速` --- ## 3. 硬件要求与建议 * **内存 (RAM)**: **建议 16GB 或以上**。由于采用单进程架构,内存占用被严格控制,不再需要巨大的内存。 * **处理器 (CPU)**: 对CPU核心数无特殊要求。 * **显卡 (GPU)**: **强烈推荐**。当前架构下,脚本会自动利用GPU进行向量计算,这是性能的绝对核心。一块好的GPU(如NVIDIA 20系列及以上)能带来数十倍甚至上百倍的速度提升。 --- ## 4. 使用指南 详细的操作步骤已记录在 `操作流程.md` 文件中。这里是简要概括。 ### 4.1. 首次构建知识库 推荐使用自动化脚本 `./my_command.sh` 来完成首次构建。它会自动完成所有依赖安装和配置,并启动索引构建。此过程会长达数小时,但有详细的日志和进度条,请耐心等待。 ### 4.2. 日常查询 (基础) 对于简单、明确的问题,您可以自己运行查询脚本: 1. 激活虚拟环境: `source .venv/bin/activate` 2. 运行查询脚本: `python3 query_rag.py "您的精确问题"` --- ## 5. 高级用法:自动化复杂任务分析 **请注意**:以下描述的全自动工作流,是为 **Gemini CLI** 特别优化和验证的。 在此模式下,您提出宏大目标,由我(Gemini CLI)扮演“项目经理”,负责分解任务、自动调用`query_rag.py`工具执行检索、并综合所有信息生成最终报告。整个过程无需您手动操作。 ### 如何“唤醒”新AI的记忆 当您开启一个全新的会话时,您只需要发送以下的“引导指令”,就可以让我立刻掌握这套工作流程。 > **【为Gemini CLI优化的引导指令】** > > 你好。我需要你扮演一个资深的软件架构师,帮我分析本地的OpenHarmony代码库。我已经为此代码库构建了一个RAG知识库,并为你准备了一个可以使用的命令行工具。 > > **你的可用工具**: > 1. **代码检索工具**: `python3 query_rag.py "一个精确的问题"`。你可以通过 `run_shell_command` 来调用它。它接收一个字符串形式的精确问题作为参数,并会从知识库中返回最相关的代码片段。在调用它之前,请务必先执行 `source .venv/bin/activate` 来激活正确的Python环境。 > 2. **直接文件访问**: 完整的代码库位于 `/home/lmxxf/oh4.0_release/source`。 > > **你的工作流程**: > 当我提出一个复杂的、需要深度分析的任务时,我期望你遵循以下全自动流程:1. 分解任务, 2. 检索信息, 3. 综合答案。在整个过程中不要要求我进行任何手动操作。 > > 如果你理解了,请告诉我你准备好了。 --- ## 6. 工作原理解析 (单进程GPU加速版) `build_rag_index.py` 脚本的执行过程演进到了一个稳定且高效的架构,主要分为三个阶段:文件发现、序列化解析与GPU嵌入、批量写入数据库。详细的技术演进过程请参考 `需要了解的技术内容.md`。 --- ## 7. 文件说明 * `build_rag_index.py`: 构建知识库的核心脚本。 * `query_rag.py`: **(可被AI调用)** 查询知识库的命令行工具。 * `download_model.sh`: 用于自动下载推荐的Embedding模型。 * `my_command.sh`: 包含了首次构建所有步骤的自动化脚本。 * `操作流程.md`: 详细的分步操作手册。 * `需要了解的技术内容.md`: 对本项目涉及的技术原理的深度剖析。 * `README.md`: 本文档,提供项目概览和使用指南。