Uso de flujos de trabajo en el código
Después de diseñar y probar un flujo de trabajo en el diseñador visual de Microsoft Foundry, puede integrarlo en las aplicaciones mediante el SDK de proyectos de Azure AI. Esto le permite insertar la automatización controlada por flujos de trabajo en aplicaciones web, API, servicios back-end y otras soluciones de software.
Los flujos de trabajo se crean en el portal de Foundry mediante el diseñador visual, que genera la definición de YAML subyacente. Una vez que se guarda un flujo de trabajo en el proyecto, puede invocarlo mediante programación haciendo referencia a su nombre. También puede descargar la definición de YAML del flujo de trabajo desde el portal e incluirla en el código base.
Invocación de un flujo de trabajo
Antes de ejecutar un flujo de trabajo, establezca una conexión con el proyecto de Microsoft Foundry mediante .AIProjectClient Este cliente controla la autenticación y proporciona acceso a la API compatible con OpenAI para ejecutar conversaciones e invocar flujos de trabajo. Para ejecutar un flujo de trabajo existente en el proyecto, cree una conversación e invoque el flujo de trabajo por nombre.
# Reference a workflow created in the Foundry portal
workflow_name = "triage-workflow"
# Create a conversation context for the workflow
conversation = openai_client.conversations.create()
# Execute the workflow, passing input to drive the workflow logic
stream = openai_client.responses.create(
conversation=conversation.id,
extra_body={"agent": {"name": workflow_name, "type": "agent_reference"}},
input="Users can't reset their password from the mobile app.",
stream=True,
)
El input parámetro permite pasar un mensaje o una solicitud al flujo de trabajo, que el flujo de trabajo puede usar para impulsar su lógica, como procesar una solicitud de usuario, evaluar una incidencia de soporte técnico o responder a una pregunta. En función de cómo se diseñe el flujo de trabajo, esta entrada puede ser:
- Pregunta del usuario a la que los agentes analizan y responden
- Descripción de ticket de soporte técnico para clasificación y enrutación
- Una carga de datos que desencadena la lógica de procesamiento
- Cadena vacía que simplemente inicia el flujo de trabajo sin entrada específica
Procesar eventos de flujo de trabajo
Cuando el streaming está habilitado, la aplicación recibe eventos a medida que se ejecuta el flujo de trabajo. Estos eventos le permiten mostrar el progreso en tiempo real, capturar las salidas del agente y responder a las acciones de flujo de trabajo.
for event in stream:
if event.type == "response.completed":
print("Workflow completed:")
for message in event.response.output:
if message.content:
for content_item in message.content:
if content_item.type == 'output_text':
print(content_item.text)
if (event.type == "response.output_item.done") and event.item.type == ItemType.WORKFLOW_ACTION:
print(f"Action '{event.item.action_id}' completed with status: {event.item.status}")
Entre los tipos de eventos comunes se incluyen:
| Tipo de evento | Description |
|---|---|
response.completed |
El flujo de trabajo finalizó la ejecución y devolvió una respuesta final. |
response.output_item.done |
Se completó un elemento de salida individual (como una acción de flujo de trabajo) |
Al supervisar estos eventos, puede ver cómo progresa el flujo de trabajo en tiempo real o desencadenar acciones externas en función del estado del flujo de trabajo. Como alternativa, puede esperar a que todo el flujo de trabajo se complete y procese la respuesta final sin streaming. En el caso de los flujos de trabajo que incluyen patrones human-in-the-loop, es posible que la aplicación tenga que controlar las pausas en las que el flujo de trabajo espera la entrada del usuario. En estos casos, puede enviar mensajes adicionales a la conversación para proporcionar la entrada solicitada y reanudar la ejecución del flujo de trabajo.
Ventajas de la integración de código
La integración de flujos de trabajo en el código permite varios escenarios:
| Scenario | Ventajas |
|---|---|
| Aplicaciones web | Inserción de flujos de trabajo controlados por ia directamente en aplicaciones orientadas al usuario |
| API y microservicios | Exposición de funcionalidades de flujo de trabajo a través de puntos de conexión REST |
| Procesamiento por lotes | Invocación de flujos de trabajo mediante programación para operaciones masivas |
| Pruebas y validación | Automatización de las pruebas de flujo de trabajo como parte de las canalizaciones de CI/CD |
| Interfaces personalizadas | Creación de interfaces de usuario especializadas adaptadas a casos de uso específicos de flujo de trabajo |
Al combinar la experiencia de diseño visual del portal de Foundry con la flexibilidad de la integración de código, puede crear soluciones eficaces controladas por inteligencia artificial que se ajusten perfectamente a la arquitectura de software existente.