Skip to main content

Rutas

El servidor define una serie de métodos get y post que puedes encontrar buscando @routes en server.py. Cuando envías un flujo de trabajo desde el cliente web, se publica en /prompt, que valida el prompt y lo añade a una cola de ejecución, devolviendo un prompt_id y un number (la posición en la cola), o error y node_errors si la validación falla. La cola de prompts se define en execution.py, que también define la clase PromptExecutor.

Rutas integradas

server.py define las siguientes rutas:

Rutas de la API principal

Comunicación por WebSocket

El endpoint /ws ofrece comunicación bidireccional en tiempo real entre el cliente y el servidor. Se usa para:
  • Recibir actualizaciones del progreso de ejecución
  • Obtener el estado de ejecución de los nodos en tiempo real
  • Recibir mensajes de error e información de depuración
  • Ver actualizaciones en vivo cuando cambia el estado de la cola
La conexión WebSocket envía mensajes JSON de distintos tipos, como:
  • status - Actualizaciones del estado general del sistema
  • execution_start - Cuando empieza la ejecución de un prompt
  • execution_cached - Cuando se usan resultados en caché
  • executing - Actualizaciones durante la ejecución de un nodo
  • progress - Actualizaciones del progreso de operaciones largas
  • executed - Cuando un nodo termina su ejecución

Rutas personalizadas

Si quieres enviar un mensaje del cliente al servidor durante la ejecución, tendrás que añadir una ruta personalizada al servidor. Para los casos complicados tendrás que consultar la documentación del framework aiohttp, pero la mayoría de los casos se resuelven así:
A menos que sepas lo que haces, no intentes definir my_function dentro de una clase. El decorador @routes.post hace mucho trabajo. En su lugar, define la función como se muestra arriba y luego llama a un método de clase.
También puedes definir un @routes.get si no vas a cambiar nada.
El cliente puede usar esta nueva ruta enviando un objeto FormData con un código parecido a este, lo que haría que the_data, en el código anterior, contenga las claves message y node_id: