씨잉
AI 시대에 대한 코드 검색 엔진. SeoGoat는 벡터 임베드를 활용하여 코드베이스를 의미 적으로 검색 할 수있는 로컬 검색 도구입니다.
SeaGoat를 설치하려면 컴퓨터에 이미 설치되어 있어야합니다.
bat
설치되면 색상이 활성화되는 한 결과를 표시하는 데 사용됩니다. SeoGoat가 파이프 라인의 일부로 사용되면 Grep-line 출력 형식이 사용됩니다. 색상이 활성화되지만 bat
설치되지 않으면 SeoGoat는 Pygments를 사용하여 출력을 강조합니다. bat
사용이 권장됩니다.
pipx
사용하여 SeoGoat를 설치하려면 다음 명령을 사용하십시오.
pipx install seagoat
괜찮은 노트북에서 작동해야합니다.
SeoGoat는 Linux ( 테스트 된 ✅), MACOS (부분 테스트, 도움말 ) 및 Windows ( 도움말 )에서 작동하도록 설계되었습니다.
프로젝트에서 SeoGoat를 사용하려면 다음 명령을 사용하여 SeoGoat 서버를 시작해야합니다.
seagoat-server start /path/to/your/repo
서버가 실행중인 경우 gt
또는 seagoat
명령을 사용하여 저장소를 쿼리 할 수 있습니다. 예를 들어:
gt " Where are the numbers rounded "
예를 들어 쿼리에서 정규식을 사용할 수도 있습니다.
gt " function calc_.* that deals with taxes "
다음 명령을 사용하여 실행중인 서버를 중지 할 수 있습니다.
seagoat-server stop /path/to/your/repo
SeaGoat은 전 세계적으로 또는 프로젝트에서 .seagoat.yml
파일을 사용하여 Yaml 구성 파일을 통해 귀하의 요구에 맞게 조정할 수 있습니다. 예를 들어:
# .seagoat.yml
server :
port : 31134 # Specify server port
자세한 내용은 문서를 확인하십시오!
요구 사항 :
저장소를 복제 한 후 다음 명령을 사용하여 종속성을 설치하십시오.
poetry install
poetry run ptw
poetry run pytest . --testmon
poetry run pytest .
지역 개발 환경에서 SeaGoat 명령을 수동으로 테스트 할 수 있습니다. 예를 들어 seagoat-server
명령의 개발 버전을 테스트하려면 다음을 실행할 수 있습니다.
poetry run seagoat-server start ~ /path/an/example/repository
이 FAQ의 요점은 Seogoat의 작동 방식을 나타내지 만 법적 계약은 아닙니다. SeaGoat는 오픈 소스 라이센스에 따라 라이센스를 부여하며 SeoGoat의 개인 정보 보호/안전 등에 대해 의심되는 경우 소스 코드를 검사하거나 우려 사항을 높이거나 문제를 해결하기위한 풀 요청을 만들 수 있습니다.
SeaGoat은 타사 API 또는 원격 API에 의존하지 않으며 자신의 컴퓨터에서 실행할 수있는 SeoGoat 서버를 사용하여 로컬로 모든 기능을 실행합니다.
API에 의존하거나 "Chatgpt에 연결"하는 대신 ChromADB라는 벡터 데이터베이스를 사용하며 로컬 벡터 임베딩 엔진 및 기본적으로 비활성화 된 텔레미트를 사용합니다.
그 외에도 Seogoat은 "AI 기반"매치 외에 정규 표현식/키워드 기반 매치를 제공하기 위해 일반 표현 기반 코드 검색 엔진 인 Ripgrep을 사용합니다.
현재 버전의 SEAGOAT는 데이터를 원격 서버로 보내지 않지만 앞으로 더 많은 개선을 얻을 수 있다면 선택적 기능이있을 수 있습니다.
SeoGoat은 빠른 응답을 제공하기 위해 서버가 필요합니다. Seogoat는 벡터 임베딩 및 벡터 데이터베이스에 크게 의존하며, 현재 파일을 즉시 처리하는 아키텍처로 교체 할 수 없습니다.
SeaGoat Server를 전체적으로 로컬로 실행할 수 있다는 점은 주목할 가치가 있으며 인터넷에 연결되어 있지 않더라도 작동합니다. 이 유스 케이스는 원격 서버와 데이터를 공유 할 필요가 없으며, SeaGoat 서버를 실행하고 다른 컴퓨터를 연결할 수는 있지만, 원하는 경우 다른 컴퓨터를 연결할 수는 있지만, 자신의 SeoGoat 서버를 로컬에서 사용할 수 있습니다.
AI 도구 사용의 윤리적 영향에 대해 우려하는 경우 SeoGoat는 코드 생성기가 아니라 코드 검색 엔진이므로 AI 파생 작업을 생성하지 않습니다.
즉, 언어 모델은 벡터 임베딩을 생성하는 데 사용되고 있습니다 . 현재 SeoGoat는 ChromADB의 기본 모델을 사용하여 벡터 임베딩을 계산하며, 이것이 윤리적 인 관심사라는 것을 알지 못합니다.
현재 SeoGoat은 다음 형식의 파일 만 처리하도록 하드 코딩됩니다.
*.txt
)*.md
)*.py
)*.c
, *.h
)*.cpp
, *.cc
, *.cxx
, *.hpp
)*.ts
, *.tsx
)*.js
, *.jsx
)*.html
)*.go
)*.java
)*.php
)*.rb
)대규모 리포지토리의 파일을 처리하는 데 오랜 시간이 걸릴 수 있으므로 SeoGoat은 파일을 처리하는 동안 컴퓨터를 사용할 수 있도록 설계되었습니다 . 컴퓨터 차단/속도를 피하기 위해 의도적 인 설계 선택입니다.
이 설계 결정은 쿼리의 성능에 영향을 미치지 않습니다.
그건 그렇고, 파일을 처리하는 동안 SEAGOAT를 사용하여 저장소를 쿼리 할 수 있습니다! 쿼리를 만들고 파일이 아직 처리되지 않으면 결과의 정확도를 추정하여 경고를 받게됩니다. 또한, 정기 표현식/전문 검색 기반 결과가 처음부터 표시됩니다!
바람직한 문자 인코딩은 UTF-8입니다. 대부분의 다른 문자 인코딩도 작동해야합니다. 텍스트 파일 만 지원되며 SeoGoat는 이진 파일을 무시합니다.
SeoGoat가 데이터베이스를 저장하고 캐시가 운영 체제에 따라 다릅니다. 편의를 위해 seagoat-server server-info
명령을 사용하여 이러한 파일이 시스템에 저장된 위치를 찾을 수 있습니다.
예, 동일한 컴퓨터에서 서버를 실행하지 않고 SeaGoat를 사용하려면 다른 컴퓨터 나 클라우드에서 SeoGoat 서버를 자조적으로 주최 하고이 원격 서버에 연결하도록 seagoat
/ gt
명령을 구성 할 수 있습니다. 인터넷을 통해.
Seogoat 자체는 주로 로컬로 운영되도록 설계되었으므로 Seogoat 자체는 보안을 시행하지 않습니다. 누수를 원하지 않는 개인 코드가있는 경우, 신뢰할 수있는 사람들 만 Seogoat 서버에 액세스 할 수 있는지 확인해야합니다. 이는 팀원 만 액세스 할 수있는 VPN을 통해서만 사용할 수있게함으로써 수행 할 수 있습니다.
SeaGoat은 이미 .gitignore
에서 무시한 모든 파일/디렉토리를 무시합니다. 추가 파일을 무시하려고하지만 git에 보관하려면 서버 구성에서 ignorePatterns
속성을 사용할 수 있습니다. 자세히 알아보십시오