Skip to content

FaberOs/CiteMind

Repository files navigation

Imagen de portada de CiteMind

🧠 CiteMind

Tu segundo cerebro, potenciado con Inteligencia Artificial.

CiteMind es una aplicación web de Gestión de Conocimiento Personal (PKM) que te permite guardar notas y luego conversar con ellas mediante IA. En lugar de buscar entre cientos de notas manualmente, simplemente le preguntas a tu asistente y él responde basándose en tu propio conocimiento almacenado, citando siempre la fuente.


¿Qué hace CiteMind?

CiteMind combina un sistema de notas tradicional con un pipeline de IA semántica (RAG — Retrieval-Augmented Generation):

  1. Guardar (Notas) — Escribes y organizas tu conocimiento en notas de texto libre.
  2. Ingesta automática — Al guardar una nota, el sistema la divide en fragmentos (chunks), genera embeddings vectoriales con Google AI y los almacena en Supabase con pgvector.
  3. Chat con tus notas — Haces una pregunta en lenguaje natural. El sistema convierte tu pregunta en un vector, busca los fragmentos más relevantes de tus notas y se los entrega al modelo de lenguaje (Groq / Llama 3.3).
  4. Respuesta citada — El asistente responde usando únicamente tu información privada, sin inventar datos externos.

Componentes principales

Componente Descripción
Autenticación Registro e inicio de sesión con Supabase Auth
Notas CRUD Crear, leer y eliminar notas con actualizaciones optimistas
Pipeline de Embeddings Chunking → Google text-embedding-004pgvector
Chat RAG Búsqueda semántica + respuesta en streaming con Llama 3.3 (Groq)

Casos de uso

  • 📚 Estudiante — Guarda resúmenes de libros y pregunta "¿Qué aprendí sobre termodinámica?"
  • 💻 Desarrollador — Almacena snippets y soluciones y consulta "¿Cómo resolví el error de CORS la semana pasada?"
  • 💡 Emprendedor — Registra ideas de negocio y pregunta "¿Cuáles de mis ideas tienen modelo de suscripción?"
  • 🍳 Uso personal — Guarda recetas, viajes, listas y pregunta "¿Qué ingredientes necesito para la lasaña navideña?"

Stack tecnológico

Capa Tecnología
Framework Next.js 16 (App Router) + TypeScript
Estilos Tailwind CSS v4 + Shadcn/ui
Estado servidor TanStack Query v5
Formularios TanStack Form v1 + Zod
Base de datos Supabase (PostgreSQL + pgvector)
Autenticación Supabase Auth
Embeddings Google Generative AI (text-embedding-004)
Chat / LLM Groq (llama-3.3-70b-versatile) vía AI SDK
Arquitectura Vertical Slice Architecture

Requisitos previos

  • Node.js v18 o superior
  • npm v9 o superior
  • Cuenta en Supabase (plan gratuito disponible)
  • API Key de Google AI Studio (gratuito)
  • API Key de Groq (gratuito)

Instalación

1. Clonar el repositorio

git clone https://github.com/tu-usuario/citemind.git
cd citemind

2. Instalar dependencias

npm install

3. Configurar variables de entorno

Copia el archivo de ejemplo y rellena tus credenciales:

cp .env.example .env.local

Edita .env.local con tus valores:

# Supabase — Proyecto en https://supabase.com/dashboard
NEXT_PUBLIC_SUPABASE_URL=https://tu-proyecto.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=tu-anon-key
SUPABASE_SERVICE_ROLE_KEY=tu-service-role-key

# Google AI Studio — https://aistudio.google.com/app/apikey
GOOGLE_AI_KEY=tu-google-ai-key

# Groq — https://console.groq.com/keys
GROQ_API_KEY=tu-groq-api-key

4. Configurar la base de datos

En el SQL Editor de tu proyecto Supabase, ejecuta el esquema completo:

# Copia el contenido de supabase_schema.sql y ejecútalo en Supabase

El esquema instala las extensiones necesarias (vector, pg_trgm, unaccent) y crea todas las tablas, índices, políticas de Row Level Security y la función match_documents para búsqueda vectorial.

5. Ejecutar en desarrollo

npm run dev

Abre http://localhost:3000 en tu navegador.


Scripts disponibles

npm run dev      # Servidor de desarrollo con Turbopack
npm run build    # Build de producción
npm run start    # Servidor de producción
npm run lint     # Análisis estático de código

Estructura del proyecto

src/
├── app/                   # Routing (Next.js App Router)
│   ├── (auth)/            # Páginas de login y registro
│   ├── (dashboard)/       # Dashboard y chat (rutas protegidas)
│   └── api/chat/          # API Route para streaming de chat
├── features/              # Vertical Slices (dominio)
│   ├── auth/              # Autenticación
│   ├── chat/              # Chat con IA
│   ├── embeddings/        # Pipeline de vectorización
│   └── notes/             # CRUD de notas
├── lib/                   # Shared Kernel
│   ├── ai/                # Configuración de modelos (Groq, Google)
│   └── supabase/          # Clientes de Supabase (browser/server)
└── providers/             # React context providers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors