rony-chat-bot/README.es.md
Victor Hugo Vargas b9769fac41 docs(i18n): translate all docs to English (with .es.md as Spanish alternative)
- README.md: full English translation, .es.md preserved
- docs/architecture.md: full translation (1039 lines)
- configs/portfolio-bot.yaml: full English translation, .es.yaml preserved
- data/projects/README.md + example-project.md: translated with banners

Default language is now English (standard for OSS). Spanish remains
available via .es.* suffix files.
2026-06-30 13:27:00 -07:00

3.7 KiB

Rony Chat Bot — Portfolio Bot HTTP

🌐 Idioma: English | Español

🤖 Chatbot HTTP que presenta tu portfolio y responde preguntas sobre tus proyectos.

Rony Chat Bot es un chatbot basado en rony-llm-agent que se integra con un sitio Astro/React para responder preguntas sobre Victor Hugo Vargas y sus proyectos, usando RAG sobre archivos markdown.

Features

  • 🌐 HTTP server con streaming SSE (Server-Sent Events)
  • 🧠 RAG sobre markdown — indexa automáticamente los .md en data/projects/
  • 🎭 Persona customizable — responde como "asistente de Victor"
  • Self-hosted con Ollama o llama.cpp (no requiere API key de cloud)
  • 🔌 Integrable con Astro/React via proxy HTTP
  • 🛡️ Rate limiting y logging estructurado
  • 📦 Portable — se puede adaptar a otros contextos (clientes, productos, etc.)

🚀 Quick start

# 1. Instalar
git clone https://github.com/VictorVargas/rony-chat-bot.git
cd chat-bot

# 2. Resolver dependencias (crea go.sum con hashes)
go mod tidy

# 3. Configurar provider (ejemplo: Ollama)
# Asegúrate de tener Ollama corriendo: ollama serve
# Modelo descargado: ollama pull qwen2.5:1.5b

# 4. Cargar tus proyectos en data/projects/
echo "# Mi Proyecto Cool\nDescripción..." > data/projects/mi-proyecto.md

# 5. Build
go build -o bin/chat-bot ./cmd/chat-bot

# 6. Run
./bin/chat-bot serve
# → Sirve en http://localhost:7331

📁 Estructura

chat-bot/
├── cm./rony-chat-bot/             # Entry point (CLI)
├── internal/
│   ├── server/               # HTTP handlers + SSE
│   ├── portfolio/            # Data loader (markdown → RAG)
│   ├── persona/              # Persona override
│   └── streaming/            # SSE helpers
├── data/projects/            # ← TUS PROYECTOS EN MARKDOWN
│   ├── rony-tui.md
│   ├── rony-llm-agent.md
│   └── ...
├── configs/
│   └── portfolio-bot.yaml    # Provider config
├── docs/
│   └── architecture.md             # ← Especificación técnica completa
└── go.mod                    # require rony-llm-agent

🎯 Uso desde Astro

Ver docs/architecture.md §5 — patrón recomendado de proxy.

// portfolio/src/pages/api/chat.ts
export const POST: APIRoute = async ({ request }) => {
    const body = await request.json();
    const resp = await fetch('http://localhost:7331/api/chat', {
        method: 'POST',
        body: JSON.stringify(body),
    });
    return new Response(resp.body, {
        headers: { 'Content-Type': 'text/event-stream' },
    });
};

🔄 Adaptar a otro cliente

Este bot está diseñado para ser atómico y reusable. Para adaptarlo (ej. chatbot para un concesionario):

  1. Fork/clone este repo
  2. Reemplaza data/projects/ con data/inventory/ (u otro dominio)
  3. Actualiza configs/portfolio-bot.yaml con la nueva persona
  4. Deploy

La librería rony-llm-agent no cambia.

📚 Documentación

📄 Licencia

MIT — ver LICENSE.

🔗 Proyectos del workspace