Skip to content

Repository files navigation

Code Assistant Ollama

Asistente de programación por terminal que utiliza un LLM ejecutándose de manera local mediante Ollama. Proyecto académico para demostrar el uso de modelos de lenguaje grandes (LLM) integrados en un proceso de software.

¿Qué hace?

Aplicación de línea de comandos (CLI) interactiva con las siguientes funciones:

  1. Explicar código — pega un fragmento de código y el asistente te lo explica paso a paso.
  2. Revisar código — detecta posibles bugs, malas prácticas y oportunidades de mejora.
  3. Generar código — describe lo que necesitas y genera el código en el lenguaje que pidas.
  4. Refactorizar código — reescribe código para mejorar legibilidad y rendimiento.
  5. Chat libre — modo conversacional para preguntas técnicas generales.

Además incluye:

  • Interfaz con colores en terminal (via colorama).
  • Métricas por respuesta: tiempo, tokens generados y velocidad (tok/s).
  • Guardado en Markdown de consultas puntuales y chats completos en la carpeta historial/.
  • Comprobaciones al inicio: verifica que Ollama esté activo y que el modelo configurado esté descargado.

Todo se ejecuta 100% local (sin enviar datos a la nube).

Arquitectura

Usuario (terminal)
     ↓
  main.py  ────►  assistant.py  ────►  Ollama API (http://localhost:11434)
     │                    │                      ↓
     │                    │               Modelo local (qwen2.5-coder:1.5b)
     └──────────►  historial.py  ────►  historial/*.md

Requisitos

  • Python 3.9+
  • Ollama instalado
  • ~1 GB de espacio en disco para el modelo (qwen2.5-coder:1.5b)
  • 4 GB de RAM (recomendado 8 GB)

Instalación

1) Instalar Ollama

Windows: descarga el instalador desde https://ollama.com/download/windows y ejecútalo.

Verifica que quedó instalado:

ollama --version

2) Descargar el modelo

ollama pull qwen2.5-coder:1.5b

Si dispones de GPU NVIDIA y quieres mejor calidad, puedes usar un modelo más grande:

ollama pull codellama:7b

Y cambia MODEL = "qwen2.5-coder:1.5b" por MODEL = "codellama:7b" en config.py.

3) Instalar dependencias de Python

pip install -r requirements.txt

Dependencias principales: requests (cliente HTTP hacia Ollama) y colorama (colores en la terminal).

Uso

Asegúrate de que Ollama está corriendo (en Windows arranca automáticamente como servicio). Luego:

python main.py

Verás un menú interactivo con el modelo activo y la comprobación de conexión:

╔══════════════════════════════════════════════╗
║       CODE ASSISTANT — Powered by Ollama     ║
║              LLM 100% Local                  ║
╚══════════════════════════════════════════════╝
  Modelo: qwen2.5-coder:1.5b

✔ Conectado a Ollama. Modelo 'qwen2.5-coder:1.5b' listo.

  1) Explicar código
  2) Revisar código (encontrar bugs)
  3) Generar código
  4) Refactorizar código
  5) Chat libre
  0) Salir

Elige una opción:

Entrada multilínea

En las opciones 1, 2 y 4 puedes pegar código de varias líneas. Termina la entrada escribiendo END en una línea sola.

Guardar respuestas

Tras cada consulta puntual (opciones 1–4), el programa pregunta si deseas guardar la respuesta en un archivo .md dentro de historial/.

En el chat libre (opción 5) puedes usar estos comandos:

Comando Descripción
/guardar [nombre] Guarda el historial del chat en historial/ (nombre opcional)
/limpiar Borra el historial de la sesión actual
/salir Sale del chat (ofrece guardar antes si hay mensajes)

Métricas

Al final de cada respuesta se muestran métricas de rendimiento, por ejemplo:

⏱  6.12s   📝 107 tokens   ⚡ 17.5 tok/s   (prompt: 54 tok)

Estructura del proyecto

code-assistant-ollama/
├── main.py              # Punto de entrada con el menú interactivo
├── assistant.py         # Cliente Ollama (streaming, métricas)
├── historial.py         # Guardado de consultas y chats en Markdown
├── config.py            # Configuración (modelo, URL, prompts)
├── generar_capturas.py  # Utilidad para generar imágenes de documentación
├── requirements.txt     # Dependencias Python
├── historial/           # Archivos .md generados (ignorado por git)
└── README.md

Cómo se integra el LLM al "proceso de software"

El programa actúa como cliente del servidor local de Ollama. Al iniciar:

  1. Verifica conexión con http://localhost:11434.
  2. Comprueba que el modelo configurado en config.py esté descargado.
  3. Según la opción elegida, construye un system prompt especializado.
  4. Envía la petición vía HTTP (streaming) y muestra la respuesta token por token.
  5. Muestra métricas de la inferencia (duración, tokens, velocidad).
  6. Mantiene el historial dentro de cada sesión de chat libre y permite exportarlo a Markdown.

Esto demuestra cómo un LLM local puede integrarse a cualquier flujo de software sin depender de servicios externos.

Autor

Juan Camilo Barranco Tejada

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages