diff --git a/yuy-chat-complete/README.md b/yuy-chat-complete/README.md deleted file mode 100644 index 696ecd9..0000000 --- a/yuy-chat-complete/README.md +++ /dev/null @@ -1,180 +0,0 @@ -# yuy-chat - -
- -``` -$$\ $$\ -\$$\ $$ | - \$$\ $$ /$$\ $$\ $$\ $$\ - \$$$$ / $$ | $$ |$$ | $$ | - \$$ / $$ | $$ |$$ | $$ | - $$ | $$ | $$ |$$ | $$ | - $$ | \$$$$$$ |\$$$$$$$ | - \__| \______/ \____$$ | - $$\ $$ | - \$$$$$$ | - \______/ -``` - -**Beautiful TUI chat interface for local AI models** - -[![Rust](https://img.shields.io/badge/rust-1.70%2B-orange.svg)](https://www.rust-lang.org) -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) - -
- ---- - -## 🌟 Features - -- ✨ **Beautiful TUI** - Gorgeous terminal interface powered by ratatui -- 🔍 **Auto-discovery** - Automatically finds `.gguf` and `.llamafile` models -- 🎨 **Presets** - Creative, Balanced, and Precise modes -- 💾 **Save conversations** - Keep your chat history -- 🌐 **HuggingFace API** - Use models from HuggingFace (optional) -- ⚡ **Fast & Lightweight** - ~5MB binary, minimal dependencies -- 🚀 **Streaming responses** - See words appear as they're generated -- 🎯 **Zero configuration** - Just run and chat - -## 📦 Installation - -### From source: - -```bash -git clone https://github.com/YuuKi-OS/yuy-chat -cd yuy-chat -cargo build --release -``` - -### Install globally: - -```bash -cargo install --path . -``` - -## 🚀 Quick Start - -```bash -# Run yuy-chat -yuy-chat - -# It will auto-scan ~/.yuuki/models/ for .gguf and .llamafile files -# Select a model and start chatting! -``` - -## 📁 Supported Model Formats - -- ✅ **GGUF** (`.gguf`) - Runs with llama.cpp -- ✅ **Llamafile** (`.llamafile`) - Self-contained executables - -## 🎮 Controls - -### Model Selector -- `↑/↓` or `j/k` - Navigate models -- `Enter` - Select model -- `R` - Refresh model list -- `Q` - Quit - -### Chat -- `Type` - Write your message -- `Enter` - Send message -- `Shift+Enter` - New line -- `Ctrl+Enter` - Send (always) -- `Ctrl+C` - Open menu -- `Ctrl+L` - Clear chat -- `Ctrl+S` - Save conversation -- `↑/↓` - Scroll chat (when input is empty) - -### Menu -- `1` - Change model -- `2` - Change preset -- `3` - Save conversation -- `4` - Load conversation -- `5` - Clear chat -- `6` - Settings -- `Q` - Back to chat - -## ⚙️ Configuration - -Config file location: `~/.config/yuy-chat/config.toml` - -```toml -models_dir = "/home/user/.yuuki/models" -hf_token = "hf_xxxxxxxxxxxxx" # Optional -default_preset = "Balanced" -save_history = true -theme = "Dark" -``` - -## 🎯 Presets - -- **Creative** (temp: 0.8, top_p: 0.9) - More random and creative -- **Balanced** (temp: 0.6, top_p: 0.7) - Good middle ground -- **Precise** (temp: 0.3, top_p: 0.5) - More focused and deterministic - -## 🌐 HuggingFace Integration - -Add your HuggingFace token in settings to use models via API: - -1. Press `Ctrl+C` → `6` (Settings) -2. Edit `HuggingFace Token` -3. Paste your token from https://huggingface.co/settings/tokens -4. Save and refresh models - -## 📚 Directory Structure - -``` -~/.config/yuy-chat/ -├── config.toml # Configuration -└── conversations/ # Saved chats - ├── conversation-20240206-143022.json - └── conversation-20240206-150133.json -``` - -## 🔧 Requirements - -- **Rust 1.70+** (for building) -- **llama.cpp** (for .gguf models) - Install with: `yuy runtime install llama-cpp` -- **chmod +x** (for .llamafile models) - -## 🤝 Integration with yuy - -yuy-chat is designed to work alongside [yuy](https://github.com/YuuKi-OS/yuy): - -```bash -# Download models with yuy -yuy download Yuuki-best - -# Chat with yuy-chat -yuy-chat -``` - -## 🐛 Troubleshooting - -**No models found?** -- Make sure you have models in `~/.yuuki/models/` -- Or specify custom directory: `yuy-chat --models-dir /path/to/models` - -**llama.cpp not found?** -- Install with: `yuy runtime install llama-cpp` -- Or: `brew install llama.cpp` (macOS) -- Or: `pkg install llama-cpp` (Termux) - -**Streaming not working?** -- Ensure llama.cpp is installed and in PATH -- Check model file permissions - -## 📝 License - -MIT License - see [LICENSE](LICENSE) file - -## 🌸 Credits - -Made with love by the Yuuki team - -- TUI Framework: [ratatui](https://github.com/ratatui-org/ratatui) -- Inference: [llama.cpp](https://github.com/ggerganov/llama.cpp) - ---- - -**For model management, see [yuy](https://github.com/YuuKi-OS/yuy)** diff --git a/yuy-chat-complete/USAGE.md b/yuy-chat-complete/USAGE.md deleted file mode 100644 index 1f728e2..0000000 --- a/yuy-chat-complete/USAGE.md +++ /dev/null @@ -1,495 +0,0 @@ -# yuy-chat - Guía de Uso Completa - -## 📖 Contenido - -1. [Instalación](#instalación) -2. [Primera Vez](#primera-vez) -3. [Uso Diario](#uso-diario) -4. [Configuración Avanzada](#configuración-avanzada) -5. [Integración con HuggingFace](#integración-con-huggingface) -6. [Tips y Trucos](#tips-y-trucos) -7. [Troubleshooting](#troubleshooting) - ---- - -## 🔧 Instalación - -### Termux (Android) - -```bash -# Instalar Rust -pkg install rust - -# Clonar y compilar -git clone https://github.com/YuuKi-OS/yuy-chat -cd yuy-chat -cargo build --release -j 1 # Usar 1 thread en Termux - -# Instalar globalmente -cargo install --path . -``` - -### Linux/macOS - -```bash -# Clonar y compilar -git clone https://github.com/YuuKi-OS/yuy-chat -cd yuy-chat -cargo build --release - -# Instalar -cargo install --path . -``` - -### Windows - -```bash -# Mismo proceso que Linux/macOS -git clone https://github.com/YuuKi-OS/yuy-chat -cd yuy-chat -cargo build --release -cargo install --path . -``` - ---- - -## 🎬 Primera Vez - -### 1. Asegúrate de tener modelos - -yuy-chat busca modelos en `~/.yuuki/models/` por defecto. - -**Opción A: Usar yuy** -```bash -yuy download Yuuki-best -``` - -**Opción B: Copiar manualmente** -```bash -mkdir -p ~/.yuuki/models/ -cp /path/to/your/model.gguf ~/.yuuki/models/ -``` - -### 2. Instalar llama.cpp - -**Termux:** -```bash -pkg install llama-cpp -``` - -**macOS:** -```bash -brew install llama.cpp -``` - -**Linux:** -```bash -# Descargar desde releases -wget https://github.com/ggerganov/llama.cpp/releases/... -chmod +x llama-cli -sudo mv llama-cli /usr/local/bin/ -``` - -### 3. Ejecutar yuy-chat - -```bash -yuy-chat -``` - -Verás el selector de modelos. Usa `↑/↓` para navegar y `Enter` para seleccionar. - ---- - -## 💬 Uso Diario - -### Flujo Básico - -``` -1. Ejecuta: yuy-chat - ↓ -2. Selecciona modelo con ↑/↓ y Enter - ↓ -3. Escribe tu mensaje - ↓ -4. Presiona Enter para enviar - ↓ -5. Yuuki responde (streaming) - ↓ -6. Continúa la conversación -``` - -### Atajos de Teclado Útiles - -**En chat:** -- `Enter` - Enviar mensaje -- `Shift+Enter` - Nueva línea (para mensajes multi-línea) -- `Ctrl+L` - Limpiar chat -- `Ctrl+S` - Guardar conversación -- `Ctrl+C` - Abrir menú - -**Escribir código:** -``` -You: Dame un ejemplo de código Python - -[Shift+Enter para nueva línea] -def hello(): - print("Hola") -[Shift+Enter] - -hello() - -[Ctrl+Enter para enviar] -``` - -### Cambiar Preset - -``` -1. Ctrl+C (abrir menú) - ↓ -2. Presiona 2 (Change Preset) - ↓ - Cicla entre: Creative → Balanced → Precise -``` - -**Cuándo usar cada preset:** -- **Creative**: Escribir historias, brainstorming, ideas -- **Balanced**: Uso general, conversación -- **Precise**: Código, matemáticas, datos exactos - ---- - -## ⚙️ Configuración Avanzada - -### Cambiar Directorio de Modelos - -**Método 1: Configuración** -```bash -yuy-chat -Ctrl+C → 6 (Settings) -Editar "Models Directory" -``` - -**Método 2: Archivo config** -```bash -nano ~/.config/yuy-chat/config.toml -``` - -```toml -models_dir = "/custom/path/to/models" -``` - -### Personalizar Presets - -Edita el código o usa parámetros de llama.cpp directamente: - -```bash -# En models/runtime.rs, modifica: -pub fn temperature(&self) -> f32 { - match self { - Preset::Creative => 0.9, // Más aleatorio - // ... - } -} -``` - -### Tema Claro - -```toml -theme = "Light" -``` - ---- - -## 🌐 Integración con HuggingFace - -### 1. Obtener Token - -1. Ve a https://huggingface.co/settings/tokens -2. Click "Create new token" -3. Tipo: "Read" -4. Copia el token - -### 2. Configurar en yuy-chat - -**Método A: UI** -``` -Ctrl+C → 6 (Settings) -Navigate to "HuggingFace Token" -Enter → Pega tu token -``` - -**Método B: Config file** -```toml -hf_token = "hf_abcdefghijklmnopqrstuvwxyz1234567890" -``` - -### 3. Usar Modelos de HF - -Después de configurar el token: -``` -yuy-chat -[Verás modelos locales + modelos HF API] - -> Yuuki-best.gguf (Local) - Yuuki-3.7.gguf (Local) - Yuuki-best (HF API) <-- Usa la API -``` - -**Ventajas:** -- No ocupa espacio local -- Siempre actualizado -- Acceso a modelos privados - -**Desventajas:** -- Requiere internet -- Más lento que local -- Rate limits en plan gratis - ---- - -## 💡 Tips y Trucos - -### Guardar Conversaciones Importantes - -``` -Ctrl+S mientras chateas -→ Se guarda en ~/.config/yuy-chat/conversations/ -``` - -### Cargar Conversación Anterior - -``` -Ctrl+C → 4 (Load Conversation) -↑/↓ para navegar -Enter para cargar -``` - -### Prompt Engineering - -**Para mejores respuestas, sé específico:** - -❌ Malo: -``` -You: Explica Rust -``` - -✅ Bueno: -``` -You: Explica el sistema de ownership en Rust con un ejemplo simple de borrowing. Quiero entender por qué evita memory leaks. -``` - -### Conversaciones Multi-paso - -``` -You: Vamos a diseñar una API REST - -Yuuki: Claro, ¿qué tipo de API? - -You: Para gestionar tareas tipo TODO - -Yuuki: Perfecto, estos son los endpoints... -``` - -### Usar Presets Dinámicamente - -- **Creative preset**: "Escribe un cuento de terror" -- **Precise preset**: "¿Cuál es la complejidad de quicksort?" -- **Balanced preset**: "Explícame cómo funciona Git" - ---- - -## 🔧 Troubleshooting - -### Error: "No models found" - -**Solución:** -```bash -# Verifica que tienes modelos -ls ~/.yuuki/models/ - -# Si está vacío, descarga uno -yuy download Yuuki-best - -# O especifica otro directorio -yuy-chat --models-dir /path/to/models -``` - -### Error: "llama.cpp binary not found" - -**Solución:** -```bash -# Termux -pkg install llama-cpp - -# macOS -brew install llama.cpp - -# Linux - verifica que está en PATH -which llama-cli -# Si no, instala o agrega al PATH -export PATH=$PATH:/path/to/llama-cpp -``` - -### Error: "Permission denied" (llamafile) - -**Solución:** -```bash -chmod +x ~/.yuuki/models/*.llamafile -``` - -### Chat no responde / se congela - -**Diagnóstico:** -1. Verifica que llama.cpp funciona: -```bash -llama-cli -m ~/.yuuki/models/Yuuki-best.gguf -p "Hola" -``` - -2. Revisa logs: -```bash -RUST_LOG=debug yuy-chat -``` - -3. Reduce context size si es falta de RAM - -### Respuestas muy lentas - -**Causas comunes:** -- Modelo muy grande para tu RAM -- Cuantización muy alta (F32, Q8) -- Sin aceleración GPU - -**Solución:** -```bash -# Descarga versión cuantizada más pequeña -yuy download Yuuki-best --quant q4_0 - -# Verifica RAM disponible -free -h # Linux -top # macOS/Linux -``` - -### No puedo escribir mensajes largos - -El input box tiene límite visual pero **no de contenido**: -- Usa `Shift+Enter` para multi-línea -- Scroll automático después de 5 líneas -- O escribe en editor externo y pega - -### HuggingFace API no funciona - -**Verifica:** -```bash -# Test manual -curl https://api-inference.huggingface.co/models/OpceanAI/Yuuki-best \ - -H "Authorization: Bearer YOUR_TOKEN" \ - -d '{"inputs": "test"}' -``` - -**Problemas comunes:** -- Token expirado → Genera nuevo -- Rate limit → Espera o upgrade plan -- Modelo privado → Verifica permisos - ---- - -## 📊 Performance Tips - -### Termux/Móvil - -```bash -# Usa modelos pequeños -yuy download Yuuki-best --quant q4_0 - -# Preset Balanced o Precise -# Creative es más lento -``` - -### Desktop High-end - -```bash -# Usa Q8 o F32 para mejor calidad -yuy download Yuuki-best --quant q8_0 - -# Habilita GPU en llama.cpp -llama-cli -m model.gguf -ngl 32 # 32 layers en GPU -``` - ---- - -## 🎓 Casos de Uso - -### 1. Coding Assistant - -``` -Preset: Precise - -You: Cómo implemento un servidor HTTP en Rust? -You: Muestra ejemplo con tokio -You: Agrega manejo de errores -You: Ahora agrega logging -``` - -### 2. Creative Writing - -``` -Preset: Creative - -You: Escribe el inicio de una novela de ciencia ficción ambientada en Marte en el año 2157 -You: Continúa describiendo al protagonista -You: ¿Qué conflicto enfrenta? -``` - -### 3. Learning/Study - -``` -Preset: Balanced - -You: Explícame la diferencia entre mutex y semaphore -You: Dame un ejemplo de cuándo usar cada uno -You: ¿Qué pasa si no uso sincronización? -``` - ---- - -## 🚀 Workflow Recomendado - -### Developer - -```bash -# Mañana: Coding -yuy-chat # Preset: Precise -> Ayuda con bugs, arquitectura, código - -# Tarde: Docs -yuy-chat # Preset: Balanced -> Escribir documentación, READMEs - -# Noche: Ideas -yuy-chat # Preset: Creative -> Brainstorming features -``` - -### Writer - -```bash -yuy-chat # Preset: Creative -> Generar ideas -> Escribir borradores -> Feedback de historias -``` - -### Estudiante - -```bash -yuy-chat # Preset: Balanced -> Explicaciones de conceptos -> Resolver dudas -> Preparar exámenes -``` - ---- - -**¿Preguntas? Abre un issue en GitHub!** - -🌸 Hecho con amor por el equipo Yuuki