The library was renamed to rony-llm-agent but some docs still referenced the old go-llm-agent name. Also fixed 'chat-bot/' → 'rony-chat-bot/' in project structure diagrams to match the actual directory name.
3.7 KiB
3.7 KiB
Rony Chat Bot — Portfolio Bot HTTP
🤖 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
.mdendata/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
rony-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):
- Fork/clone este repo
- Reemplaza
data/projects/condata/inventory/(u otro dominio) - Actualiza
configs/portfolio-bot.yamlcon la nueva persona - Deploy
La librería rony-llm-agent no cambia.
📚 Documentación
- Architecture doc — Especificación técnica completa
- Library:
rony-llm-agent— Core reutilizable - Harness — El otro proyecto que usa la misma librería
📄 Licencia
MIT — ver LICENSE.
🔗 Proyectos del workspace
rony-llm-agent— Librería coreharness— AI agent harness (TUI)portfolio— Astro + React site (integra este bot)