Ir al contenido principal

Indexación del Código Base

La Indexación del Código Base habilita la búsqueda semántica de código en todo tu proyecto usando embeddings de IA. En lugar de buscar coincidencias de texto exactas, comprende el significado de tus consultas, ayudando a AI Cockpit a encontrar código relevante incluso cuando no conoces nombres de funciones o ubicaciones de archivos específicos.

Configuración de Indexación del Código Base

Qué Hace

Cuando está habilitado, el sistema de indexación:

  1. Analiza tu código usando Tree-sitter para identificar bloques semánticos (funciones, clases, métodos)
  2. Crea embeddings de cada bloque de código usando modelos de IA
  3. Almacena vectores en una base de datos Qdrant para búsqueda rápida por similitud
  4. Proporciona la herramienta codebase_search a AI Cockpit para el descubrimiento inteligente de código

Esto permite consultas en lenguaje natural como "lógica de autenticación de usuarios" o "manejo de conexión a base de datos" para encontrar código relevante en todo tu proyecto.

Beneficios Clave

  • Búsqueda Semántica: Encuentra código por significado, no solo por palabras clave
  • Comprensión Mejorada de la IA: AI Cockpit puede comprender y trabajar mejor con tu código base
  • Descubrimiento entre Proyectos: Busca en todos los archivos, no solo en los que están abiertos
  • Reconocimiento de Patrones: Localiza implementaciones similares y patrones de código

Requisitos de Configuración

Proveedor de Embeddings

Elige una de estas opciones para generar embeddings:

OpenAI (Recomendado)

  • Requiere clave de API de OpenAI
  • Admite todos los modelos de embedding de OpenAI
  • Predeterminado: text-embedding-3-small
  • Procesa hasta 100,000 tokens por lote

Gemini

  • Requiere clave de API de Google AI
  • Admite modelos de embedding de Gemini incluyendo gemini-embedding-001
  • Alternativa rentable a OpenAI
  • Embeddings de alta calidad para comprensión de código

Ollama (Local)

  • Requiere instalación local de Ollama
  • Sin costos de API ni dependencia de internet
  • Admite cualquier modelo de embedding compatible con Ollama
  • Requiere configuración de URL base de Ollama

Base de Datos Vectorial

Qdrant es necesario para almacenar y buscar embeddings:

  • Local: http://localhost:6333 (recomendado para pruebas)
  • Nube: Qdrant Cloud o instancia autoalojada
  • Autenticación: Clave de API opcional para implementaciones seguras

Configurar Qdrant

Configuración Local Rápida

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:

Implementación en Producción

Para uso en equipo o producción:

  • Qdrant Cloud - Servicio gestionado
  • Autoalojado en AWS, GCP o Azure
  • Servidor local con acceso a red para compartir en equipo

Configuración

  1. Abre la configuración de AI Cockpit (ícono )
  2. Navega a la sección Indexación del Código Base
  3. Habilita "Habilitar Indexación del Código Base" usando el interruptor
  4. Configura tu proveedor de embeddings:
    • OpenAI: Ingresa la clave de API y selecciona el modelo
    • Gemini: Ingresa la clave de API de Google AI y selecciona el modelo de embedding
    • Ollama: Ingresa la URL base y selecciona el modelo
  5. Establece la URL de Qdrant y la clave de API opcional
  6. Configura los Resultados Máximos de Búsqueda (predeterminado: 20, rango: 1-100)
  7. Haz clic en Guardar para iniciar la indexación inicial

Interruptor de Habilitar/Deshabilitar

La función de indexación del código base incluye un interruptor conveniente que te permite:

  • Habilitar: Comenzar a indexar tu código base y hacer disponible la herramienta de búsqueda
  • Deshabilitar: Detener la indexación, pausar la observación de archivos y deshabilitar la funcionalidad de búsqueda
  • Preservar Configuración: Tu configuración permanece guardada al desactivar

Este interruptor es útil para deshabilitar temporalmente la indexación durante trabajo de desarrollo intensivo o cuando se trabaja con bases de código sensibles.

Comprender el Estado del Índice

La interfaz muestra el estado en tiempo real con indicadores de color:

  • En espera (Gris): No está en ejecución, esperando configuración
  • Indexando (Amarillo): Procesando archivos actualmente
  • Indexado (Verde): Actualizado y listo para búsquedas
  • Error (Rojo): Estado de fallo que requiere atención

Cómo se Procesan los Archivos

Análisis Inteligente de Código

  • Integración con Tree-sitter: Usa análisis AST para identificar bloques de código semánticos
  • Soporte de Lenguajes: Todos los lenguajes admitidos por Tree-sitter
  • Soporte de Markdown: Soporte completo para archivos markdown y documentación
  • Alternativa: Fragmentación basada en líneas para tipos de archivos no admitidos
  • Tamaño de Bloque:
    • Mínimo: 100 caracteres
    • Máximo: 1,000 caracteres
    • Divide funciones grandes de forma inteligente

Filtrado Automático de Archivos

El indexador excluye automáticamente:

  • Archivos binarios e imágenes
  • Archivos grandes (>1MB)
  • Repositorios Git (carpetas .git)
  • Dependencias (node_modules, vendor, etc.)
  • Archivos que coincidan con patrones de .gitignore y .kilocodeignore

Actualizaciones Incrementales

  • Observación de Archivos: Monitorea el espacio de trabajo para detectar cambios
  • Actualizaciones Inteligentes: Solo reprocesa los archivos modificados
  • Caché Basado en Hash: Evita reprocesar contenido sin cambios
  • Cambio de Rama: Maneja automáticamente los cambios de rama de Git

Mejores Prácticas

Selección de Modelo

Para OpenAI:

  • text-embedding-3-small: Mejor equilibrio entre rendimiento y costo
  • text-embedding-3-large: Mayor precisión, 5 veces más costoso
  • text-embedding-ada-002: Modelo heredado, menor costo

Para Ollama:

  • mxbai-embed-large: El modelo de embedding más grande y de mayor calidad.
  • nomic-embed-text: Mejor equilibrio entre rendimiento y calidad de embedding.
  • all-minilm: Modelo compacto con menor calidad pero rendimiento más rápido.

Consideraciones de Seguridad

  • Claves de API: Almacenadas de forma segura en el almacenamiento cifrado de VS Code
  • Privacidad del Código: Solo se envían pequeños fragmentos de código para embedding (no archivos completos)
  • Procesamiento Local: Todo el análisis ocurre localmente
  • Seguridad de Qdrant: Usa autenticación para implementaciones en producción

Limitaciones Actuales

  • Tamaño de Archivo: Máximo 1MB por archivo
  • Espacio de Trabajo Único: Un espacio de trabajo a la vez
  • Dependencias: Requiere servicios externos (proveedor de embeddings + Qdrant)
  • Cobertura de Lenguajes: Limitado a los lenguajes admitidos por Tree-sitter para un análisis óptimo

Usar la Función de Búsqueda

Una vez indexado, AI Cockpit puede usar la herramienta codebase_search para encontrar código relevante:

Consultas de Ejemplo:

  • "¿Cómo se maneja la autenticación de usuarios?"
  • "Configuración de conexión a base de datos"
  • "Patrones de manejo de errores"
  • "Definiciones de endpoints de API"

La herramienta proporciona a AI Cockpit:

  • Fragmentos de código relevantes (hasta el límite máximo de resultados configurado)
  • Rutas de archivos y números de línea
  • Puntuaciones de similitud
  • Información contextual

Configuración de Resultados de Búsqueda

Puedes controlar el número de resultados de búsqueda devueltos ajustando la configuración de Resultados Máximos de Búsqueda:

  • Predeterminado: 20 resultados
  • Rango: 1-100 resultados
  • Rendimiento: Los valores más bajos mejoran la velocidad de respuesta
  • Exhaustividad: Los valores más altos proporcionan más contexto pero pueden ralentizar las respuestas

Privacidad y Seguridad

  • El código permanece local: Solo se envían pequeños fragmentos de código para embedding
  • Los embeddings son numéricos: No son representaciones legibles por humanos
  • Almacenamiento seguro: Claves de API cifradas en el almacenamiento de VS Code
  • Opción local: Usa Ollama para procesamiento completamente local
  • Control de acceso: Respeta los permisos de archivos existentes

Mejoras Futuras

Mejoras planificadas:

  • Proveedores de embeddings adicionales
  • Indexación de múltiples espacios de trabajo
  • Opciones mejoradas de filtrado y configuración
  • Capacidades de compartir en equipo
  • Integración con la búsqueda nativa de VS Code