Pular para o conteúdo principal

Indexação da Base de Código

A Indexação da Base de Código permite a busca semântica de código em todo o seu projeto usando embeddings de IA. Em vez de procurar por correspondências exatas de texto, ela entende o significado de suas consultas, ajudando o AI Cockpit Reasoning a encontrar código relevante mesmo quando você não sabe nomes de funções ou locais de arquivos específicos.

Configurações de Indexação da Base de Código

O Que Faz

Quando ativado, o sistema de indexação:

  1. Analisa seu código usando o Tree-sitter para identificar blocos semânticos (funções, classes, métodos)
  2. Cria embeddings de cada bloco de código usando modelos de IA
  3. Armazena vetores em um banco de dados Qdrant para busca rápida por similaridade
  4. Fornece a ferramenta codebase_search para o AI Cockpit Reasoning para descoberta inteligente de código

Isso permite que consultas em linguagem natural como "lógica de autenticação de usuário" ou "manipulação de conexão com o banco de dados" encontrem código relevante em todo o seu projeto.

Principais Benefícios

  • Busca Semântica: Encontre código pelo significado, não apenas por palavras-chave
  • Compreensão Aprimorada da IA: O AI Cockpit Reasoning pode compreender e trabalhar melhor com sua base de código
  • Descoberta Entre Projetos: Pesquise em todos os arquivos, não apenas nos que estão abertos
  • Reconhecimento de Padrões: Localize implementações e padrões de código semelhantes

Requisitos de Configuração

Provedor de Embedding

Escolha uma destas opções para gerar embeddings:

OpenAI (Recomendado)

  • Requer chave de API da OpenAI
  • Suporta todos os modelos de embedding da OpenAI
  • Padrão: text-embedding-3-small
  • Processa até 100.000 tokens por lote

Gemini

  • Requer chave de API do Google AI
  • Suporta modelos de embedding do Gemini, incluindo gemini-embedding-001
  • Alternativa econômica ao OpenAI
  • Embeddings de alta qualidade para compreensão de código

Ollama (Local)

  • Requer instalação local do Ollama
  • Sem custos de API ou dependência de internet
  • Suporta qualquer modelo de embedding compatível com Ollama
  • Requer configuração da URL base do Ollama

Banco de Dados Vetorial

Qdrant é necessário para armazenar e pesquisar embeddings:

  • Local: http://localhost:6333 (recomendado para testes)
  • Nuvem: Qdrant Cloud ou instância auto-hospedada
  • Autenticação: Chave de API opcional para implantações seguras

Configurando o Qdrant

Configuração Rápida Local

Usando Docker:

docker run -p 6333:6333 qdrant/qdrant

Usando Docker Compose:

version: '3.8'
services:
qdrant:
image: qdrant/qdrant
ports:
- '6333:6333'
volumes:
- qdrant_storage:/qdrant/storage
volumes:
qdrant_storage:

Implantação em Produção

Para uso em equipe ou produção:

  • Qdrant Cloud - Serviço gerenciado
  • Auto-hospedado na AWS, GCP ou Azure
  • Servidor local com acesso à rede para compartilhamento em equipe

Configuração

  1. Abra as configurações do AI Cockpit Reasoning (ícone )
  2. Navegue até a seção Indexação da Base de Código
  3. Ative "Habilitar Indexação da Base de Código" usando o interruptor
  4. Configure seu provedor de embedding:
    • OpenAI: Insira a chave de API e selecione o modelo
    • Gemini: Insira a chave de API do Google AI e selecione o modelo de embedding
    • Ollama: Insira a URL base e selecione o modelo
  5. Defina a URL do Qdrant e a chave de API opcional
  6. Configure Resultados Máximos de Busca (padrão: 20, intervalo: 1-100)
  7. Clique em Salvar para iniciar a indexação inicial

Interruptor de Ativar/Desativar

O recurso de indexação da base de código inclui um interruptor conveniente que permite:

  • Ativar: Iniciar a indexação da sua base de código e disponibilizar a ferramenta de busca
  • Desativar: Parar a indexação, pausar o monitoramento de arquivos e desativar a funcionalidade de busca
  • Preservar Configurações: Sua configuração permanece salva ao desativar

Este interruptor é útil para desativar temporariamente a indexação durante trabalhos de desenvolvimento intensivo ou ao trabalhar com bases de código sensíveis.

Entendendo o Status do Índice

A interface mostra o status em tempo real com indicadores coloridos:

  • Em espera (Cinza): Não está em execução, aguardando configuração
  • Indexando (Amarelo): Processando arquivos atualmente
  • Indexado (Verde): Atualizado e pronto para buscas
  • Erro (Vermelho): Estado de falha que requer atenção

Como os Arquivos São Processados

Análise Inteligente de Código

  • Integração com Tree-sitter: Usa análise AST para identificar blocos de código semânticos
  • Suporte a Idiomas: Todos os idiomas suportados pelo Tree-sitter
  • Suporte a Markdown: Suporte completo para arquivos markdown e documentação
  • Alternativa: Divisão baseada em linhas para tipos de arquivo não suportados
  • Dimensionamento de Bloco:
    • Mínimo: 100 caracteres
    • Máximo: 1.000 caracteres
    • Divide funções grandes de forma inteligente

Filtragem Automática de Arquivos

O indexador exclui automaticamente:

  • Arquivos binários e imagens
  • Arquivos grandes (>1MB)
  • Repositórios Git (pastas .git)
  • Dependências (node_modules, vendor, etc.)
  • Arquivos que correspondem aos padrões .gitignore e .AI Cockpitcode

Atualizações Incrementais

  • Monitoramento de Arquivos: Monitora o espaço de trabalho em busca de alterações
  • Atualizações Inteligentes: Reprocessa apenas os arquivos modificados
  • Cache Baseado em Hash: Evita o reprocessamento de conteúdo inalterado
  • Troca de Branch: Lida automaticamente com as mudanças de branch do Git

Melhores Práticas

Seleção de Modelo

Para OpenAI:

  • text-embedding-3-small: Melhor equilíbrio entre desempenho e custo
  • text-embedding-3-large: Maior precisão, 5x mais caro
  • text-embedding-ada-002: Modelo legado, menor custo

Para Ollama:

  • mxbai-embed-large: O maior e de mais alta qualidade modelo de embedding.
  • nomic-embed-text: Melhor equilíbrio entre desempenho e qualidade de embedding.
  • all-minilm: Modelo compacto com menor qualidade, mas desempenho mais rápido.

Considerações de Segurança

  • Chaves de API: Armazenadas com segurança no armazenamento criptografado do VS Code
  • Privacidade do Código: Apenas pequenos trechos de código são enviados para embedding (não arquivos completos)
  • Processamento Local: Toda a análise ocorre localmente
  • Segurança do Qdrant: Use autenticação para implantações em produção

Limitações Atuais

  • Tamanho do Arquivo: Máximo de 1MB por arquivo
  • Espaço de Trabalho Único: Um espaço de trabalho por vez
  • Dependências: Requer serviços externos (provedor de embedding + Qdrant)
  • Cobertura de Idiomas: Limitado aos idiomas suportados pelo Tree-sitter para uma análise otimizada

Usando o Recurso de Busca

Uma vez indexado, o AI Cockpit Reasoning pode usar a ferramenta codebase_search para encontrar código relevante:

Exemplos de Consultas:

  • "Como a autenticação de usuário é tratada?"
  • "Configuração da conexão com o banco de dados"
  • "Padrões de tratamento de erros"
  • "Definições de endpoint da API"

A ferramenta fornece ao AI Cockpit Reasoning:

  • Trechos de código relevantes (até o limite máximo de resultados configurado)
  • Caminhos de arquivo e números de linha
  • Pontuações de similaridade
  • Informações contextuais

Configuração dos Resultados da Busca

Você pode controlar o número de resultados de busca retornados ajustando a configuração Resultados Máximos de Busca:

  • Padrão: 20 resultados
  • Intervalo: 1-100 resultados
  • Desempenho: Valores mais baixos melhoram a velocidade de resposta
  • Abrangência: Valores mais altos fornecem mais contexto, mas podem tornar as respostas mais lentas

Privacidade e Segurança

  • O código permanece local: Apenas pequenos trechos de código são enviados para embedding
  • Embeddings são numéricos: Não são representações legíveis por humanos
  • Armazenamento seguro: Chaves de API criptografadas no armazenamento do VS Code
  • Opção local: Use o Ollama para processamento completamente local
  • Controle de acesso: Respeita as permissões de arquivo existentes

Melhorias Futuras

Melhorias planejadas:

  • Provedores de embedding adicionais
  • Indexação de múltiplos espaços de trabalho
  • Opções aprimoradas de filtragem e configuração
  • Capacidades de compartilhamento em equipe
  • Integração com a busca nativa do VS Code