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 파일을 자동으로 존중합니다.
  • 유연한 배포: 로컬 머신에서 실행하거나 팀 접근을 위해 원격 서버에 자체 호스팅할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트