Seagoat
Поисковая система кода для возраста ИИ. Seagoat - это локальный инструмент поиска, который использует векторные встраивания, чтобы позволить вам семантически искать кодовую базу.
Чтобы установить Seagoat, вам необходимо установить следующие зависимости на вашем компьютере:
Когда bat
установлена, она используется для отображения результатов, если включен цвет. Когда Seagoat используется как часть трубопровода, используется выходной формат Grep-Line. Когда цвет включен, но bat
не установлена, Seagoat выделяет выход с помощью пигментов. Рекомендуется использовать bat
.
Чтобы установить Seagoat с помощью pipx
, используйте следующую команду:
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 может быть адаптирован к вашим потребностям с помощью файлов конфигурации YAML, как глобально, так и для проекта, специфически с помощью файла .seagoat.yml
. Например:
# .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 или каких -либо удаленных API и выполняет все функциональные возможности локально, используя сервер Seagoat, который вы можете запустить на своей собственной машине.
Вместо того, чтобы полагаться на API или «подключение к CATGPT», он использует векторную базу данных, называемую ChromADB, с локальным векторным двигателем и телеметрией отключен по умолчанию.
Кроме того, Seagoat также использует Ripgrep, поисковую систему кода на основе регулярной экспрессии, чтобы поставить соответствия регулярного выражения/ключевых слов в дополнение к совпадениям «на основе AI».
Несмотря на то, что текущая версия Seagoat не отправляет ваши данные на удаленные серверы, возможно, что в будущем будут дополнительные функции, которые будут делать это, если из этого можно получить дополнительное улучшение.
Seagoat нужен сервер, чтобы дать быстрый ответ. Seagoat в значительной степени полагается на векторные встроения и векторные базы данных, которые на данный момент не могут быть заменены архитектурой, которая обрабатывает файлы на лету.
Стоит отметить, что вы можете запустить Seagoat Server полностью локально , и он работает, даже если у вас нет подключения к Интернету. Этот вариант использования не требует, чтобы вы обменивались данными с удаленным сервером, вы можете использовать свой собственный сервер Seagoat локально, хотя также возможно запустить сервер Seagoat и позволить другим компьютерам подключаться к нему, если вы так хотите.
Если вы обеспокоены этическими последствиями использования инструментов искусственного интеллекта, помните, что Seagoat не является генератором кода, а поисковой системой кода, поэтому она не создает работу, полученную из ИИ.
При этом языковая модель используется для создания векторных вторжений. На данный момент 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. Это можно сделать, сделав его доступным только через VPN, к которому могут получить доступ только ваши товарищи по команде.
Seagoat уже игнорирует все файлы/каталоги, игнорируемые в вашем .gitignore
. Если вы хотите игнорировать дополнительные файлы, но сохраните их в GIT, вы можете использовать атрибут ignorePatterns
из конфигурации сервера. Узнать больше