PROJECT / botardo
Botardo — Asistente IA con RAG
Agente conversacional con RAG embebido en la web: recuperación vectorial sobre Cloudflare Vectorize con embeddings bge-m3, generación con DeepSeek V4 Flash vía OpenCode Go, y detección determinística de idioma con fallback sin LLM para preguntas fuera de contexto.
Problema
Mi web personal era estática y respondía igual a todos los visitantes. Quería que mi perfil fuera consultable de forma natural, con un asistente que responda con hechos de una base de conocimiento curada, sin alucinar ni inventar datos.
Qué hice
Diseñé Botardo sobre Cloudflare Workers: el mensaje del visitante se embeddea con bge-m3 (Workers AI), se recuperan los chunks más similares de la base en Vectorize (umbral de similitud más tope de 4 chunks) y se genera la respuesta con DeepSeek V4 Flash a través de OpenCode Go. El idioma (es/en) se detecta de forma determinística y, si no hay contexto recuperado, responde un fallback automático sin llamar al modelo. La knowledge base se alimenta desde mi exportador linkedin-markdownificator. Incluye retry con backoff, CORS acotado a los orígenes del sitio y 33 pruebas con Vitest.
Destacados
- RAG completo en Cloudflare: Workers + Vectorize + embeddings bge-m3 (Workers AI).
- Generación con DeepSeek V4 Flash vía OpenCode Go.
- Detección determinística de idioma (es/en) y fallback sin LLM cuando no hay contexto: cero costo en preguntas fuera de tema.
- Retry con backoff, CORS acotado y 33 pruebas con Vitest.
- Knowledge base curada y sincronizada desde linkedin-markdownificator.
Stack
- Astro
- TypeScript
- Cloudflare Workers
- Cloudflare Vectorize
- Workers AI
- OpenCode Go
- DeepSeek V4 Flash
- Vitest
Links