海山羊
AI時代的代碼搜索引擎。 Seagoat是一種本地搜索工具,它利用矢量嵌入使您能夠以語義搜索代碼庫。
為了安裝Seagoat,您需要在計算機上安裝以下依賴項:
安裝bat
後,只要啟用顏色,它就會用於顯示結果。當將海山羊用作管道的一部分時,使用GREP線輸出格式。啟用顏色,但沒有安裝bat
時,海山羊將使用Pygments突出顯示輸出。建議使用bat
。
要使用pipx
安裝Seagoat,請使用以下命令:
pipx install seagoat
應該在任何體面的筆記本電腦上工作。
Seagoat旨在在Linux(測試✅),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.yml
文件在全球範圍內或項目特定的YAML配置文件來根據您的需求量量身定制Seagoat。例如:
# .seagoat.yml
server :
port : 31134 # Specify server port
查看文檔以獲取更多詳細信息!
要求:
克隆存儲庫後,使用以下命令安裝依賴項:
poetry install
poetry run ptw
poetry run pytest . --testmon
poetry run pytest .
您可以在本地開發環境中手動測試任何海綿體命令。例如,要測試seagoat-server
命令的開發版本,您可以運行:
poetry run seagoat-server start ~ /path/an/example/repository
該常見問題解答中的觀點表明了海綿體的運作方式,但不是法律合同。 Seagoat已獲得開源許可證的許可,如果您對Seagoat的隱私/安全/等含義有疑問,歡迎您檢查源代碼,提高您的疑慮或創建拉動請求以解決問題。
Seagoat不依賴第三方API或任何遠程API,並使用您可以在自己的機器上運行的Seagoat Server在本地執行所有功能。
它不依賴API或“連接到chatgpt”,而是使用稱為Chromadb的矢量數據庫,默認情況下將禁用本地矢量嵌入引擎和遙測。
除此之外,Seagoat還使用RIPGREP(一種基於常規表達的代碼搜索引擎),以便除了“基於AI”的匹配項之外,提供商正則表達式/基於關鍵字的匹配。
儘管當前版本的Seagoat不會將您的數據發送到遠程服務器,但將來可能會有可選的功能可以從中獲得任何進一步的改進。
Seagoat需要服務器才能提供快速響應。 Seagoat在很大程度上依賴於矢量嵌入和矢量數據庫,目前無法用即時處理文件的架構代替。
值得注意的是,您能夠完全在本地運行Seagoat服務器,即使您沒有Internet連接,也可以正常運行。此用例不需要您與遠程服務器共享數據,您可以在本地使用自己的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而不必在同一台計算機上運行服務器,則可以簡單地在另一台計算機或云中使用Seel-Host Seagoat服務器,並配置seagoat
/ gt
命令即可連接到此遠程服務器通過互聯網。
請記住,Seagoat本身並沒有執行任何安全性,因為它主要是為了在本地運行的。如果您有不想洩漏的私人代碼,則必須確保只有值得信賴的人才能訪問Seagoat服務器。這可以通過僅通過VPN提供,只有您的隊友才能訪問它。
Seagoat已經忽略了.gitignore
中忽略的所有文件/目錄。如果您想忽略其他文件,但請將它們保留在git中,則可以使用服務器配置中的ignorePatterns
屬性。了解更多