ใช้เวิร์กโฟลว์ในโค้ด
หลังจากออกแบบและทดสอบเวิร์กโฟลว์ในตัวออกแบบวิชวล Microsoft Foundry แล้ว คุณสามารถรวมเข้ากับแอปพลิเคชันของคุณโดยใช้ Azure AI Projects SDK สิ่งนี้ช่วยให้คุณสามารถฝังระบบอัตโนมัติที่ขับเคลื่อนด้วยเวิร์กโฟลว์ลงในเว็บแอป API, บริการแบ็กเอนด์ และโซลูชันซอฟต์แวร์อื่นๆ
เวิร์กโฟลว์ถูกสร้างขึ้นในพอร์ทัล Foundry โดยใช้ตัวออกแบบภาพ ซึ่งสร้างข้อกําหนด YAML พื้นฐาน เมื่อบันทึกเวิร์กโฟลว์ในโครงการของคุณแล้ว คุณสามารถเรียกใช้เวิร์กโฟลว์โดยทางโปรแกรมได้โดยการอ้างอิงชื่อของเวิร์กโฟลว์ คุณยังสามารถดาวน์โหลดข้อกําหนด YAML ของเวิร์กโฟลว์ได้จากพอร์ทัล และรวมไว้ในฐานรหัสของคุณ
เรียกใช้เวิร์กโฟลว์
ก่อนเรียกใช้เวิร์กโฟลว์ ให้สร้างการเชื่อมต่อกับโครงการ Microsoft Foundry ของคุณโดยใช้ปุ่มAIProjectClient ไคลเอ็นต์นี้จัดการการรับรองความถูกต้องและให้การเข้าถึง API ที่เข้ากันได้กับ OpenAI เพื่อดําเนินการสนทนาและเรียกใช้เวิร์กโฟลว์ เมื่อต้องการเรียกใช้เวิร์กโฟลว์ที่มีอยู่ในโปรเจ็กต์ของคุณ ให้สร้างการสนทนาและเรียกใช้เวิร์กโฟลว์ตามชื่อ
# 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,
)
พารามิเตอร์นี้ input ช่วยให้คุณสามารถส่งข้อความแจ้งหรือข้อความไปยังเวิร์กโฟลว์ ซึ่งเวิร์กโฟลว์สามารถใช้เพื่อขับเคลื่อนตรรกะ เช่น การประมวลผลคําขอของผู้ใช้ การคัดกรองตั๋วการสนับสนุน หรือการตอบคําถาม ข้อมูลนี้อาจเป็นดังนี้
- คําถามของผู้ใช้ที่ตัวแทนวิเคราะห์และตอบกลับ
- คําอธิบายตั๋วสนับสนุนสําหรับการจัดประเภทและการกําหนดเส้นทาง
- เพย์โหลดข้อมูลที่ทริกเกอร์ตรรกะการประมวลผล
- สตริงว่างที่เริ่มเวิร์กโฟลว์โดยไม่ต้องป้อนข้อมูลเฉพาะ
เหตุการณ์เวิร์กโฟลว์กระบวนการ
เมื่อเปิดใช้งานการสตรีม แอปพลิเคชันของคุณจะได้รับเหตุการณ์ขณะที่เวิร์กโฟลว์ดําเนินการ เหตุการณ์เหล่านี้ช่วยให้คุณแสดงความคืบหน้าแบบเรียลไทม์ บันทึกผลลัพธ์ของตัวแทน และตอบสนองต่อการดําเนินการของเวิร์กโฟลว์
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}")
ประเภทเหตุการณ์ที่พบบ่อย ได้แก่
| ชนิดเหตุการณ์ | คำอธิบาย |
|---|---|
response.completed |
เวิร์กโฟลว์เสร็จสิ้นการดําเนินการและส่งคืนการตอบสนองขั้นสุดท้าย |
response.output_item.done |
รายการผลลัพธ์แต่ละรายการ (เช่น การดําเนินการเวิร์กโฟลว์) เสร็จสมบูรณ์ |
เมื่อตรวจสอบเหตุการณ์เหล่านี้ คุณจะเห็นว่าเวิร์กโฟลว์ดําเนินไปอย่างไรแบบเรียลไทม์ หรือทริกเกอร์การดําเนินการภายนอกตามสถานะเวิร์กโฟลว์ หรือคุณสามารถเลือกที่จะรอให้เวิร์กโฟลว์ทั้งหมดเสร็จสมบูรณ์และประมวลผลการตอบกลับขั้นสุดท้ายโดยไม่ต้องสตรีม สําหรับเวิร์กโฟลว์ที่มีรูปแบบ human-in-the-loop แอปพลิเคชันของคุณอาจต้องจัดการกับการหยุดชั่วคราวที่เวิร์กโฟลว์รอการป้อนข้อมูลของผู้ใช้ ในกรณีเหล่านี้ คุณสามารถส่งข้อความเพิ่มเติมไปยังการสนทนาเพื่อให้ข้อมูลที่ร้องขอและดําเนินการเวิร์กโฟลว์ต่อ
ประโยชน์ของการรวมโค้ด
การรวมเวิร์กโฟลว์เข้ากับโค้ดของคุณช่วยให้มีหลายสถานการณ์:
| สถานการณ์สมมติ | Benefit |
|---|---|
| เว็บแอปพลิเคชัน | ฝังเวิร์กโฟลว์ที่ขับเคลื่อนด้วย AI โดยตรงในแอปที่ผู้ใช้ต้องเผชิญ |
| API และไมโครเซอร์วิส | เปิดเผยความสามารถของเวิร์กโฟลว์ผ่านปลายทาง REST |
| การประมวลผลชุดงาน | เรียกใช้เวิร์กโฟลว์โดยทางโปรแกรมสําหรับการดําเนินการจํานวนมาก |
| การทดสอบและการตรวจสอบความถูกต้อง | ทําให้การทดสอบเวิร์กโฟลว์เป็นแบบอัตโนมัติโดยเป็นส่วนหนึ่งของไปป์ไลน์ CI/CD |
| อินเทอร์เฟซแบบกําหนดเอง | สร้าง UI เฉพาะที่ปรับให้เหมาะกับกรณีการใช้งานเวิร์กโฟลว์ที่เฉพาะเจาะจง |
ด้วยการรวมประสบการณ์การออกแบบภาพของพอร์ทัล Foundry เข้ากับความยืดหยุ่นของการรวมโค้ด คุณสามารถสร้างโซลูชันที่ขับเคลื่อนด้วย AI อันทรงพลังซึ่งเข้ากับสถาปัตยกรรมซอฟต์แวร์ที่มีอยู่ของคุณได้อย่างลงตัว