Seagaat
Eine Code -Suchmaschine für das KI -Alter. Seagaat ist ein lokales Suchwerkzeug, mit dem die Vektor -Einbettungen nutzt, mit denen Sie Ihre Codebasis semantisch durchsuchen können.
Um Seagaat zu installieren, müssen Sie die folgenden Abhängigkeiten bereits auf Ihrem Computer installiert haben:
Wenn bat
installiert ist, wird es verwendet, um Ergebnisse anzuzeigen, solange die Farbe aktiviert ist. Wenn Seagaat als Teil einer Pipeline verwendet wird, wird ein Grep-Line-Ausgangsformat verwendet. Wenn die Farbe aktiviert ist, bat
jedoch nicht installiert ist, hebt Seagaat die Ausgabe mithilfe von Pygmenten hervor. Die Verwendung von bat
wird empfohlen.
Verwenden Sie zum Installieren von Seagoat mit pipx
den folgenden Befehl:
pipx install seagoat
Sollte an einem anständigen Laptop arbeiten.
Seagaat ist so konzipiert, dass sie unter Linux ( getestet ✅), macOS (teilweise getestet, hilfreich ) und Windows ( Hilfe benötigt ) funktioniert.
Um Seagaat in Ihrem Projekt zu verwenden, müssen Sie den Seagaat -Server mit dem folgenden Befehl starten:
seagoat-server start /path/to/your/repo
Wenn Sie den Server ausgeführt haben, können Sie einfach den Befehl gt
oder seagoat
verwenden, um Ihr Repository abzufragen. Zum Beispiel:
gt " Where are the numbers rounded "
Sie können beispielsweise auch regelmäßige Ausdrücke in Ihren Fragen verwenden
gt " function calc_.* that deals with taxes "
Sie können den laufenden Server mithilfe des folgenden Befehls stoppen:
seagoat-server stop /path/to/your/repo
Seagaat kann auf Ihre Anforderungen durch YAML-Konfigurationsdateien zugeschnitten werden, entweder global oder projektspezifisch mit einer .seagoat.yml
Datei. Zum Beispiel:
# .seagoat.yml
server :
port : 31134 # Specify server port
Weitere Informationen finden Sie in der Dokumentation!
Anforderungen :
Installieren Sie nach dem Klonen des Repositorys Abhängigkeiten mit dem folgenden Befehl:
poetry install
poetry run ptw
poetry run pytest . --testmon
poetry run pytest .
Sie können jeden SEAAGAT -Befehl manuell in Ihrer lokalen Entwicklungsumgebung testen. Zum Beispiel, um die Entwicklungsversion des Befehls seagoat-server
zu testen, können Sie ausführen:
poetry run seagoat-server start ~ /path/an/example/repository
Die Punkte in diesen FAQ sind Anzeichen dafür, wie Seagaat funktioniert, aber kein Rechtsvertrag. Seagaat ist unter einer Open -Source -Lizenz lizenziert. Wenn Sie Zweifel über die Privatsphäre/Sicherheit/usw. Auswirkungen von Seagaat haben, können Sie den Quellcode untersuchen, Ihre Bedenken aussprechen oder eine Pull -Anfrage zur Behebung eines Problems erstellen.
Seagaat verlässt sich nicht auf APIs von Drittanbietern oder Remote -APIs und führt alle Funktionen lokal mit dem Seagaat -Server aus, den Sie auf Ihrer eigenen Maschine ausführen können.
Anstatt sich auf APIs zu verlassen oder sich "mit ChatGPT zu verbinden", verwendet sie die Vektor -Datenbank namens Chromadb, wobei eine lokale Vektor -Einbettung von Engine und Telemetrie standardmäßig deaktiviert ist.
Abgesehen davon verwendet Seagaat auch RIPGrep, eine reguläre expressionsbasierte Code-Suchmaschine, um zusätzlich zu den "AI-basierten" Übereinstimmungen regelmäßige Ausdrucks-/Keyword-Matchbasis anzustellen.
Während die aktuelle Version von Seagaat Ihre Daten nicht an Remote -Server sendet, kann es in Zukunft optionale Funktionen geben, wenn weitere Verbesserungen daraus gewonnen werden können.
Seagaat benötigt einen Server, um eine schnelle Antwort zu erhalten. Seagaat verlässt sich stark auf Vektor -Einbettungen und Vektor -Datenbanken, die im Moment nicht durch eine Architektur ersetzt werden können, die Dateien im laufenden Betrieb verarbeitet.
Es ist erwähnenswert, dass Sie in der Lage sind, den Seaagat -Server vollständig lokal auszuführen , und es funktioniert auch, wenn Sie keine Internetverbindung haben. In diesem Anwendungsfall müssen Sie keine Daten mit einem Remote -Server freigeben. Sie können Ihren eigenen Seagaat -Server lokal verwenden, obwohl es auch möglich ist, einen Seagaat -Server auszuführen und anderen Computern eine Verbindung dazu herzustellen, wenn Sie dies wünschen.
Wenn Sie sich über die ethischen Auswirkungen der Verwendung von AI -Tools besorgt haben, denken Sie daran, dass Seagaat kein Codegenerator, sondern eine Code -Suchmaschine ist, daher erstellt sie keine KI -abgeleiteten Arbeiten.
Davon abgesehen wird ein Sprachmodell verwendet, um Vektoreinbettungen zu generieren. Im Moment verwendet Seagaat das Standardmodell von Chromadb zur Berechnung von Vektoreinbettungen, und ich bin mir nicht bewusst, dass dies ein ethisches Problem ist.
Derzeit ist Seagaat nur schwer codiert, um nur Dateien in den folgenden Formaten zu verarbeiten:
*.txt
)*.md
)*.py
)*.c
, *.h
)*.cpp
, *.cc
, *.cxx
, *.hpp
)*.ts
, *.tsx
)*.js
, *.jsx
)*.html
)*.go
)*.java
)*.php
)*.rb
)Da die Verarbeitung von Dateien für große Repositories lange dauern kann, ist Seagaat so konzipiert, dass Sie Ihren Computer beim Verarbeiten von Dateien verwenden können . Es ist eine absichtliche Auswahl des Designs, um zu vermeiden, dass Sie Ihren Computer blockieren/verlangsamen.
Diese Entwurfsentscheidung wirkt sich nicht auf die Leistung von Fragen aus.
Übrigens können Sie Seagaat verwenden, um Ihr Repository abzufragen, während es Ihre Dateien verarbeitet! Wenn Sie eine Abfrage vornehmen und die Dateien noch nicht verarbeitet werden, erhalten Sie eine Warnung mit einer Schätzung der Genauigkeit Ihrer Ergebnisse. Außerdem werden von Anfang an regelmäßige Ausdrucks-/Volltexten -suchbasierte Ergebnisse angezeigt!
Die bevorzugte Charaktercodierung ist UTF-8. Die meisten anderen Charaktercodierungen sollten ebenfalls funktionieren. Es werden nur Textdateien unterstützt, Seagaat ignoriert binäre Dateien.
Wo Seagaat Datenbanken und Cache speichert, hängt von Ihrem Betriebssystem ab. Für Ihre Bequemlichkeit können Sie den Befehl seagoat-server server-info
verwenden, um herauszufinden, wo diese Dateien auf Ihrem System gespeichert sind.
Ja, gt
Sie seagoat
verwenden möchten, ohne den Server auf demselben Computer ausführen zu müssen durch das Internet.
Denken Sie daran, dass Seagaat selbst keine Sicherheit erzwingt, da sie in erster Linie so konzipiert ist, dass sie lokal läuft. Wenn Sie einen privaten Code haben, den Sie nicht auslaufen möchten, müssen Sie sicherstellen, dass nur vertrauenswürdige Personen Zugriff auf den Seagaat -Server haben. Dies kann erfolgen, indem es nur über ein VPN verfügbar ist, auf den nur Ihre Teamkollegen zugreifen können.
Seagaat ignoriert bereits alle Dateien/Verzeichnisse, die in Ihrem .gitignore
ignoriert sind. Wenn Sie zusätzliche Dateien ignorieren möchten, diese jedoch in Git aufbewahren möchten, können Sie das Attribut ignorePatterns
aus der Serverkonfiguration verwenden. Erfahren Sie mehr