Code-Graph-RAG: 지식 그래프 기반 코드 검색 엔진 77

小编 ·

Code-Graph-RAG: 지식 그래프 기반 코드 검색 엔진

Code-Graph-RAG는 지식 그래프와 검색 증강 생성(RAG) 기술을 결합한 코드 검색 엔진으로, 코드 검색의 정확도를 높이는 것을 목표로 합니다.

Code-Graph-RAG: 지식 그래프 기반 코드 검색 엔진

Code-Graph-RAG는 지식 그래프와 검색 증강 생성(RAG) 기술을 결합한 코드 검색 엔진으로, 코드 검색의 정확도를 높이는 것을 목표로 합니다.

Code-Graph-RAG:지식 그래프 기반 코드 검색 엔진.webp

주요 기능:

  • Python, JavaScript, TypeScript, Rust, Go 등 다국어 코드베이스 지원

  • Tree-sitter 기반으로 다국어 추상 구문 트리(AST) 파싱 구현

  • Memgraph를 사용해 코드 구조를 상호 연결된 그래프로 저장

  • 자연어 기반 코드베이스 질의 지원

  • Google Gemini를 통해 자연어를 Cypher 쿼리 문으로 변환

  • 함수/메서드의 실제 소스 코드를 직접 검색 가능

  • pyproject.toml을 파싱하여 외부 의존성 분석 가능

  • 중첩 함수 및 클래스 계층 구조 처리 지원

  • 지원되는 모든 언어에 대해 통합 그래프 스키마 설계 적용

기술 원리:

  • 지식 그래프 구축: 대규모 모델이 코드베이스를 분석한 후 클래스, 함수 등 엔터티와 그 관계(예: 상속, 의존성)를 추출하여 상호 연결된 그래프를 구축합니다. 예를 들어 코드 문서를 입력하면 시스템이 텍스트 단위를 분할하고 코드 구조를 인식하여 해당 그래프를 생성합니다.

  • 그래프 강화 검색:

  • 서브 그래프 검색: 사용자가 질문하면 시스템이 핵심 엔터티를 추출하고 그래프에서 연관 경로(예: 3-홉 이웃)를 확장하여 매칭 서브 그래프를 생성합니다. 예를 들어 특정 함수를 질의할 때 관련 클래스, 모듈 등 노드와 연결할 수 있습니다.

  • 하이브리드 검색 전략: 벡터 검색(예: BERT 임베딩)과 그래프 임베딩(예: Node2Vec, TransE)을 결합하여 가중치 공식(예: Score=α⋅cos_sim(q,v)+β⋅graph_score(q,G))으로 최종 결과를 결정합니다.

시스템 아키텍처:

  • 다국어 파서: Tree-sitter 기반의 코드 파싱 및 데이터 임포트 시스템

  • RAG 시스템: 대화형 명령줄 질의 인터페이스

핵심 구성 요소:

  • Tree-sitter 통합: 다국어 파싱 구현

  • 그래프 데이터베이스: 노드와 관계를 저장하는 Memgraph

  • LLM 통합: 자연어를 처리하는 Google Gemini

  • 코드 분석: 다국어 AST 순회를 통한 코드 요소 추출

  • 질의도구: 전용 그래프 질의 및 코드 검색 도구

  • 언어 설정: 다국어 매핑 파라미터

설치 및 사용:

  • 전제 조건: Python 3.12+, Docker 및 Docker Compose(Memgraph), Google Gemini API 키, uv 패키지 관리자

  • 설치 단계: 저장소 복제 → 의존성 설치 → 환경 변수 구성 → Memgraph 시작

  • 사용 흐름: 코드베이스를 파싱하여 지식 그래프 생성 → RAG CLI를 시작하여 대화형 질의 수행

활용 시나리오:

  • 코드 분석: 특정 이름의 클래스나 데이터베이스 관련 함수 질의 등 코드 구조를 빠르게 이해

  • 코드 재사용: 자연어로 요구 사항을 설명하여 의미적으로 일치하는 코드 스니펫을 얻어 개발 효율성 향상

프로젝트 주소:

https://github.com/vitali87/code-graph-rag