Seagoat
Mesin pencari kode untuk usia AI. Seagoat adalah alat pencarian lokal yang memanfaatkan vektor embeddings untuk memungkinkan Anda mencari basis kode Anda secara semantik.
Untuk menginstal Seegoat, Anda harus memiliki dependensi berikut yang sudah diinstal di komputer Anda:
Saat bat
diinstal, digunakan untuk menampilkan hasil selama warna diaktifkan. Ketika Seagoat digunakan sebagai bagian dari pipa, format output lini GREP digunakan. Ketika warna diaktifkan, tetapi bat
tidak dipasang, Seagoat akan menyoroti output menggunakan pygments. Menggunakan bat
direkomendasikan.
Untuk memasang Seagoat menggunakan pipx
, gunakan perintah berikut:
pipx install seagoat
Harus bekerja pada laptop yang layak.
Seagoat dirancang untuk bekerja di Linux ( diuji ✅), macOS (sebagian diuji, bantuan ) dan windows ( bantuan yang dibutuhkan ).
Untuk menggunakan Seagoat di proyek Anda, Anda harus memulai server Seegoat menggunakan perintah berikut:
seagoat-server start /path/to/your/repo
Jika Anda memiliki server yang berjalan, Anda dapat menggunakan perintah gt
atau seagoat
untuk menanyakan repositori Anda. Misalnya:
gt " Where are the numbers rounded "
Anda juga dapat menggunakan ekspresi reguler dalam pertanyaan Anda, misalnya
gt " function calc_.* that deals with taxes "
Anda dapat menghentikan server yang sedang berjalan menggunakan perintah berikut:
seagoat-server stop /path/to/your/repo
Seagoat dapat disesuaikan dengan kebutuhan Anda melalui file konfigurasi YAML, baik secara global atau proyek khusus dengan file .seagoat.yml
. Misalnya:
# .seagoat.yml
server :
port : 31134 # Specify server port
Lihat dokumentasi untuk lebih jelasnya!
Persyaratan :
Setelah mengkloning repositori, instal dependensi menggunakan perintah berikut:
poetry install
poetry run ptw
poetry run pytest . --testmon
poetry run pytest .
Anda dapat menguji perintah seapegare secara manual di lingkungan pengembangan lokal Anda. Misalnya untuk menguji versi pengembangan dari perintah seagoat-server
, Anda dapat menjalankan:
poetry run seagoat-server start ~ /path/an/example/repository
Poin -poin dalam FAQ ini adalah indikasi bagaimana Seargeat bekerja, tetapi bukan kontrak hukum. Seagoat dilisensikan di bawah lisensi open source dan jika Anda ragu tentang privasi/keselamatan/dll implikasi Seegoat, Anda dipersilakan untuk memeriksa kode sumber, mengangkat kekhawatiran Anda, atau membuat permintaan tarik untuk memperbaiki masalah.
Seagoat tidak bergantung pada API pihak ke -3 atau API jarak jauh dan mengeksekusi semua fungsionalitas secara lokal menggunakan server Seegoat yang dapat Anda jalankan di mesin Anda sendiri.
Alih -alih mengandalkan API atau "Menghubungkan ke ChatGPT", ia menggunakan database vektor yang disebut ChromadB, dengan mesin embedding vektor lokal dan telemetri dinonaktifkan secara default.
Selain itu, Seagoat juga menggunakan RIPGREP, mesin pencari kode berbasis ekspresi reguler untuk penyedia pencocokan berbasis ekspresi/kata kunci reguler selain kecocokan "berbasis AI".
Meskipun versi Seegoat saat ini tidak mengirim data Anda ke server jarak jauh, mungkin saja di masa depan akan ada fitur opsional yang melakukannya, jika ada peningkatan lebih lanjut yang dapat diperoleh dari itu.
Seagoat membutuhkan server untuk memberikan respons yang cepat. Seagoat sangat bergantung pada embeddings vektor dan database vektor, yang saat ini tidak dapat diganti dengan arsitektur yang memproses file dengan cepat.
Perlu dicatat bahwa Anda dapat menjalankan server Seegoat sepenuhnya secara lokal , dan itu berfungsi bahkan jika Anda tidak memiliki koneksi internet. Kasing penggunaan ini tidak mengharuskan Anda untuk berbagi data dengan server jarak jauh, Anda dapat menggunakan server Seegoat Anda sendiri secara lokal, meskipun juga dimungkinkan untuk menjalankan server Seegoat dan memungkinkan komputer lain untuk terhubung ke sana, jika Anda menginginkannya.
Jika Anda khawatir tentang implikasi etis menggunakan alat AI, perlu diingat bahwa Seegoat bukan generator kode tetapi mesin pencari kode, oleh karena itu tidak membuat pekerjaan yang diturunkan AI.
Yang sedang berkata, model bahasa digunakan untuk menghasilkan embeddings vektor. Saat ini Seagoat menggunakan model default Chromadb untuk menghitung embeddings vektor, dan saya tidak menyadari ini menjadi masalah etis.
Saat ini Seagoat dikodekan keras untuk hanya memproses file dalam format berikut:
*.txt
)*.md
)*.py
)*.c
, *.h
)*.cpp
, *.cc
, *.cxx
, *.hpp
)*.ts
, *.tsx
)*.js
, *.jsx
)*.html
)*.go
pergi )*.java
)*.php
)*.rb
)Karena memproses file untuk repositori besar dapat memakan waktu lama, Seagoat dirancang untuk memungkinkan Anda menggunakan komputer saat memproses file . Ini adalah pilihan desain yang disengaja untuk menghindari pemblokiran/memperlambat komputer Anda.
Keputusan desain ini tidak mempengaruhi kinerja kueri.
Ngomong -ngomong, Anda dapat menggunakan Seargeat untuk menanyakan repositori Anda saat memproses file Anda! Saat Anda membuat kueri, dan file belum diproses, Anda akan menerima peringatan dengan estimasi keakuratan hasil Anda. Juga, ekspresi reguler/hasil berbasis pencarian teks lengkap akan ditampilkan sejak awal!
Pengkodean karakter yang disukai adalah UTF-8. Sebagian besar pengkodean karakter lain juga harus berfungsi. Hanya file teks yang didukung, Seagoat mengabaikan file biner.
Di mana Seagoat menyimpan database dan cache tergantung pada sistem operasi Anda. Untuk kenyamanan Anda, Anda dapat menggunakan perintah seagoat-server server-info
untuk mengetahui di mana file-file ini disimpan di sistem Anda.
Ya, jika Anda ingin menggunakan Seagoat tanpa harus menjalankan server di komputer yang sama, Anda dapat dengan cukup menuam sendiri server Seegoat di komputer yang berbeda atau di cloud, dan mengkonfigurasi perintah seagoat
/ gt
untuk terhubung ke server jarak jauh ini ini melalui internet.
Perlu diingat bahwa Seegoat sendiri tidak menegakkan keamanan apa pun karena terutama dirancang untuk berjalan secara lokal. Jika Anda memiliki kode pribadi yang tidak ingin Anda bocor, Anda harus memastikan bahwa hanya orang -orang tepercaya yang memiliki akses ke server Seargeat. Ini dapat dilakukan dengan membuatnya hanya tersedia melalui VPN yang hanya dapat diakses oleh rekan tim Anda.
Seagoat sudah mengabaikan semua file/direktori yang diabaikan di .gitignore
Anda. Jika Anda ingin mengabaikan file tambahan tetapi menyimpannya di git, Anda dapat menggunakan atribut ignorePatterns
dari konfigurasi server. Pelajari lebih lanjut