Code Knowledge Tool

Una herramienta de gestión de conocimiento para repositorios de código que utiliza embeddings vectoriales, impulsada por un servicio local de Ollama.

Documentación

Code Knowledge Tool

Una herramienta de gestión de conocimiento para repositorios de código que utiliza embeddings vectoriales. Esta herramienta ayuda a mantener y consultar conocimiento sobre tu base de código mediante técnicas avanzadas de embeddings.

Compilación e Instalación

1. Compilar el Paquete

Primero, necesitas compilar los archivos de distribución:

# Clone the repository
git clone https://github.com/yourusername/code-knowledge-tool.git
cd code-knowledge-tool

# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate

# Install build tools
python -m pip install --upgrade pip build

# Build the package
python -m build

Esto creará dos archivos en el directorio dist/:

  • code_knowledge_tool-0.1.0-py3-none-any.whl (archivo wheel para instalación)
  • code_knowledge_tool-0.1.0.tar.gz (distribución de código fuente)

2. Instalar el Paquete

Requisitos Previos

  1. Asegúrate de que Ollama esté instalado y en ejecución:
# Install Ollama (if not already installed)
curl https://ollama.ai/install.sh | sh

# Start Ollama service
ollama serve
  1. Instala el paquete:
Opción 1: Instalar desde el archivo wheel (recomendado para uso)
# Navigate to where you built the package
cd /path/to/code_knowledge_tool

# Install from the wheel file
pip install dist/code_knowledge_tool-0.1.0-py3-none-any.whl
Opción 2: Instalar en modo editable (recomendado para desarrollo)

Esta opción es la mejor si deseas modificar la herramienta o contribuir a su desarrollo:

# Assuming you're already in the code-knowledge-tool directory
# and have activated your virtual environment

# Install in editable mode with development dependencies
pip install -e ".[dev]"

Integración con RooCode/Cline

  1. Copia la configuración de MCP a tu configuración:

Para Cline (VSCode):

# Open the settings file
open ~/Library/Application\ Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json

Añade esta configuración:

{
  "mcpServers": {
    "code_knowledge": {
      "command": "python",
      "args": ["-m", "code_knowledge_tool.mcp_tool"],
      "env": {
        "PYTHONPATH": "${workspaceFolder}"
      }
    }
  }
}

Para RooCode:

# Open the settings file
open ~/Library/Application\ Support/RooCode/roocode_config.json

Añade la misma configuración que la anterior.

  1. Reinicia RooCode/Cline para cargar la nueva herramienta.

Uso como Banco de Memoria y Proveedor de Contexto RAG

Esta herramienta puede servir como banco de memoria de tu proyecto y proveedor de contexto RAG. Para configurarlo:

  1. Copia la plantilla proporcionada a tu proyecto:
cp clinerules_template.md /path/to/your/project/.clinerules
  1. Personaliza las reglas y patrones en .clinerules según las necesidades de tu proyecto

La plantilla incluye instrucciones completas para:

  • Gestión de la base de conocimiento
  • Flujos de trabajo de desarrollo basados en RAG
  • Directrices de calidad de código
  • Prácticas de gestión de memoria

Consulta clinerules_template.md para la configuración completa y los detalles de uso.

Características

  • Almacenamiento vectorial local para conocimiento de código
  • Generación eficiente de embeddings mediante Ollama
  • Soporte para múltiples tipos de archivo
  • Comprensión de código consciente del contexto
  • Integración con RooCode y Cline mediante MCP
  • Aumento de contexto basado en RAG
  • Almacenamiento persistente de conocimiento

Requisitos

  • Python 3.8 o superior
  • Servicio Ollama ejecutándose localmente
  • chromadb para operaciones vectoriales

Desarrollo

Ejecución de Pruebas

El proyecto sigue un enfoque de pruebas con prioridad en la integración, centrándose en la funcionalidad de extremo a extremo y el cumplimiento del contrato MCP. El conjunto de pruebas consta de:

  1. Pruebas de Contrato MCP

    • Registro y ejecución de herramientas
    • Gestión de recursos
    • Operaciones de conocimiento
    • Manejo de errores
  2. Pruebas de Compilación del Paquete

    • Verificación de instalación
    • Resolución de dependencias
    • Inicialización del servidor MCP
    • Funcionalidad básica

Para ejecutar las pruebas:

# Install test dependencies
pip install -e ".[dev]"

# Run all tests
pytest

# Run specific test suites
pytest tests/integration/test_mcp_contract.py -v  # MCP functionality
pytest tests/integration/test_package_build.py -v  # Installation verification

Requisitos del Entorno de Pruebas:

# Ensure Ollama is running
ollama serve

Las pruebas utilizan un directorio temporal (test_knowledge_store) que se limpia automáticamente entre ejecuciones de pruebas.

Para más detalles sobre la estrategia y los patrones de prueba, consulta la documentación en docs/.

Distribución Futura

Si deseas poner este paquete a disposición a través de pip (es decir, pip install code-knowledge-tool), necesitarías:

  1. Registrar una cuenta en PyPI
  2. Instalar twine: pip install twine
  3. Subir tu distribución: twine upload dist/*

Sin embargo, por ahora, utiliza los métodos de compilación e instalación locales descritos anteriormente.

Licencia

Licencia MIT