Skip to content

RAG 增强编程助手架构设计

检索增强生成(RAG)通过检索相关代码片段作为上下文,让 LLM 生成更符合项目规范的代码,减少幻觉和风格不一致。

RAG 编程助手架构

核心架构

RAG 编程助手包含四个模块:索引模块(解析、分块、向量化)、检索模块(编码、搜索、重排序)、生成模块(上下文注入、代码生成)、反馈模块(质量评估、索引更新)。

python
class RAGCodingAssistant:
    def generate(self, query, project_context):
        results = self.retriever.search(query=query, top_k=10,
            filters={"language": project_context["language"]})
        reranked = self.reranker.rank(query, results)
        context = self.format_context(reranked[:5])
        prompt = f"项目上下文:\n{context}\n\n用户请求:{query}"
        return self.llm.generate(prompt)

代码分块策略

  • 函数级分块:以函数为单位,保持语义完整
  • 类级分块:以类定义为单位,包含所有方法
  • 文件级分块:整个文件作为一个块
  • 滑动窗口:固定大小窗口,带重叠

分块粒度选择

函数级分块通常效果最好——既保持语义完整性,又不引入过多无关代码。短文件(<200行)用文件级更简单有效。

相关资源

最近更新