Volver a la wiki

Endpoint /api/help/ask — proxy Help Widget → MCP workspace

Endpoint /api/help/ask — proxy Help Widget → MCP workspace

Identificación

CampoValor
Ruta/api/help/ask
MétodoPOST
Handlercore.api_help.help_ask (operation: core_api_help_help_ask)
AuthSesión de usuario (mismo dominio)
Appcore

Responsabilidad

Actúa como proxy thin entre el Help Widget del frontend (Alpine.js) y el MCP workspace (bib_ask). Normaliza el modo (help | tutor), propaga el historial conversacional cuando corresponde, y devuelve la respuesta renderizada en HTML (_md_to_html).

No accede directamente a la base de datos ni al vector store — toda la lógica de recuperación vive en el workspace MCP.


Payload de entrada

{
  "question": "string (requerido)",
  "mode": "'tutor' | null",
  "source_type": "string | null",
  "app": "string | null",
  "history": [
    { "role": "user | assistant", "content": "string" }
  ]
}
CampoDescripción
questionPregunta del usuario en texto plano
mode"tutor" activa IT Tutor; cualquier otro valor → modo help
source_typeFiltro opcional de tipo de fuente (modo help)
appApp Django activa inferida desde la URL (modo help, context-aware)
historyTurnos previos del chat — solo reenviado si mode=tutor (s55). El cliente envía máx. 10 turnos.

Lógica de enrutamiento por modo

mode = "tutor" if payload.get("mode") == "tutor" else "help"
history = payload.get("history") if mode == "tutor" else None

Ambos modos incluyen "archive": False — el archivado lo gestiona el cron diario del Curator, no el flujo del usuario final.


Respuesta

{
  "answer": "<p>HTML renderizado desde markdown</p>",
  "mode": "help | tutor",
  "sources": [ ... ]
}

El HTML lo genera _md_to_html en el proxy antes de devolver la respuesta. El frontend inyecta resp.answer directamente en el DOM via innerHTML (patrón CSP del proyecto).


Historial del endpoint

SprintCambio
s52Context-aware retrieval: campo app inferido desde URL
s53Toggle mode=tutor: IT Tutor mode (skip vector search)
s55Multi-turn: campo history propagado al workspace cuando mode=tutor

Endpoints relacionados del módulo core.api_help

EndpointOperaciónPropósito
/api/help/wikicore_api_help_help_wikiBrowse de secciones y artículos de la wiki
/api/help/articlecore_api_help_help_articleLectura de artículo individual

Véase también

Subir