cv-santiago
santifer/cv-santiago
Interactive CV with AI chat integration
Overview
A portfolio website showcasing interactive features powered by an integrated AI chatbot. The site includes agentic retrieval-augmented generation, extensive evaluative tests, and observability tracking.
Categories
Tags
Similar tools
ECC
affaan-m/ECC
The agent harness performance optimization system
hermes-agent
NousResearch/hermes-agent
The self-improving AI agent built by Nous Research
AutoGPT
Significant-Gravitas/AutoGPT
AutoGPT: Build, Deploy, and Run AI Agents
ollama
ollama/ollama
Get up and running with Kimi-K2.6, GLM-5.1, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
langflow
langflow-ai/langflow
Langflow is a powerful platform for building and deploying AI-powered agents and workflows.
dify
langgenius/dify
Production-ready platform for agentic workflow development
Install
git clone https://github.com/santifer/cv-santiagoREADME
santifer.io
:gb: English | :es: Español
Interactive portfolio with AI chatbot (text + voice), agentic RAG, 71 automated evals, LLMOps dashboard, and 6-layer prompt injection defense
The Problem
Static CVs don't show what you can actually build. A PDF lists skills — it doesn't prove them.
The Solution
A production-grade interactive portfolio that demonstrates the skills it describes: dual-mode AI chatbot (text + voice) with agentic RAG, full LLMOps observability with custom dashboard, 71 automated evals as CI gate, prompt versioning, and a closed-loop that generates tests from production failures.
Key Features:
- AI Chatbot "Santi" — Text (Claude Sonnet) + Voice (OpenAI Realtime API). Responds in first person as Santiago. Agentic RAG with hybrid search (pgvector + BM25) and Haiku reranking
- 6-Layer Defense — Keyword detection, canary tokens, fingerprinting, anti-extraction, online safety scoring, adversarial red team. Real-time jailbreak email alerts
- 71 Automated Evals — 10 categories: factual accuracy, persona, boundaries, quality, safety, language, RAG quality, multi-turn, source badges, voice quality. CI gate on every push
- LLMOps Dashboard — Private
/opswith 8 tabs: Overview, Conversations, Costs, RAG, Security, Evals, Voice, System. Real data from Langfuse + Supabase - Closed Loop — Trace → online scoring → quality < 0.7 → auto-generate test → CI gate blocks deploy
- Voice Mode — OpenAI Realtime API, audio-to-audio, shared RAG pipeline, ~$0.25/session
- 6 Published Case Studies — Bilingual (ES/EN) with JSON-LD, prerendered HTML, cross-linked RAG, and interactive architecture diagrams
- Interactive Architecture Diagram — GSAP-animated SVG with narrated audio, pan/zoom, dark mode sync. Explore it →
- GEO-ready —
llms.txt, structured data (JSON-LD), AI crawler-friendly robots.txt
Tech Stack
Chatbot Architecture
Explore the interactive diagram → 10 phases · narrated audio · zoom + pan
User message → FloatingChat.tsx → api/chat.js (Vercel Edge)
├── System prompt (Langfuse registry + fallback)
├── Claude Sonnet (tool_use decision)
├── Agentic RAG (if needed):
│ ├── OpenAI embeddings (text-embedding-3-small)
│ ├── Supabase pgvector (semantic) + full-text (BM25)
│ └── Claude Haiku (reranking + diversification)
├── Claude Sonnet (streaming generation)
├── Langfuse tracing (every span with cost)
└── waitUntil → Haiku scoring (0ms added latency)
Voice mode → useVoiceMode.ts → api/voice-token.js → OpenAI Realtime WebSocket
└── api/rag-search.js (function calling for RAG)
Key Files
| File | Path | Description |
|---|---|---|
| Chat edge function | api/chat.js | Main chatbot — RAG, tracing, scoring, streaming, defense |
| RAG pipeline | api/_shared/rag.js | Hybrid search, reranking, cost tracking, intent classification |
| Prompt management | api/_shared/prompt.js | Langfuse prompt registry with file fallback |
| Voice token | api/voice-token.js | OpenAI Realtime ephemeral token + rate limiting |
| Voice RAG | api/rag-search.js | RAG search for voice mode function calling |
| Voice trace | api/voice-trace.js | Voice session tracing with cost estimation |
| Chat widget | src/FloatingChat.tsx | React widget — streaming SSE, quick prompts, contact CTA |
| Voi |