Skip to main content

Entorno local

Requisitos previos

  • Node.js 20+ y pnpm (no usar npm/yarn en ningún repo de Aura).
  • Docker (para PostgreSQL + pgvector).
  • Ajolote corriendo (servicio de auth) — o acceso al ajolote de dev.
  • Token de GitHub con scope read:packages para instalar los paquetes privados @cuatro-quinas/*.

GitHub Packages (una sola vez)

Los paquetes @cuatro-quinas/ajolote-* se publican en GitHub Packages. Configurá tu ~/.npmrc de usuario (no el del repo):

//npm.pkg.github.com/:_authToken=ghp_TU_TOKEN

Alternativa por sesión: export GITHUB_TOKEN=ghp_... antes de pnpm install.

Backend (Aura-reloaded)

pnpm install
cp env.example .env # completar DATABASE_URL, OPENAI_API_KEY, etc.
docker compose up -d db # PostgreSQL + pgvector
pnpm db:push # aplica el schema (solo dev)
pnpm ingest:manuals # (opcional) carga manuales en knowledge_base
pnpm start:dev # → API en http://localhost:3000

Variables de entorno (backend)

VariableDefaultReq.Descripción
DATABASE_URLConnection string de PostgreSQL
OPENAI_API_KEYEmbeddings (siempre OpenAI)
AUTH_SERVICE_URLURL del ajolote (mismo que usa el front)
AUTH_APP_IDauraApp id en ajolote
LLM_PROVIDERopenaiopenai | groq | cerebras | mistral | mock
LLM_MODELgpt-4o-miniModelo de chat
LLM_API_KEY= OPENAI_API_KEYAPI key del provider de chat
LLM_BASE_URLBase URL para providers no-OpenAI
EMBEDDING_MODELtext-embedding-3-smallModelo de embeddings (runtime)
SIMILARITY_THRESHOLD0.78Umbral de hit en memory_embeddings
APPROVED_THRESHOLD0.85Umbral para ejemplos aprobados
KNOWLEDGE_THRESHOLD0.60Umbral de hit en knowledge_base
QUERY_LATENCY_BUDGET_MS500Timeout de la query RAG (ms)
PORT3000Puerto HTTP/WS
RETELL_API_KEY / RETELL_SECRETRetell (transferencias / auth webhook)
EXISTING_BACKEND_URLBackend externo para lookup de pacientes

Cambiar de provider LLM es solo .env (sin recompilar), ej. LLM_PROVIDER=mock para dev sin API keys.

Frontend (aura-front)

pnpm install
cp .env.example .env.local
pnpm dev # → http://localhost:5173

Variables de entorno (frontend)

VITE_API_BASE_URL=http://localhost:3000 # backend de Aura
VITE_AUTH_URL=http://localhost:5173 # dev server (proxy a ajolote)
VITE_AUTH_PROXY_TARGET=http://100.64.188.115:3010 # ajolote real (dev)
VITE_COPILOT_WS_URL=ws://localhost:3000/copilot/TU_AGENT_ID
VITE_USE_MOCK=false # true = levanta sin backend
VITE_SHOW_SOURCE_FILTER=true # muestra filtro de origen en paneles
Cookie de ajolote en dev

En dev el front le pega a su propio dev server y Vite proxya /api/auth al ajolote real (VITE_AUTH_PROXY_TARGET). Esto es porque la cookie de sesión sale SameSite=Lax y no viaja cross-site. Sin el proxy, get-session devuelve null y nunca quedás logueado. Detalle en Autenticación.

Ajolote (auth)

El backend y el front tienen que apuntar al mismo ajolote (AUTH_SERVICE_URL == VITE_AUTH_PROXY_TARGET), o los roles no matchean. La administración de usuarios y roles (crear tenant, usuarios, asignar roles) se hace contra ajolote, no desde Aura — ver Autenticación → Roles.