Margen de mar
Un motor de búsqueda de código para la edad AI. SeaGoat es una herramienta de búsqueda local que aprovecha las integridades vectoriales para permitirle buscar en su base de código semánticamente.
Para instalar SeaGoat, debe tener las siguientes dependencias ya instaladas en su computadora:
Cuando se instala bat
, se utiliza para mostrar resultados siempre que el color esté habilitado. Cuando se usa SeaGoat como parte de una tubería, se utiliza un formato de salida de línea de grP. Cuando el color está habilitado, pero bat
no está instalado, Seagoat resaltará la salida usando Pygments. Se recomienda usar bat
.
Para instalar SeaGoat con pipx
, use el siguiente comando:
pipx install seagoat
Debería trabajar en cualquier computadora portátil decente.
SeaGoat está diseñado para funcionar en Linux ( probado ✅ ✅), macOS (parcialmente probado, ayuda ) y ventanas ( necesidad de ayuda ).
Para usar SeaGoat en su proyecto, debe iniciar el servidor Seagoat utilizando el siguiente comando:
seagoat-server start /path/to/your/repo
Si tiene el servidor en ejecución, simplemente puede usar el comando gt
o seagoat
para consultar su repositorio. Por ejemplo:
gt " Where are the numbers rounded "
También puede usar expresiones regulares en sus consultas, por ejemplo
gt " function calc_.* that deals with taxes "
Puede detener el servidor en ejecución usando el siguiente comando:
seagoat-server stop /path/to/your/repo
SeaGoat se puede adaptar a sus necesidades a través de archivos de configuración YAML, ya sea a nivel mundial o específico con un archivo .seagoat.yml
. Por ejemplo:
# .seagoat.yml
server :
port : 31134 # Specify server port
¡Mira la documentación para más detalles!
Requisitos :
Después de clonar el repositorio, instale dependencias utilizando el siguiente comando:
poetry install
poetry run ptw
poetry run pytest . --testmon
poetry run pytest .
Puede probar cualquier comando Seagoat manualmente en su entorno de desarrollo local. Por ejemplo, para probar la versión de desarrollo del comando seagoat-server
, puede ejecutar:
poetry run seagoat-server start ~ /path/an/example/repository
Los puntos en estas preguntas frecuentes son indicaciones de cómo funciona Seagoat, pero no son un contrato legal. Seagoat tiene licencia bajo una licencia de código abierto y si tiene dudas sobre la privacidad/seguridad/etc. Implicaciones de SeaGoat, puede examinar el código fuente, aumentar sus inquietudes o crear una solicitud de extracción para solucionar un problema.
SeaGoat no confía en las API de terceros ni las API remotas y ejecuta toda la funcionalidad localmente utilizando el servidor SeaGoat que puede ejecutar en su propia máquina.
En lugar de confiar en API o "conectarse a ChatGPT", utiliza la base de datos vectorial llamada ChromAdB, con un motor de incrustación vectorial local y la telemetría desactivada de forma predeterminada.
Además de eso, Seagoat también usa RipGrep, un motor de búsqueda de código basado en la expresión regular para proveedores de coincidencias regulares de expresión/palabras clave además de las coincidencias "basadas en IA".
Si bien la versión actual de SeaGoat no envía sus datos a servidores remotos, es posible que en el futuro haya características opcionales que lo hagan, si se puede obtener más mejora de eso.
Seagoat necesita un servidor para proporcionar una respuesta rápida. SeaGoat se basa en gran medida en las integridades vectoriales y las bases de datos vectoriales, que en este momento no pueden reemplazarse con una arquitectura que procesa archivos sobre la marcha.
Vale la pena señalar que puede ejecutar SeaGoat Server de manera completamente local , y funciona incluso si no tiene una conexión a Internet. Este caso de uso no requiere que comparta datos con un servidor remoto, puede usar su propio servidor Seagoat localmente, aunque también es posible ejecutar un servidor Seagoat y permitir que otras computadoras se conecten a él, si así lo desea.
Si le preocupa las implicaciones éticas del uso de herramientas de IA, tenga en cuenta que SeaGoat no es un generador de código sino un motor de búsqueda de código, por lo tanto, no crea un trabajo derivado de AI.
Dicho esto, se está utilizando un modelo de lenguaje para generar integridades vectoriales. En este momento, SeaGoat usa el modelo predeterminado de ChromAdB para calcular las integridades de vectores, y no soy consciente de que esto es una preocupación ética.
Actualmente, Seagoat está codificado solo para procesar archivos en los siguientes formatos:
*.txt
)*.md
)*.py
)*.c
, *.h
)*.cpp
, *.cc
, *.cxx
, *.hpp
)*.ts
, *.tsx
)*.js
, *.jsx
)*.html
)*.go
)*.java
)*.php
)*.rb
)Dado que el procesamiento de archivos para grandes repositorios puede llevar mucho tiempo, Seagoat está diseñado para permitirle usar su computadora mientras procesa archivos . Es una opción de diseño intencional para evitar bloquear/ralentizar su computadora.
Esta decisión de diseño no afecta el rendimiento de las consultas.
Por cierto, ¡puede usar SeaGoat para consultar su repositorio mientras procesa sus archivos! Cuando realiza una consulta y los archivos aún no se procesan, recibirá una advertencia con una estimación de la precisión de sus resultados. ¡Además, los resultados basados en la búsqueda de expresión regular/texto completo se mostrarán desde el principio!
La codificación de personajes preferidos es UTF-8. La mayoría de las otras codificaciones de personajes también deberían funcionar. Solo se admiten archivos de texto, Seagoat ignora los archivos binarios.
Donde SeaGoat almacena bases de datos y caché depende de su sistema operativo. Para su conveniencia, puede usar el comando seagoat-server server-info
para averiguar dónde se almacenan estos archivos en su sistema.
Sí, si desea usar SeaGoat sin tener que ejecutar el servidor en la misma computadora, simplemente puede autohacer el servidor SeaGoat en una computadora diferente o en la nube, y configurar el comando seagoat
/ gt
para conectarse a este servidor remoto a través de Internet.
Tenga en cuenta que SeaGoat en sí no hace cumplir ninguna seguridad, ya que está diseñada principalmente para funcionar localmente. Si tiene un código privado que no desea filtrarse, deberá asegurarse de que solo las personas de confianza tengan acceso al servidor SeaGoat. Esto podría hacerse haciendo que solo esté disponible a través de una VPN a la que solo sus compañeros de equipo pueden acceder.
SeaGoat ya ignora todos los archivos/directorios ignorados en su .gitignore
. Si desea ignorar archivos adicionales pero manténgalos en GIT, puede usar el atributo ignorePatterns
desde la configuración del servidor. Obtenga más información