Plataforma avanzada de chat y análisis de datos basada en Next.js 15 y la AI SDK que permite construir experiencias de IA conversacional potentes e intuitivas.
Características · Tecnologías · Arquitectura · Instalación · Sistema RAG · Convenciones
└─ /
├─ app/ # Rutas de Next.js con App Router
│ ├─ (auth)/ # Grupo de rutas para autenticación
│ ├─ (chat)/ # Grupo de rutas para chat
│ ├─ api/ # API Routes de Next.js
│ └─ */ # Otras rutas de la aplicación
├─ artifacts/ # Sistema de artifacts interactivos
│ ├─ code/ # Artifacts de código
│ ├─ image/ # Artifacts de imágenes
│ ├─ sheet/ # Artifacts de hojas de cálculo
│ └─ text/ # Artifacts de texto
├─ components/ # UI compartida (diseño atómico)
├─ lib/ # Helpers, utils, clientes de API
│ └─ rag/ # Sistema RAG completo
│ ├─ api/ # API FastAPI para RAG
│ ├─ core/ # Lógica central del sistema
│ ├─ pdf_extraction/ # Pipeline de procesamiento de PDFs
│ └─ db/ # Esquemas y migraciones específicas
├─ hooks/ # Hooks de React reutilizables
├─ tests/ # Pruebas e2e con Playwright
└─ public/ # Activos estáticos
graph TD
A[PDF Upload] --> B[PyMuPDF Extraction]
B --> C[Text Cleaning & Structure]
C --> D[Context Enrichment]
D --> E[Voyage AI Embeddings]
E --> F[Qdrant Storage]
G[User Query] --> H[Query Embedding]
H --> I[Hybrid Search]
I --> J[Vector Search]
I --> K[Keyword Search]
J --> L[Result Reranking]
K --> L
L --> M[Context Assembly]
M --> N[AI Response]
Crea un archivo .env.local en la raíz del proyecto con las siguientes variables:
# Base de datos principal
DATABASE_URL="postgresql://user:password@localhost:5432/confidens_v2"
# Autenticación
NEXTAUTH_SECRET="tu-secret-aleatorio"
NEXTAUTH_URL="http://localhost:3000"
# Modelos de IA
OPENAI_API_KEY="sk-..."
ANTHROPIC_API_KEY="sk-ant-..."
GOOGLE_GENERATIVE_AI_API_KEY="AI..."
XAI_API_KEY="xai-..."
# Sistema RAG
VOYAGE_API_KEY="pa-..."
QDRANT_URL="http://localhost:6333"
QDRANT_API_KEY="" # Opcional para Qdrant Cloud
# Configuración RAG
VOYAGE_MODEL="voyage-3.5"
QDRANT_COLLECTION="documents"
# 1. Instalar dependencias JavaScript
pnpm install
# 2. Configurar bases de datos
pnpm db:migrate # Base de datos principal
pnpm db:migrate:rag # Base de datos RAG
# 3. Iniciar servicios con Docker (opcional)
docker-compose up -d qdrant
# 4. ¡Inicio automático de todo!
./start-dev.sh
El script start-dev.sh hace todo automáticamente:
# Terminal 1: API RAG
cd lib/rag && uv sync && cd ../..
pnpm rag:dev # FastAPI (puerto 8000)
# Terminal 2: Frontend
pnpm dev # Next.js (puerto 3000)
Una vez iniciado, tendrás acceso a:
# Inicio rápido (Recomendado)
./start-dev.sh # Inicia FastAPI + Next.js automáticamente
# Desarrollo individual
pnpm dev # Solo Next.js (puerto 3000)
pnpm rag:dev # Solo FastAPI (puerto 8000)
pnpm build # Construir para producción
pnpm start # Servidor de producción
# Calidad de código
pnpm lint # Verificar código
pnpm format # Formatear código
pnpm test # Ejecutar pruebas e2e
# Base de datos
pnpm db:studio # Drizzle Studio
pnpm db:generate # Generar migraciones
pnpm db:push # Aplicar cambios directos
# Sistema RAG
pnpm rag:test # Probar conexiones RAG
pnpm test:rag # Pruebas de búsqueda híbrida
El sistema RAG (Retrieval-Augmented Generation) es una funcionalidad central que permite:
La API RAG corre independientemente en el puerto 8000:
# Endpoints principales
POST /api/documents/upload # Subir y procesar documentos
GET /api/documents/list # Listar documentos procesados
POST /api/search # Búsqueda híbrida
DELETE /api/documents/{id} # Eliminar documentos
GET /api/health # Estado del sistema
El sistema RAG se integra automáticamente con el chat principal:
Los artifacts permiten generar y editar contenido interactivo:
user-card.tsx)UserCard)fetchUser)DEFAULT_TIMEOUT_MS)feat/scope, fix/scope, refactor/scope✨ feat(rag): implement hybrid searchEste proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
86 commits
TypeScript
78.6%
Python
18.7%
JavaScript
1.5%
Plataforma avanzada de chat y análisis de datos basada en Next.js 15 y la AI SDK que permite construir experiencias de IA conversacional potentes e intuitivas.
Características · Tecnologías · Arquitectura · Instalación · Sistema RAG · Convenciones
└─ /
├─ app/ # Rutas de Next.js con App Router
│ ├─ (auth)/ # Grupo de rutas para autenticación
│ ├─ (chat)/ # Grupo de rutas para chat
│ ├─ api/ # API Routes de Next.js
│ └─ */ # Otras rutas de la aplicación
├─ artifacts/ # Sistema de artifacts interactivos
│ ├─ code/ # Artifacts de código
│ ├─ image/ # Artifacts de imágenes
│ ├─ sheet/ # Artifacts de hojas de cálculo
│ └─ text/ # Artifacts de texto
├─ components/ # UI compartida (diseño atómico)
├─ lib/ # Helpers, utils, clientes de API
│ └─ rag/ # Sistema RAG completo
│ ├─ api/ # API FastAPI para RAG
│ ├─ core/ # Lógica central del sistema
│ ├─ pdf_extraction/ # Pipeline de procesamiento de PDFs
│ └─ db/ # Esquemas y migraciones específicas
├─ hooks/ # Hooks de React reutilizables
├─ tests/ # Pruebas e2e con Playwright
└─ public/ # Activos estáticos
graph TD
A[PDF Upload] --> B[PyMuPDF Extraction]
B --> C[Text Cleaning & Structure]
C --> D[Context Enrichment]
D --> E[Voyage AI Embeddings]
E --> F[Qdrant Storage]
G[User Query] --> H[Query Embedding]
H --> I[Hybrid Search]
I --> J[Vector Search]
I --> K[Keyword Search]
J --> L[Result Reranking]
K --> L
L --> M[Context Assembly]
M --> N[AI Response]
Crea un archivo .env.local en la raíz del proyecto con las siguientes variables:
# Base de datos principal
DATABASE_URL="postgresql://user:password@localhost:5432/confidens_v2"
# Autenticación
NEXTAUTH_SECRET="tu-secret-aleatorio"
NEXTAUTH_URL="http://localhost:3000"
# Modelos de IA
OPENAI_API_KEY="sk-..."
ANTHROPIC_API_KEY="sk-ant-..."
GOOGLE_GENERATIVE_AI_API_KEY="AI..."
XAI_API_KEY="xai-..."
# Sistema RAG
VOYAGE_API_KEY="pa-..."
QDRANT_URL="http://localhost:6333"
QDRANT_API_KEY="" # Opcional para Qdrant Cloud
# Configuración RAG
VOYAGE_MODEL="voyage-3.5"
QDRANT_COLLECTION="documents"
# 1. Instalar dependencias JavaScript
pnpm install
# 2. Configurar bases de datos
pnpm db:migrate # Base de datos principal
pnpm db:migrate:rag # Base de datos RAG
# 3. Iniciar servicios con Docker (opcional)
docker-compose up -d qdrant
# 4. ¡Inicio automático de todo!
./start-dev.sh
El script start-dev.sh hace todo automáticamente:
# Terminal 1: API RAG
cd lib/rag && uv sync && cd ../..
pnpm rag:dev # FastAPI (puerto 8000)
# Terminal 2: Frontend
pnpm dev # Next.js (puerto 3000)
Una vez iniciado, tendrás acceso a:
# Inicio rápido (Recomendado)
./start-dev.sh # Inicia FastAPI + Next.js automáticamente
# Desarrollo individual
pnpm dev # Solo Next.js (puerto 3000)
pnpm rag:dev # Solo FastAPI (puerto 8000)
pnpm build # Construir para producción
pnpm start # Servidor de producción
# Calidad de código
pnpm lint # Verificar código
pnpm format # Formatear código
pnpm test # Ejecutar pruebas e2e
# Base de datos
pnpm db:studio # Drizzle Studio
pnpm db:generate # Generar migraciones
pnpm db:push # Aplicar cambios directos
# Sistema RAG
pnpm rag:test # Probar conexiones RAG
pnpm test:rag # Pruebas de búsqueda híbrida
El sistema RAG (Retrieval-Augmented Generation) es una funcionalidad central que permite:
La API RAG corre independientemente en el puerto 8000:
# Endpoints principales
POST /api/documents/upload # Subir y procesar documentos
GET /api/documents/list # Listar documentos procesados
POST /api/search # Búsqueda híbrida
DELETE /api/documents/{id} # Eliminar documentos
GET /api/health # Estado del sistema
El sistema RAG se integra automáticamente con el chat principal:
Los artifacts permiten generar y editar contenido interactivo:
user-card.tsx)UserCard)fetchUser)DEFAULT_TIMEOUT_MS)feat/scope, fix/scope, refactor/scope✨ feat(rag): implement hybrid searchEste proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
86 commits
TypeScript
78.6%
Python
18.7%
JavaScript
1.5%