kantord/SeaGOAT
local-first semantic code search engine
해결하는 문제
SeaGOAT은 개발자가 코드베이스를 단순히 키워드 기반 검색에 의존하지 않고 의미적으로 검색할 수 있도록 해주는 로컬 코드 검색 엔진입니다. 사용자는 정확한 문자열 일치가 아니라, 질문의 의미에 기반해 코드 스니펫을 찾을 수 있습니다 (예: "숫자가 반올림되는 곳은 어디인가요?").
작동 방식
이 도구는 리포지토리 처리 및 코드의 벡터 임베딩 생성을 담당하는 로컬 서버(seagoat-server)를 통해 작동합니다. 데이터 프라이버시를 보장하기 위해 ChromaDB를 로컬 벡터 데이터베이스로 사용하고, 로컬 임베딩 엔진을 활용합니다. 포괄적인 결과를 제공하기 위해 AI 기반 의미 검색 결과와 ripgrep로 구동되는 전통적인 정규표현식 및 키워드 기반 검색을 결합합니다.
대상 사용자
Python, C++, TypeScript, Go, Java 등 다양한 지원 언어의 로컬 코드베이스에서 빠르고, 개인 정보 보호가 보장되며 의미 기반 검색을 원하는 개발자들입니다.
주요 특징
- 로컬 우선 아키텍처: ChatGPT 같은 제3자 API에 의존하지 않고, 모든 처리와 임베딩을 로컬에서 수행합니다.
- 하이브리드 검색: 벡터 기반 의미 검색과 ripgrep를 통한 정규표현식 및 키워드 매칭을 결합합니다.
- 백그라운드 처리: 파일을 백그라운드에서 인덱싱하여 시스템 성능 저하를 방지합니다.
- Git 통합:
.gitignore파일을 자동으로 존중합니다. - 유연한 배포: 로컬 머신에서 실행하거나 팀 접근을 위해 원격 서버에 자체 호스팅할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트