Initial implementation of the bot: - cmd/chat-bot: CLI entrypoint (serve, reindex, ask, version) - internal/agent: LLM provider client + agent runner with RAG injection - internal/config: YAML config loader (providers, RAG, persona, server) - internal/i18n: response-language detection (EN/ES) - internal/persona: persona system prompt assembly from YAML - internal/portfolio: heading-based chunker + SQLite FTS5 indexer - internal/server: chi router with /api/chat (SSE), /api/health, /api/info, /api/reindex, middleware (RequestID, Logging, CORS, RateLimit) - internal/streaming: SSE protocol helpers (start, chunk, sources, done, error) - web/: drop-in vanilla-JS chat widget (no build, no deps) + demo + README - bench/: reproducible driver benchmark (modernc vs mattn SQLite) - configs/portfolio-bot.yaml: llama.cpp default provider, SQLite RAG, canine persona - docs/architecture.md / .es.md: aligned with SQLite FTS5 + llama.cpp decisions - data/projects/README*.md: project data documentation - README.md / .es.md: updated for current implementation All tests pass (go test ./...). Bot is functional end-to-end with the configured LLM provider.
1.4 KiB
1.4 KiB
Proyectos del Portfolio
Coloca aquí un archivo .md por cada proyecto que quieras que el bot pueda responder.
Convención de nombres
- Un archivo por proyecto:
nombre-del-proyecto.md - Nombre en kebab-case (minúsculas con guiones)
- Ejemplo:
rony-tui.md,rony-llm-agent.md,portfolio-astro.md
Frontmatter (opcional pero recomendado)
---
title: "Rony TUI"
date: 2026-06
status: "active" # active | archived | wip
tags: ["go", "ai", "cli"]
repo: "https://github.com/VictorVargas/rony-harness"
demo: "https://..." # opcional
---
# Rony TUI
AI agent harness para desarrollo de software...
Cómo se procesan
- El bot escanea este directorio al arrancar
- Cada
.mdse divide en chunks de ~500 caracteres - Los chunks se guardan en una base SQLite local con FTS5 (búsqueda de texto completo, ranking BM25)
- Cuando alguien pregunta, se buscan los top-5 chunks más relevantes
- Esos chunks se inyectan al contexto del LLM
No se requieren modelos de embeddings ni bases vectoriales externas — todo corre en un único archivo SQLite (data/portfolio.db).
Re-indexar
Si modificas los .md, ejecuta:
./bin/chat-bot reindex
Esto reconstruye el índice SQLite FTS5 desde cero.
Ejemplo de proyecto
Ver example-project.md para una plantilla.