ใช้ตัวแทนข้อมูล Fabric จาก Microsoft Foundry Services (พรีวิว)

ตัวแทนข้อมูลใน Microsoft Fabric แปลงข้อมูลองค์กรเป็น Q& การสนทนา ระบบ ซึ่งช่วยให้ผู้ใช้สามารถโต้ตอบกับข้อมูลของพวกเขาผ่านการแชทเพื่อเปิดเผยข้อมูลเชิงลึกที่ดําเนินการได้ วิธีหนึ่งในการใช้ตัวแทนข้อมูล Fabric คือผ่าน Foundry Agent Service ซึ่งเป็นส่วนประกอบหลักของ Microsoft Foundry ด้วยการรวมตัวแทนข้อมูล Fabric กับ Foundry ตัวแทน Azure AI ของคุณสามารถใช้ข้อมูลที่หลากหลาย มีโครงสร้าง และความหมายที่มีอยู่ใน Microsoft Fabric OneLake ได้โดยตรง การผสานรวมนี้ช่วยให้เข้าถึงข้อมูลองค์กรคุณภาพสูงได้ทันที และช่วยให้ตัวแทน Azure AI ของคุณสร้างข้อมูลเชิงลึกที่นําไปใช้ได้จริงและปรับปรุงเวิร์กโฟลว์การวิเคราะห์ จากนั้นองค์กรสามารถปรับปรุงการตัดสินใจที่ขับเคลื่อนด้วยข้อมูลด้วยตัวแทนข้อมูล Fabric เป็นแหล่งข้อมูลความรู้ที่มีประสิทธิภาพภายในสภาพแวดล้อม Azure AI ของตน

Important

คุณลักษณะนี้อยู่ในตัวอย่าง ใช้ SDK azure-ai-projects Python รุ่นตัวอย่างล่าสุด

Important

เมื่อคุณกําหนดค่าตัวแทนข้อมูล Fabric ให้ใช้ใน Microsoft Foundry Service การตอบกลับที่ส่งคืนโดยตัวแทนข้อมูล Fabric อาจถูกส่งออกนอกขอบเขตการปฏิบัติตามข้อบังคับหรือภูมิภาคทางภูมิศาสตร์ของ Fabric และประมวลผลและ/หรือจัดเก็บตามข้อกําหนดและนโยบายการจัดการข้อมูลที่เกี่ยวข้องของ Microsoft Foundry Service

Prerequisites

  • นักพัฒนาและผู้ใช้ปลายทางใน Foundry ต้องมีบทบาท AI Developer Role-Based การควบคุมการเข้าถึง (RBAC) เป็นอย่างน้อย

วิธีการทำงาน

การตั้งค่าตัวแทน: ใน Agent Service ให้สร้างตัวแทนใหม่และเพิ่มตัวแทนข้อมูล Fabric เป็นหนึ่งในแหล่งข้อมูล เมื่อต้องการสร้างการเชื่อมต่อนี้ คุณต้องมีรหัสพื้นที่ทํางานและรหัสสิ่งประดิษฐ์สําหรับตัวแทนข้อมูล Fabric การตั้งค่าช่วยให้ตัวแทน Azure AI ของคุณสามารถประเมินแหล่งข้อมูลที่พร้อมใช้งานเมื่อได้รับคิวรี เพื่อให้แน่ใจว่าเรียกใช้เครื่องมือที่ถูกต้องเพื่อประมวลผลคําขอ ปัจจุบัน คุณสามารถเพิ่มตัวแทนข้อมูล Fabric ได้เพียงตัวเดียวเป็นแหล่งข้อมูลองค์ความรู้ให้กับตัวแทน Azure AI ของคุณ

Note

แบบจําลองที่คุณเลือกในการตั้งค่าตัวแทน Azure AI จะใช้สําหรับการประสานงานตัวแทน Azure AI และการสร้างการตอบสนองเท่านั้น ไม่ส่งผลกระทบต่อโมเดลที่ตัวแทนข้อมูล Fabric ใช้

การประมวลผลแบบสอบถาม: เมื่อผู้ใช้ส่งแบบสอบถามจาก Playground ของ Foundry บริการตัวแทนจะกําหนดว่าตัวแทนข้อมูล Fabric เป็นเครื่องมือที่ดีที่สุดสําหรับงานหรือไม่ หากเป็นเช่นนั้น ตัวแทน Azure AI:

  • ใช้ข้อมูลประจําตัวของผู้ใช้ปลายทางเพื่อสร้างคิวรีที่ปลอดภัยผ่านแหล่งข้อมูลที่ผู้ใช้มีสิทธิ์เข้าถึงจากภายในตัวแทนข้อมูล Fabric
  • เรียกใช้ Fabric เพื่อดึงข้อมูลและประมวลผลข้อมูล เพื่อให้มั่นใจว่าประสบการณ์อัตโนมัติจะราบรื่น
  • รวมผลลัพธ์จากตัวแทนข้อมูล Fabric เข้ากับตรรกะของตัวเองเพื่อสร้างการตอบสนองที่ครอบคลุม การอนุญาตผ่านข้อมูลประจําตัว (On-Behalf-Of) จะรักษาความปลอดภัยของโฟลว์นี้ เพื่อให้แน่ใจว่ามีความปลอดภัยและการควบคุมการเข้าถึงที่เหมาะสมทั่วทั้งข้อมูลองค์กร

Note

ตัวแทนข้อมูล Fabric และทรัพยากร Foundry ควรอยู่ในผู้เช่าเดียวกัน และทั้ง Microsoft Fabric และ Foundry ควรลงชื่อเข้าใช้ด้วยบัญชีเดียวกัน

เพิ่มตัวแทนข้อมูล Fabric ไปยังตัวแทน Azure AI ของคุณ

คุณสามารถเพิ่มตัวแทนข้อมูล Fabric ไปยังตัวแทน Azure AI ของคุณโดยทางโปรแกรมหรือด้วยส่วนติดต่อผู้ใช้ (UI) สําหรับตัวอย่างโค้ดโดยละเอียดและคําแนะนําเพิ่มเติม โปรดดู เอกสารประกอบการรวม Azure AI Agent

เพิ่มตัวแทนข้อมูล Fabric ผ่าน UI:

  • นําทางไปยังบานหน้าต่างด้านซ้าย ภายใต้ สร้างและกําหนดเลือก ตัวแทนดังที่แสดงในภาพหน้าจอต่อไปนี้:

ภาพหน้าจอแสดงหน้าหลักของโรงหล่อ Azure

ขั้นตอนนี้แสดงรายการตัวแทน Azure AI ที่มีอยู่ของคุณ คุณสามารถเพิ่ม Fabric ให้กับตัวแทนเหล่านี้ หรือคุณสามารถเลือก ตัวแทนใหม่ เพื่อสร้างตัวแทนใหม่ การสร้างตัวแทนใหม่จะสร้าง ID ตัวแทนเฉพาะและชื่อเริ่มต้น คุณสามารถเปลี่ยนชื่อนั้นได้ตลอดเวลา สําหรับข้อมูลเพิ่มเติม โปรดดู OpenAI Azure ในพอร์ทัล Foundry คืออะไร

  • เริ่มต้นการเพิ่มแหล่งความรู้: เลือกปุ่ม เพิ่ม ดังที่แสดงในภาพหน้าจอต่อไปนี้:

ภาพหน้าจอแสดงการเพิ่มตัวแทนข้อมูล Fabric เป็นความรู้

ขั้นตอนนี้จะเปิดเมนูของชนิดแหล่งข้อมูลองค์ความรู้ที่รองรับ

  • เลือก Microsoft Fabric เป็นแหล่งที่มา: จากรายการ ให้เลือก Microsoft Fabric ดังที่แสดงในภาพหน้าจอต่อไปนี้:

ภาพหน้าจอแสดงการเลือก Fabric เป็นแหล่งข้อมูลความรู้

ด้วยตัวเลือกนี้ ตัวแทนของคุณสามารถเข้าถึงตัวแทนข้อมูล Fabric ได้

  • สร้างการเชื่อมต่อ: หากคุณเคยสร้างการเชื่อมต่อกับตัวแทนข้อมูล Fabric ก่อนหน้านี้ คุณสามารถใช้การเชื่อมต่อนั้นซ้ําสําหรับตัวแทน Azure AI ใหม่ของคุณได้ มิฉะนั้น ให้เลือก การเชื่อมต่อใหม่ เพื่อสร้างการเชื่อมต่อ ดังที่แสดงในภาพหน้าจอต่อไปนี้:

ภาพหน้าจอแสดงวิธีสร้างการเชื่อมต่อ Fabric ใหม่

หน้าต่าง Create a new Microsoft Fabric connection จะเปิดขึ้น ดังที่แสดงในภาพหน้าจอต่อไปนี้:

ภาพหน้าจอ ที่แสดงการสร้างการเชื่อมต่อ

เมื่อคุณตั้งค่าการเชื่อมต่อ ให้ระบุค่าตัวแทนข้อมูล Fabric workspace-id และ artifact-id เป็นคีย์ที่กําหนดเอง คุณสามารถค้นหาค่า workspace-id และ artifact-id ได้ในตําแหน่งข้อมูลตัวแทนข้อมูล Fabric ที่เผยแพร่ ตําแหน่งข้อมูลตัวแทนข้อมูล Fabric ของคุณมีรูปแบบนี้: https://fabric.microsoft.com/groups/<workspace_id>/aiskills/<artifact-id> เลือกกล่องกาเครื่องหมาย เป็นความลับ

สุดท้าย ให้กําหนดชื่อให้กับการเชื่อมต่อของคุณ และเลือกว่าจะให้พร้อมใช้งานสําหรับทุกโครงการใน Foundry หรือจํากัดเฉพาะโครงการปัจจุบัน

หลังจากที่คุณเลือก Connect ตัวแทนข้อมูล Microsoft Fabric จะถูกเพิ่มเป็นทรัพยากร Knowledge ดังที่แสดงในภาพหน้าจอต่อไปนี้:

สกรีนช็อตที่แสดงวิธีการเพิ่มคําแนะนํา

คุณต้องให้คําแนะนําแก่ตัวแทน Azure AI ของคุณเกี่ยวกับเวลา วิธีการ และภายใต้เงื่อนไขที่จะใช้ตัวแทนข้อมูล Fabric จากมุมมองของตัวแทน Azure AI ตัวแทนข้อมูล Fabric จะถือว่าเป็นเครื่องมือ Fabric ดังนั้นคุณจึงสามารถอ้างถึงได้ในคําแนะนําของคุณ

คุณยังสามารถปรับเปลี่ยนแบบจําลองการปรับใช้ เพิ่มการดําเนินการ หรือเปลี่ยนการตั้งค่าแบบจําลองตามความต้องการกรณีการใช้งานของคุณ เมื่อเอเจนต์ AI Azure ของคุณได้รับการกําหนดค่าอย่างสมบูรณ์แล้ว ให้เลือก ลองใน playground เพื่อทดสอบประสิทธิภาพ

เพิ่มตัวแทนข้อมูล Fabric ทางโปรแกรม: ขั้นตอนต่อไปนี้อธิบายวิธีการเพิ่มตัวแทนข้อมูล Fabric โดยทางโปรแกรมไปยังตัวแทน AI Azure ของคุณใน Python สําหรับภาษาอื่นๆ (C#, JavaScript) โปรดดูแหล่งข้อมูลนี้

ขั้นตอนที่ 1: ตั้งค่าตัวแปรสภาพแวดล้อมและนําเข้า SDK

ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้ก่อนที่คุณจะเรียกใช้โค้ด:

  • PROJECT_ENDPOINT: จุดสิ้นสุดของโครงการ Foundry พบได้ในหน้าภาพรวมของโครงการ Foundry ของคุณ
  • MODEL_DEPLOYMENT_NAME: ชื่อการปรับใช้แบบจําลอง ตามที่ระบุไว้ใน แบบจําลอง + จุดสิ้นสุด ในโครงการ Foundry ของคุณ
  • FABRIC_CONNECTION_NAME: ชื่อของการเชื่อมต่อ Microsoft Fabric ตามที่ปรากฏใน Foundry Connected resources ของคุณ

ติดตั้ง SDK ตัวอย่างและนําเข้าโมดูล:

pip install azure-identity
pip install --pre azure-ai-projects
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import FabricTool, ListSortOrder

ขั้นตอนที่ 2: สร้างตัวแทนที่เปิดใช้งานเครื่องมือ Microsoft Fabric

หากต้องการทําให้เครื่องมือตัวแทนข้อมูล Fabric พร้อมใช้งานสําหรับตัวแทน AI Azure ของคุณ ให้ดึงรหัสการเชื่อมต่อจากการเชื่อมต่อที่มีชื่อในโครงการ Foundry ของคุณ จากนั้นส่งไปยัง FabricTool:

project_client = AIProjectClient(
    endpoint=os.environ["PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

# Look up the Fabric connection by name
conn_id = project_client.connections.get(os.environ["FABRIC_CONNECTION_NAME"]).id

# Initialize the Fabric tool with the connection ID
fabric = FabricTool(connection_id=conn_id)

with project_client:
    agents_client = project_client.agents

    agent = agents_client.create_agent(
        model=os.environ["MODEL_DEPLOYMENT_NAME"],
        name="my-agent",
        instructions="You are a helpful agent",
        tools=fabric.definitions,
    )
    print(f"Created agent, ID: {agent.id}")

ขั้นตอนที่ 3: สร้างชุดข้อความและส่งข้อความ

    # Create a thread for communication
    thread = agents_client.threads.create()
    print(f"Created thread, ID: {thread.id}")

    # Add a message to the thread
    message = agents_client.messages.create(
        thread_id=thread.id,
        role="user",
        content="What is the top sold product in Contoso last month?",
    )
    print(f"Created message, ID: {message.id}")

ขั้นตอนที่ 4: เรียกใช้เอเจนต์และอ่านผลลัพธ์

ประมวลผลการเรียกใช้ จากนั้นทําซ้ําข้อความเพื่ออ่านการตอบกลับของตัวแทน:

    # Create and process the run with the Fabric tool
    run = agents_client.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)
    print(f"Run finished with status: {run.status}")

    if run.status == "failed":
        print(f"Run failed: {run.last_error}")

    # Delete the agent when finished
    agents_client.delete_agent(agent.id)
    print("Deleted agent")

    # Fetch and print all messages in the thread
    messages = agents_client.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
    for msg in messages:
        if msg.text_messages:
            last_text = msg.text_messages[-1]
            print(f"{msg.role}: {last_text.text.value}")