シーゴート
AI時代のコード検索エンジン。 Seagoatは、ベクトル埋め込みを活用してコードベースを意味的に検索できるようにするローカル検索ツールです。
シーゴートをインストールするには、次の依存関係をコンピューターに既にインストールする必要があります。
bat
が設置されると、色が有効になっている限り、結果を表示するために使用されます。パイプラインの一部としてシーゴートを使用する場合、グレップライン出力形式が使用されます。色が有効になっているが、 bat
が取り付けられていない場合、SeagoatはPygmentsを使用して出力を強調表示します。 bat
の使用をお勧めします。
pipx
を使用してSEAGOATをインストールするには、次のコマンドを使用します。
pipx install seagoat
まともなラップトップで作業する必要があります。
SEAGOATは、Linux(テストexted)、MacOS(部分的にテストされた、ヘルプ)、およびWindows(必要なヘルプ)で動作するように設計されています。
プロジェクトでSEAGOATを使用するには、次のコマンドを使用してSEAGOATサーバーを起動する必要があります。
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のポイントは、シーゴートの仕組みの兆候ですが、法的契約ではありません。 Seagoatはオープンソースライセンスの下でライセンスされており、Seagoatのプライバシー/安全性/などの影響について疑問がある場合は、ソースコードを調べたり、懸念を提起したり、問題を修正するためのプルリクエストを作成したりできます。
Seagoatは、サードパーティのAPIまたはリモートAPIに依存せず、自分のマシンで実行できるSeagoatサーバーを使用してすべての機能をローカルに実行します。
APIに依存したり、「ChatGPTへの接続」に頼る代わりに、ChromADBと呼ばれるベクトルデータベースを使用し、デフォルトでローカルベクトル埋め込みエンジンとテレメトリが無効になっています。
それとは別に、Seagoatは、「AIベースの」マッチに加えて、通常の表現/キーワードベースの一致をプロバイダーに提供するために、通常の発現ベースのコード検索エンジンであるRipgrepも使用します。
SEAGOATの現在のバージョンでは、データをリモートサーバーに送信しませんが、将来的にはオプションの機能が存在する可能性があります。
Seagoatは、迅速な応答を提供するためにサーバーを必要とします。 Seagoatは、ベクトルの埋め込みとベクトルデータベースに大きく依存しており、現時点では、その場でファイルを処理するアーキテクチャに置き換えることはできません。
Seagoatサーバーを完全にローカルで実行できることは注目に値します。インターネットに接続していなくても機能します。このユースケースでは、リモートサーバーとデータを共有する必要はありません。また、Seagoatサーバーを実行し、他のコンピューターが必要に応じて接続できるようにすることもできますが、独自のSeagoatサーバーをローカルで使用できます。
AIツールを使用することの倫理的意味が心配な場合、Seagoatはコードジェネレーターではなくコード検索エンジンであるため、AI導出された作業を作成しないことに留意してください。
そうは言っても、言語モデルがベクトル埋め込みを生成するために使用されています。現時点では、Seagoatはベクターの埋め込みを計算するためにChromAdbのデフォルトモデルを使用していますが、これが倫理的な懸念であることはわかりません。
現在、Seagoatは、次の形式でファイルのみを処理するようにハードコード化されています。
*.txt
)*.md
)*.py
)*.c
、 *.h
)*.cpp
、 *.cc
、 *.cxx
、 *.hpp
)*.ts
、 *.tsx
)*.js
、 *.jsx
)*.html
)*.go
)*.java
)*.php
)*.rb
)大規模なリポジトリのファイルの処理には長い時間がかかる場合があるため、Seagoatはファイルの処理中にコンピューターを使用できるように設計されています。これは、コンピューターのブロック/スローダウンを避けるための意図的な設計の選択です。
この設計上の決定は、クエリのパフォーマンスに影響しません。
ちなみに、ファイルを処理している間、SEAGOATを使用してリポジトリを照会することができます!クエリを作成すると、ファイルがまだ処理されていない場合、結果の精度を推定して警告が表示されます。また、正規表現/全文検索ベースの結果が最初から表示されます!
好ましい文字エンコードはUTF-8です。他のほとんどのキャラクターエンコーディングも機能するはずです。テキストファイルのみがサポートされています。Seagoatはバイナリファイルを無視します。
Seagoatがデータベースとキャッシュを保存する場所は、オペレーティングシステムに依存します。便利なため、 seagoat-server server-info
コマンドを使用して、これらのファイルがシステム上に保存されている場所を確認できます。
はい、同じコンピューターでサーバーを実行することなくSEAGOATを使用したい場合は、別のコンピューターまたはクラウドにSEAGOATサーバーを自己ホストし、 seagoat
/ gt
コマンドを構成してこのリモートサーバーに接続できます。インターネットを通じて。
Seagoat自体は、主にローカルで実行されるように設計されているため、セキュリティを実施しないことに注意してください。リークを希望したくないプライベートコードがある場合は、信頼できる人だけがSEAGOATサーバーにアクセスできることを確認する必要があります。これは、チームメイトだけがアクセスできるVPNを介してのみ利用できるようにすることで行うことができます。
Seagoatは、 .gitignore
で無視されているすべてのファイル/ディレクトリを無視しています。追加のファイルを無視したいが、それらをGITに保持する場合は、サーバー構成からignorePatterns
属性を使用できます。もっと詳しく知る