代码检索增强生成管线实践
代码 RAG 管线从原型到生产需要解决索引更新、检索延迟和结果质量等工程问题。
管线架构
完整管线包含:代码采集、解析分块、向量化、索引存储、在线检索、重排序、上下文注入。
python
from tree_sitter import Parser
class CodeChunker:
def chunk(self, code, language):
parser = Parser()
parser.set_language(self.get_language(language))
tree = parser.parse(code)
chunks = []
for node in tree.root_node.children:
if node.type in ("function_definition", "class_definition"):
chunks.append({"content": node.text, "type": node.type})
return chunks向量化策略
- 通用 Embedding:text-embedding-3-large
- 代码专用:Voyage Code 3
- 混合检索:向量 + BM25
混合检索优势
混合检索结合语义相似性和精确匹配,代码检索场景通常提升 10-15%。