รวมการตรวจสอบลงในแอปของคุณ

เสร็จสมบูรณ์เมื่อ

เมื่อต้องการสร้างข้อมูลการตรวจสอบที่บันทึกโดย Application Insights และแสดงเป็นภาพใน Azure Monitor คุณต้องเรียกใช้บริการที่คุณปรับใช้ผ่าน Microsoft Foundry

บริการสามารถเป็นแบบจําลองภาษาที่ปรับใช้หรือแอป AI ที่ปรับใช้เช่นผู้ช่วย AI หรือตัวแทน

เมื่อต้องรวมการตรวจสอบลงในโค้ดของคุณ คุณจําเป็นต้อง:

  • ใช้ Microsoft Foundry SDK เพื่อ เรียกใช้การอนุมานแบบจําลอง และส่งการวัดและส่งข้อมูลทางไกล
  • ใช้มาตรฐาน OpenTelemetry เพื่อ จับช่วง ที่แสดงถึงแต่ละขั้นตอนการเรียกใช้การอนุมานและการดําเนินการ
  • ส่งออกข้อมูลไปยัง Azure Monitor โดยอัตโนมัติและจัดเก็บโดยอัตโนมัติด้วย Application Insights

หมายเหตุ

ส่วนย่อยของโค้ดที่ให้ไว้ที่นี่เป็นเพียงการเน้นว่าส่วนใดของโค้ดที่จะทํา ตัวอย่างการทํางานที่สมบูรณ์มีให้ในแบบฝึกหัด

เรียกใช้การอนุมานแบบจําลอง

เมื่อต้องการเริ่มตรวจสอบแอปพลิเคชัน Generative AI ของคุณ คุณต้องใช้ Microsoft Foundry SDK เพื่อเรียกใช้การอนุมานแบบจําลอง การอนุมานแบบจําลองอาจเป็นอะไรก็ได้จากความสมบูรณ์ของแบบจําลองภาษาเดียวไปจนถึงผู้ช่วยแบบหลายเลี้ยวเต็มรูปแบบ

Microsoft Foundry SDK ช่วยให้คุณสามารถเชื่อมต่อกับฮับและโครงการ Azure AI ที่เฉพาะเจาะจงได้ ด้วย Python การดําเนินการนี้อาจมีลักษณะเหมือนกับตัวอย่างโค้ดต่อไปนี้:

connection_string = os.getenv('PROJECT_CONNECTION_STRING')
credential = DefaultAzureCredential()
project = AIProjectClient.from_connection_string(
    conn_str=connection_string,
    credential=credential
)

หลังจากนั้น คุณสามารถใช้แพคเกจการอนุมานแบบจําลอง Azure AI (ส่วนหนึ่งของ Microsoft Foundry SDK) เพื่อโต้ตอบกับบริการที่ปรับใช้ เช่น:

chat_client = project.inference.get_chat_completions_client()
model_name = os.environ.get("AZURE_OPENAI_DEPLOYMENT_NAME", "gpt-4o")

response = chat_client.complete(
            model=model_name,
            messages=[
                SystemMessage("You are an AI assistant that acts as a travel guide."),
                UserMessage(content=(
                "What are some recommended supplies for a camping trip in the mountains?"
            ))]

จับภาพการขยายด้วยตัวติดตาม

เพื่อติดตามเส้นทางของคําขอการอนุมานผ่านแอปพลิเคชันของคุณได้อย่างง่ายดาย Azure จะรวมเข้ากับมาตรฐาน OpenTelemetry

มาตรฐาน OpenTelemetry ใช้ช่วงและตัวติดตามเพื่อจัดระเบียบข้อมูลการตรวจสอบของคุณ:

  • การขยาย: แต่ละหน่วยของงานภายในแอปพลิเคชันของคุณ เช่น คําขอการอนุมาน หรือการเรียกใช้ API แต่ละช่วงบันทึกเมตาดาต้า เช่น ระยะเวลา สถานะความสําเร็จ/ความล้มเหลว และแอตทริบิวต์แบบกําหนดเอง การขยายคือบล็อกการสร้างของการติดตาม
  • Tracer: ตัวติดตามคือคอมโพเนนต์ในโค้ดของคุณที่รับผิดชอบสําหรับการสร้างและจัดการการขยาย ซึ่งเป็นส่วนหนึ่งของ SDK OpenTelemetry และมีบทบาทสําคัญในการติดตามแบบกระจาย

ในแอปพลิเคชันของคุณ ตัวอย่างเช่น คุณเริ่มต้นโดยการรับอินสแตนซ์ตัวติดตาม และสร้างตัวระบุที่ไม่ซ้ํากันสําหรับช่วงเวลา:

# Get the tracer instance
tracer = trace.get_tracer(__name__)

# Generate a session ID for this script execution
SESSION_ID = str(uuid.uuid4())

# Configure the tracer to include session ID in all spans
os.environ['AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED'] = 'true'

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

# Generate a chat completion about camping supplies
with tracer.start_as_current_span("generate_completion") as span:
    try:
        span.set_attribute("session.id", SESSION_ID)

        response = chat_client.complete(
            model=model_name,
            messages=[
                SystemMessage("You are an AI assistant that acts as a travel guide."),
                UserMessage(content=(
                "What are some recommended supplies for a camping trip in the mountains?"
            ))]
        )

    except Exception as e:
        span.set_status(Status(StatusCode.ERROR, str(e)))
        span.record_exception(e)
        raise

ส่งออกข้อมูลโดยอัตโนมัติ

ในตอนท้าย คุณจําเป็นต้องแน่ใจว่า คุณกําลังเชื่อมต่อกับทรัพยากร Applications Insights เพื่อส่งออกข้อมูลการตรวจสอบที่สร้างขึ้นโดยอัตโนมัติ เมื่อคุณเชื่อมต่อทรัพยากร Application Insights กับโครงการ Microsoft Foundry ของคุณ คุณสามารถรับทรัพยากรผ่านโครงการ:

application_insights_connection_string = project.telemetry.get_connection_string()
configure_azure_monitor(connection_string=application_insights_connection_string)

AIInferenceInstrumentor().instrument()

AIinferenceInstrumentorการใช้ เพื่อให้แน่ใจว่าการดําเนินการการอนุมาน AI ทั้งหมดที่ดําเนินการโดย chat_client จะถูกติดตามและตรวจสอบโดยอัตโนมัติ

หลังจากที่คุณทําความเข้าใจวิธีการตรวจสอบ เรามาสํารวจสิ่งที่เราสามารถทําได้ด้วยข้อมูลที่เราติดตาม