Używanie przepływów pracy w kodzie
Po zaprojektowaniu i przetestowaniu przepływu pracy w projektancie wizualnym rozwiązania Microsoft Foundry możesz zintegrować go z aplikacjami przy użyciu zestawu SDK usługi Azure AI Projects. Dzięki temu można osadzać automatyzację opartą na przepływach pracy w aplikacjach internetowych, interfejsach API, usługach zaplecza i innych rozwiązaniach oprogramowania.
Przepływy pracy są tworzone w portalu Foundry przy użyciu projektanta wizualnego, który generuje podstawową definicję YAML. Po zapisaniu przepływu pracy w projekcie można wywołać go programowo, odwołując się do jego nazwy. Możesz również pobrać definicję YAML przepływu pracy z portalu i dołączyć ją do bazy kodu.
Wywoływanie przepływu pracy
Przed uruchomieniem przepływu pracy ustanów połączenie z projektem Microsoft Foundry przy użyciu polecenia AIProjectClient. Ten klient obsługuje uwierzytelnianie i zapewnia dostęp do interfejsu API zgodnego z interfejsem OpenAI na potrzeby wykonywania konwersacji i wywoływania przepływów pracy. Aby uruchomić istniejący przepływ pracy w projekcie, utwórz konwersację i wywołaj przepływ pracy według nazwy.
# 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,
)
parametr input umożliwia przekazanie monitu lub komunikatu do przepływu pracy, który może wykorzystać go do sterowania swoją logiką—na przykład przetwarzania żądania użytkownika, klasyfikowania biletu pomocy technicznej lub odpowiadania na pytanie. W zależności od sposobu projektowania przepływu pracy te dane wejściowe mogą być następujące:
- Pytanie użytkownika, na które agenci analizują i reagują
- Opis biletu pomocy technicznej dla klasyfikacji i routingu
- Ładunek danych wyzwalający logikę przetwarzania
- Pusty ciąg, który po prostu uruchamia przepływ pracy bez określonych danych wejściowych
Przetwarzanie zdarzeń przepływu pracy
Po włączeniu przesyłania strumieniowego aplikacja odbiera zdarzenia podczas wykonywania przepływu pracy. Te zdarzenia umożliwiają wyświetlanie postępu w czasie rzeczywistym, przechwytywanie danych wyjściowych agenta i reagowanie na akcje przepływu pracy.
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}")
Typowe typy zdarzeń to:
| Typ zdarzenia | Description |
|---|---|
response.completed |
Przepływ pracy zakończył wykonywanie i zwracał ostateczną odpowiedź |
response.output_item.done |
Ukończono pojedyncze zadanie (na przykład akcję w ramach przepływu pracy) |
Monitorując te zdarzenia, możesz zobaczyć, jak przepływ pracy postępuje w czasie rzeczywistym lub wyzwala akcje zewnętrzne na podstawie stanu przepływu pracy. Alternatywnie możesz poczekać na ukończenie całego procesu roboczego i przetworzyć ostateczną odpowiedź bez korzystania z przesyłania strumieniowego. W przypadku przepływów pracy, które zawierają wzorce procesu typu human-in-the-loop, aplikacja może wymagać obsługi przerw, gdzie przepływ pracy czeka na dane wejściowe od użytkownika. W takich przypadkach możesz wysłać dodatkowe wiadomości do konwersacji, aby dostarczyć żądane dane wejściowe i wznowić wykonywanie przepływu pracy.
Zalety integracji kodu
Integrowanie przepływów pracy z kodem umożliwia wykonanie kilku scenariuszy:
| Scenario | Korzyść |
|---|---|
| Aplikacje internetowe | Osadzanie przepływów pracy opartych na sztucznej inteligencji bezpośrednio w aplikacjach przeznaczonych dla użytkowników |
| API i mikrousługi | Uwidacznianie możliwości przepływu pracy za pośrednictwem punktów końcowych REST |
| Przetwarzanie wsadowe | Programistyczne wywoływanie przepływów pracy dla operacji zbiorczych |
| Testowanie i walidacja | Automatyzowanie testowania przepływu pracy w ramach potoków ciągłej integracji/ciągłego wdrażania |
| Interfejsy niestandardowe | Tworzenie wyspecjalizowanych interfejsów użytkownika dostosowanych do określonych przypadków użycia przepływu pracy |
Łącząc wizualne środowisko projektowania portalu Foundry z elastycznością integracji kodu, można tworzyć zaawansowane rozwiązania oparte na sztucznej inteligencji, które bezproblemowo mieszczą się w istniejącej architekturze oprogramowania.