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

주요 기능:
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
대본 기획 도우미▸
AI 앱
AI 뉴스 