SUPERADO POR 2026-09-27-plan-hf-unificado.md. Se conserva como detalle.

HF (Space) corre el pipeline completo: harnessing + modelo + respuesta (2026-09-27)

Decisión de Nef: el Space de HF corre todo el pipeline, no solo las piezas sueltas.

Qué significa

Un solo Space Gradio puede hacer la cadena entera:

embed (Qwen3-Embedding-4B)
  -> retrieval (chunking + índice + RRF)
  -> rerank (Qwen3-Reranker-0.6B)
  -> chat (Qwen3-14B)
  -> respuesta

O sea: harnessing + modelo + respuesta en el mismo lugar. No hace falta que el harness viva como servicio aparte.

Estado actual vs objetivo

  • Hoy: [usuario]/sonrisa-inference expone tres primitivos sueltos por API Gradio (embed, rerank, chat). El harness (chunking, recuperación, armado de prompt) vive en proyecto_1_dentistas.
  • Objetivo: mover el harness dentro de app.py para que una sola llamada haga pregunta → respuesta con citas.

Relación con clinica-chat (no cambia)

  • Producción / paciente: Cloudflare Worker + gemma-4. Se queda como está.
  • Laboratorio / demo / pipeline completo: HF Space.

Límites vigentes (ya medidos)

  • 40 min GPU/día de cuota ZeroGPU (PRO), resetea 24 h tras el primer uso.
  • Cold start y cola: un GPU a la vez.
  • Hasta 10 Spaces ZeroGPU (uno por cliente si se convierte en demo por cliente).

Verificado en vivo (2026-09-27)

  • POST /gradio_api/call/{embed|rerank|chat} (Gradio 6; el viejo /call/... da 405).
  • embed: vectores reales. rerank: acierta (8.5 vs −12.4 / −9.6).
  • chat: Qwen3-14B razona por defecto; con max_tokens chico se corta. /no_think lo apaga (respuesta correcta “850 pesos”). Arreglo robusto: enable_thinking=False.

Corrige este doc anterior

[CREDENCIAL].md (el que listaba ZeroGPU en CPU como bloqueador) queda superado: ZeroGPU ya está asignado y operativo.