Programado por Daniel Serrano Armenta [email protected]
Una aplicación de terminal sencilla, potente y sin dependencias (¡excepto Ollama!) para chatear con modelos de lenguaje locales. Programada en Go.
- Gestión Automática: Inicia y detiene automáticamente el servidor
ollama serveal ejecutar y cerrar la aplicación. - Selección de Modelo: Lista todos tus modelos locales y te permite elegir con cuál chatear.
- Memoria (Contexto): Mantiene el historial de la conversación, permitiendo al modelo "recordar" lo que se ha dicho.
- Personalización (System Prompt): Utiliza un prompt de sistema para guiar la personalidad y el comportamiento del modelo (ej. "Eres un asistente llamado Gemma, NO ChatGPT").
- Streaming en Tiempo Real: Muestra las respuestas palabra por palabra, igual que en la web.
- Interfaz Colorida: Utiliza colores para una experiencia de usuario clara y agradable en la terminal.
- Comandos en el Chat:
exitoquit: Salir de la aplicación.clearoreset: Borrar el historial de la conversación actual y empezar de cero.
Este proyecto está diseñado para ser ejecutado desde el código fuente usando el stack de Go.
- Go (Golang) (versión 1.21 o superior)
- Ollama instalado en tu sistema.
- Al menos un modelo descargado (ej:
ollama pull llama3)
-
Clona este repositorio:
# Reemplaza [TU_USUARIO]/[TU_REPO] por tu URL de GitHub git clone [https://github.com/](https://github.com/)[TU_USUARIO]/[TU_REPO].git cd [TU_REPO]
-
Instala las dependencias de Go (principalmente
fatih/color):go mod tidy
Simplemente ejecuta la aplicación desde la raíz del proyecto. El programa se encargará de iniciar ollama serve por ti.
go run .La aplicación te guiará:
- Esperará a que el servidor de Ollama esté listo.
- Te mostrará una lista de tus modelos locales para que elijas uno.
- ¡Empezará el chat!
$ go run .
✔ ¡Ollama está listo y respondiendo!
Modelos de Ollama disponibles localmente:
1. llama3:8b
2. gemma:2b
Elige un modelo (1-2): 2
/ \
/ _ \
\/ \/
Modelo seleccionado: gemma:2b
System Prompt cargado. Escribe 'exit' o 'clear'.
>>> hola, me llamo Dani
IA: ¡Hola Dani! Soy Gemma, ¿en qué puedo ayudarte hoy?
>>> ¿cómo me llamo?
IA: Te llamas Dani.
ollama-cli.go: El código fuente principal de la aplicación.go.mod/go.sum: Gestión de dependencias de Go.logos.json: Archivo de configuración que almacena el arte ASCII para los logos de los modelos.
Las contribuciones son bienvenidas. Si tienes una idea para una mejora o has encontrado un bug:
- Haz un Fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-mejora). - Haz tus cambios y haz commit (
git commit -m "feat: Añadir nueva mejora"). - Haz Push a tu rama (
git push origin feature/nueva-mejora). - Abre un Pull Request.