Usare i flussi di lavoro nel codice

Completato

Dopo aver progettato e testato un flusso di lavoro nella finestra di progettazione visiva di Microsoft Foundry, è possibile integrarlo nelle applicazioni usando Azure AI Projects SDK. In questo modo è possibile incorporare l'automazione basata sul flusso di lavoro in app Web, API, servizi back-end e altre soluzioni software.

I flussi di lavoro vengono creati nel portale foundry usando la finestra di progettazione visiva, che genera la definizione YAML sottostante. Dopo aver salvato un flusso di lavoro nel progetto, è possibile richiamarlo a livello di codice facendo riferimento al nome. È anche possibile scaricare la definizione YAML del flusso di lavoro dal portale e includerla nella codebase.

Richiamare un flusso di lavoro

Prima di eseguire un flusso di lavoro, stabilire una connessione al progetto Microsoft Foundry usando .AIProjectClient Questo client gestisce l'autenticazione e fornisce l'accesso all'API compatibile con OpenAI per l'esecuzione di conversazioni e la chiamata di flussi di lavoro. Per eseguire un flusso di lavoro esistente nel tuo progetto, crea una conversazione e invoca il flusso di lavoro per nome.

# 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,
)

Il input parametro consente di passare una richiesta o un messaggio al flusso di lavoro, che il flusso di lavoro può usare per determinarne la logica, ad esempio l'elaborazione di una richiesta utente, la valutazione di un ticket di supporto o la risposta a una domanda. A seconda del modo in cui è progettato il flusso di lavoro, questo input potrebbe essere:

  • Domanda utente che gli agenti analizzano e rispondono
  • Descrizione del ticket di supporto per la classificazione e l'indirizzamento
  • Payload di dati che attiva la logica di elaborazione
  • Stringa vuota che avvia semplicemente il flusso di lavoro senza input specifico

Elaborare gli eventi del flusso di lavoro

Quando lo streaming è abilitato, l'applicazione riceve gli eventi durante l'esecuzione del flusso di lavoro. Questi eventi consentono di visualizzare lo stato di avanzamento in tempo reale, acquisire gli output dell'agente e rispondere alle azioni del flusso di lavoro.

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}")

I tipi di evento comuni includono:

Tipo di evento Description
response.completed Il flusso di lavoro ha terminato l'esecuzione e ha restituito una risposta finale
response.output_item.done Un singolo elemento di output (ad esempio un'azione del flusso di lavoro) completato

Monitorando questi eventi, è possibile vedere in che modo il flusso di lavoro avanza in tempo reale o attivare azioni esterne in base allo stato del flusso di lavoro. In alternativa, è possibile scegliere di attendere il completamento dell'intero flusso di lavoro ed elaborare la risposta finale senza streaming. Per i flussi di lavoro che includono modelli di ciclo umano, l'applicazione potrebbe dover gestire le pause in cui il flusso di lavoro attende l'input dell'utente. In questi casi, è possibile inviare messaggi aggiuntivi alla conversazione per fornire l'input richiesto e riprendere l'esecuzione del flusso di lavoro.

Vantaggi dell'integrazione del codice

L'integrazione dei flussi di lavoro nel codice consente diversi scenari:

Scenario Beneficio
Applicazioni Web Incorporare flussi di lavoro basati sull'intelligenza artificiale direttamente nelle app rivolte agli utenti
API e microservizi Esporre le funzionalità del flusso di lavoro tramite endpoint REST
Elaborazione in batch Richiamare flussi di lavoro programmaticamente per le operazioni di massa.
Test e convalida Automatizzare i test del flusso di lavoro come parte delle pipeline CI/CD
Interfacce personalizzate Creare interfacce utente specializzate personalizzate per casi d'uso specifici del flusso di lavoro

Combinando l'esperienza di progettazione visiva del portale Foundry con la flessibilità dell'integrazione del codice, è possibile creare potenti soluzioni basate sull'intelligenza artificiale che si adattino perfettamente all'architettura software esistente.