code-graph-rag
code-graph-rag: 무엇인지, 어떤 문제를 해결하는지 & 왜 인기를 얻고 있는지
해결하는 문제
Code-Graph-RAG는 자연어를 사용하여 대규모의 다국어 코드베이스를 분석하고 쿼리할 수 있는 방법을 제공합니다. 이는 수동으로 탐색하거나 단순한 텍스트 기반 검색으로는 탐색하기 어려운 복잡한 프로젝트 구조와 관계(함수 호출 및 클래스 계층 구조 등)를 이해하는 문제를 해결합니다.
작동 방식
이 시스템은 여러 언어에 걸쳐 강력한 AST (Abstract Syntax Tree) 파싱을 위해 Tree-sitter를 사용합니다. 그런 다음 코드베이스 구조의 포괄적인 지식 그래프를 구축하여 Memgraph에 저장합니다. 사용자는 일반적인 영어로 질문을 할 수 있으며, 시스템은 Google Gemini, OpenAI 또는 Ollama를 통한 로컬 모델과 같은 제공업체의 AI 모델을 사용하여 이를 Cypher 쿼리(그래프 데이터베이스 쿼리 언어)로 변환합니다. 또한 특정 소스 코드 스니펫을 검색하고 AST를 기반으로 정밀한 코드 교체를 수행할 수 있습니다.
대상 사용자
이 도구는 대규모의 기존 코드베이스, 특히 여러 언어를 사용하는 코드베이스를 탐색, 이해 및 최적화해야 하는 개발자를 위해 설계되었습니다.
주요 특징
- 다국어 지원: C, C++, Java, JavaScript, TypeScript, Python, Rust, PHP, Lua를 완벽하게 지원하며, Go와 Scala는 개발 중입니다.
- C-Family 지원: C++ 템플릿, 연산자 오버로딩, C 전처리기 include에 대한 심층 분석을 지원합니다.
- AI 기반 쿼리: 코드베이스 구조를 쿼리하기 위한 자연어의 Cypher 변환 기능을 제공합니다.
- 정밀한 편집: 정확한 코드 수정을 위해 AST 기반의 함수 타겟팅을 지원합니다.
- 실시간 업데이트: 코드가 변경됨에 따라 지식 그래프를 자동으로 동기화하는 watcher를 제공합니다.
- 유연한 AI 백엔드: 클라우드(Gemini, OpenAI) 및 로컬(Ollama) LLM을 지원합니다.
- Shell 통합: 테스트 또는 CLI 도구 사용을 위한 터미널 명령 실행 기능을 제공합니다.
Sources
- undefinedvitali87/code-graph-rag