Seagoat
Um mecanismo de pesquisa de código para a era da IA. O Seagoat é uma ferramenta de pesquisa local que aproveita as incorporações do vetor para permitir que você pesquise sua base de código semanticamente.

Para instalar o Seagoat, você precisa ter as seguintes dependências já instaladas no seu computador:
Quando bat é instalado, ele é usado para exibir resultados enquanto a cor estiver ativada. Quando o Seagoat é usado como parte de um oleoduto, um formato de saída da linha de grep é usado. Quando a cor é ativada, mas bat não é instalado, o Seagoat destaca a saída usando pigmentos. Usando bat é recomendado.
Para instalar o Seegoat usando pipx , use o seguinte comando:
pipx install seagoatDeve trabalhar em qualquer laptop decente.
O Seagoat foi projetado para funcionar no Linux ( testado ✅), macOS (parcialmente testado, ajuda ) e Windows ( ajuda necessária ).
Para usar o Seagoat em seu projeto, você deve iniciar o servidor Seagoat usando o seguinte comando:
seagoat-server start /path/to/your/repo Se você tiver o servidor em execução, basta usar o comando gt ou seagoat para consultar seu repositório. Por exemplo:
gt " Where are the numbers rounded "Você também pode usar expressões regulares em suas consultas, por exemplo
gt " function calc_.* that deals with taxes "Você pode parar o servidor em execução usando o seguinte comando:
seagoat-server stop /path/to/your/repo O Seagoat pode ser adaptado às suas necessidades através de arquivos de configuração da YAML, globalmente ou especificamente do projeto com um arquivo .seagoat.yml . Por exemplo:
# .seagoat.yml
server :
port : 31134 # Specify server portConfira a documentação para mais detalhes!
Requisitos :
Após clonar o repositório, instale dependências usando o seguinte comando:
poetry installpoetry run ptwpoetry run pytest . --testmonpoetry run pytest . Você pode testar qualquer comando Seagoat manualmente em seu ambiente de desenvolvimento local. Por exemplo, para testar a versão de desenvolvimento do comando seagoat-server , você pode executar:
poetry run seagoat-server start ~ /path/an/example/repositoryOs pontos nessas perguntas frequentes são indicações de como o Seagoat funciona, mas não são um contrato legal. O Seagoat é licenciado sob uma licença de código aberto e, se você estiver em dúvida sobre a privacidade/segurança/etc, implicações do Seagoat, poderá examinar o código -fonte, levantar suas preocupações ou criar uma solicitação de tração para corrigir um problema.
A Seagoat não depende de APIs de terceiros ou de qualquer APIs remota e executa toda a funcionalidade localmente usando o servidor Seagoat que você pode executar em sua própria máquina.
Em vez de confiar nas APIs ou "conectar ao chatgpt", ele usa o banco de dados vetorial chamado Chromadb, com um mecanismo de incorporação de vetor local e telemetria desativados por padrão.
Além disso, o Seagoat também usa o RipGrep, um mecanismo de pesquisa de código baseado regular em expressão regular, a fim de fornecer correspondências de expressão regular/palavras-chave, além das correspondências "baseadas em IA".
Embora a versão atual do Seagoat não envie seus dados para servidores remotos, pode ser possível que no futuro haja recursos opcionais que o façam, se alguma melhoria adicional puder ser obtida com isso.
Seegoat precisa de um servidor para fornecer uma resposta rápida. O Seagoat depende muito de incorporações de vetor e bancos de dados de vetores, que no momento não podem ser substituídos por uma arquitetura que processa arquivos em tempo real.
Vale a pena notar que você é capaz de executar o servidor Seagoat totalmente localmente e funciona mesmo que você não tenha uma conexão com a Internet. Este caso de uso não exige que você compartilhe dados com um servidor remoto, você pode usar seu próprio servidor Seagoat localmente, embora também seja possível executar um servidor Seagoat e permitir que outros computadores se conectem a ele, se você quiser.
Se você estiver preocupado com as implicações éticas do uso de ferramentas de IA, lembre -se de que o Seagoat não é um gerador de código, mas um mecanismo de pesquisa de código, portanto, ele não cria um trabalho derivado de IA.
Dito isto, um modelo de idioma está sendo usado para gerar incorporações vetoriais. No momento, Seegoat usa o modelo padrão do Chromadb para calcular incorporações de vetores, e não estou ciente de que isso seja uma preocupação ética.
Atualmente, o Seagoat é codificado para processar apenas arquivos nos seguintes formatos:
*.txt )*.md )*.py )*.c , *.h )*.cpp , *.cc , *.cxx , *.hpp )*.ts , *.tsx )*.js , *.jsx )*.html )*.go )*.java )*.php )*.rb )Como o processamento de arquivos para grandes repositórios pode levar muito tempo, o Seagoat foi projetado para permitir que você use seu computador enquanto processa os arquivos . É uma opção de design intencional evitar bloquear/desacelerar o computador.
Essa decisão de design não afeta o desempenho das consultas.
A propósito, você pode usar o Seagoat para consultar seu repositório enquanto está processando seus arquivos! Quando você faz uma consulta e os arquivos ainda não foram processados, você receberá um aviso com uma estimativa da precisão dos seus resultados. Além disso, resultados regulares de expressão/pesquisa completa baseados em pesquisa serão exibidos desde o início!
A codificação de caracteres preferida é UTF-8. A maioria das outras codificações de personagens também deve funcionar. Somente arquivos de texto são suportados, o Seagoat ignora arquivos binários.
Onde o Seegoat armazena bancos de dados e cache depende do seu sistema operacional. Para sua conveniência, você pode usar o comando seagoat-server server-info para descobrir onde esses arquivos são armazenados no seu sistema.
Sim, se você deseja usar o Seegoat sem precisar executar o servidor no mesmo computador, pode simplesmente se auto-host Seagoat Server em um computador diferente ou na nuvem e configurar o comando seagoat / gt para conectar-se a este servidor remoto Através da Internet.
Lembre -se de que o próprio Seagoat não aplica nenhuma segurança, pois é projetado principalmente para funcionar localmente. Se você possui código privado que não deseja vazar, precisará garantir que apenas as pessoas confiáveis tenham acesso ao servidor Seagoat. Isso pode ser feito, disponibilizando -o apenas por meio de uma VPN que apenas seus colegas de equipe podem acessar.
Seegoat já ignora todos os arquivos/diretórios ignorados no seu .gitignore . Se você deseja ignorar arquivos adicionais, mas mantenha -os no Git, pode usar o atributo ignorePatterns na configuração do servidor. Saber mais