CoolFace
Apppublic

javipinochet02/srl-tutor-demo

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
0likes
App README

SRL Tutor Demo

Demo Gradio del agente tutor de autorregulación del aprendizaje para la tesis de agentes generativos en educación online. La app usa un adaptador LoRA privado sobre Qwen3-14B cuantizado en 4-bit, recuperación sobre el corpus académico del curso y una interfaz de defensa que no expone estados internos al estudiante.

La política de servicio evita el comportamiento FAQ: el ruteo decide entre recuperar, andamiar, responder_directo y derivar; la respuesta visible debe sintetizar el contenido o entregar un plan accionable según la ruta, sin mostrar fragmentos, metadatos, acción de código ni trazas internas.

Entorno de ejecución

  • —Modelo base: configurable con BASE_MODEL.
  • —Adaptador: configurable con ADAPTER_REPO y ADAPTER_REVISION.
  • —Modo de generación de respuesta: ANSWER_GENERATION_ADAPTER_MODE=adapter usa el adaptador para responder; base es un escape local/remoto controlado para aislar regresiones de FAQ sin cambiar el ruteo.
  • —Corpus RAG: configurable con CORPUS_DATASET.
  • —Depósito operativo: configurable con BUCKET_URI.
  • —Hardware: ZeroGPU en Hugging Face Pro. ZERO_GPU_SIZE=large usa media NVIDIA RTX Pro 6000 Blackwell (48 GB); xlarge usa la GPU completa (96 GB) y consume el doble de cuota.
  • —Espacio objetivo: javipinochet02/srl-tutor-demo.

Secretos

  • —HF_TOKEN: token con lectura del adaptador privado, del conjunto RAG privado y del bucket si aplica.
  • —ADMIN_DEBUG_TOKEN: token para mostrar depuración/contextos recuperados solo en modo administrador.
  • —QDRANT_URL y QDRANT_API_KEY: credenciales del Qdrant remoto del corpus.

Variables operativas sugeridas

  • —DEMO_SPACE_TITLE=SRL Tutor Demo
  • —BASE_MODEL=unsloth/Qwen3-14B-unsloth-bnb-4bit
  • —ADAPTER_REPO=javipinochet02/tesis-srl-adapter-qwen14b
  • —ADAPTER_REVISION=<revision_aprobada_por_gate>
  • —ANSWER_GENERATION_ADAPTER_MODE=adapter
  • —CORPUS_DATASET=javipinochet02/tesis-srl-corpus
  • —RAG_VECTOR_BACKEND=qdrant
  • —RAG_PERSIST_DIR_NAME=qdrant_storage_bge_m3
  • —QDRANT_COLLECTION_AGENT=tesis_agent_rag
  • —BUCKET_URI=hf://buckets/javipinochet02/qwen3-32b-srl-tutor-artifacts
  • —ZERO_GPU_SIZE=large
  • —ENABLE_ZERO_GPU_AOT=0 (la captura AOT corrompe la generación bnb-4bit + LoRA; mantener apagado)
  • —ENABLE_TURN_LOGGING=1
  • —TURN_LOG_DIR=/data/artifacts/turn_logs
  • —LOG_RETRIEVED_CONTEXTS=1

Notas de operación

El espacio debe mantenerse protegido (protected) para que el código fuente no quede público. Durante iteraciones locales puede activarse el modo de desarrollo (Dev Mode), pero el estado de demostración defendible debe quedar en modo producción para que la sincronización y reconstrucción reflejen el código publicado. El cambio de adaptador se realiza actualizando variables del espacio, no editando app.py.

La selección large/xlarge se controla en código con @spaces.GPU(size=ZERO_GPU_SIZE), porque la configuración YAML pública del espacio no fija el tamaño de ZeroGPU; el hardware ZeroGPU se selecciona en la configuración remota del espacio.

El panel de contexto recuperado, el JSON de depuración, la revisión del adaptador y las trazas de tiempo son visibles solo en modo administrador con ADMIN_DEBUG_TOKEN. En la vista estudiante, la respuesta final debe estar en español, sin CoT, sin bloques de código, sin documentos recuperados y sin etiquetas internas.