8
¿Qué hace el hook `useChat` del Vercel AI SDK y qué ventajas ofrece sobre una implementación manual?
Maneja estado de mensajes, streaming SSE, loading, cancelación, reintentos y tool calls automáticamente, ahorrando cientos de líneas
Es un wrapper de fetch que solo hace POST requests
Solo funciona con OpenAI, no con Anthropic ni otros providers
Es obligatorio para usar React; no se puede hacer chat sin él
💡 Explicación: useChat maneja automáticamente: estado de mensajes, streaming de respuestas SSE, estados de carga (isLoading), cancelación de requests, reintentos, y data transformations. Sin él, necesitarías manejar manualmente el EventSource, parsear chunks SSE, concatenar texto, manejar errores y estados. También soporta tool calls y multiple data streams.
20
¿Cómo diseñarías un sistema de chat con documentos que sea escalable, seguro y costo-eficiente?
Auth+planes → upload async con workers → RAG (vector search + reranking + streaming) → semantic cache → rate limits + guardrails → monitoring + fallback
Pegar todo el documento en el system prompt y usar GPT-4o para todo
Fine-tunear un modelo con cada documento subido por cada usuario
Usar solo keyword search en los documentos sin embeddings ni LLM
💡 Explicación: Pipeline completo: 1) Auth con JWT + planes de suscripción, 2) Upload → procesamiento async (chunking + embeddings en workers), 3) Chat: búsqueda semántica (vector DB) + re-ranking → contexto al LLM con streaming SSE, 4) Semantic cache para preguntas frecuentes, 5) Rate limiting + token budgets por usuario/plan, 6) Guardrails (PII, prompt injection, content moderation), 7) Monitoring de costos y latencia, 8) Fallback entre providers.