Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Hanya berlaku untuk:Portal Foundry (klasik). Artikel ini tidak tersedia untuk portal Foundry baru.
Pelajari selengkapnya tentang portal baru.
Catatan
Tautan dalam artikel ini mungkin membuka konten dalam dokumentasi Microsoft Foundry baru alih-alih dokumentasi Foundry (klasik) yang Anda lihat sekarang.
Pelajari cara melihat hasil pelacakan yang memberikan visibilitas ke dalam eksekusi aplikasi AI. Gunakan jejak untuk mendiagnosis panggilan alat yang tidak akurat, perintah yang menyesatkan, penyempitan latensi, dan skor evaluasi berkualitas rendah.
Dalam artikel ini, Anda mempelajari cara:
- Aktifkan pelacakan untuk proyek.
- Mengimplementasikan OpenAI SDK.
- Mengambil konten pesan (opsional).
- Lihat garis waktu dan rentang pelacakan.
- Sambungkan pelacakan dengan perulangan evaluasi.
Artikel ini menjelaskan cara melihat hasil pelacakan untuk aplikasi AI menggunakan OpenAI SDK dengan OpenTelemetry di Microsoft Foundry.
Prasyarat
Anda memerlukan hal berikut untuk menyelesaikan tutorial ini:
Proyek Foundry dibuat.
Aplikasi AI yang menggunakan OpenAI SDK untuk melakukan panggilan ke model yang dihosting di Foundry.
Mengaktifkan pelacakan di proyek Anda
Foundry menyimpan jejak di Azure Application Insights menggunakan OpenTelemetry. Sumber daya baru tidak menyediakan Application Insights secara otomatis. Kaitkan (atau buat) satu sumber daya untuk setiap sumber daya Foundry.
Langkah-langkah berikut menunjukkan cara mengonfigurasi sumber daya Anda:
Buka portal Foundry dan navigasikan ke proyek Anda.
Di bilah navigasi samping, pilih Pelacakan.
Jika sumber daya Azure Application Insights tidak terkait dengan sumber daya Foundry Anda, kaitkan sumber daya tersebut. Jika Anda sudah memiliki sumber daya Application Insights yang terkait, Anda tidak akan melihat halaman aktifkan di bawah ini dan Anda dapat melewati langkah ini.
cuplikan layar memperlihatkan cara mengonfigurasi Azure Application Insights ke sumber daya Foundry.
Untuk menggunakan kembali Azure Application Insights yang ada, gunakan nama sumber daya drop-down Application Insights untuk menemukan sumber daya dan pilih Connect.
Tips
Untuk menyambungkan ke Azure Application Insights yang ada, Anda memerlukan setidaknya akses kontributor ke sumber daya Foundry (atau Hub).
Untuk menyambungkan ke sumber daya Azure Application Insights baru, pilih opsi Buat baru.
Gunakan wizard konfigurasi untuk menetapkan nama sumber daya yang baru.
Secara default, sumber daya baru dibuat dalam grup sumber daya yang sama tempat sumber daya Foundry dibuat. Gunakan opsi Pengaturan lanjutan untuk mengonfigurasi grup sumber daya atau langganan yang berbeda.
Tips
Untuk membuat sumber daya Azure Application Insights baru, Anda juga memerlukan peran kontributor ke grup sumber daya yang Anda pilih (atau yang default).
Pilih Buat untuk membuat sumber daya dan menyambungkannya ke sumber daya Foundry.
Setelah koneksi dikonfigurasi, Anda siap untuk menggunakan pelacakan di proyek apa pun dalam sumber daya.
Tips
Pastikan Anda memiliki peran Log Analytics Reader yang ditetapkan di sumber daya Application Insights Anda. Jika tabel Log Analytics yang mendasari dilindungi, tetapkan juga peran Pembaca Data Pemantauan dengan Hak Istimewa. Untuk mempelajari selengkapnya tentang cara menetapkan peran, lihat Menetapkan peran Azure menggunakan portal Azure. Gunakan grup Microsoft Entra untuk mengelola akses pengguna dengan lebih mudah.
Buka halaman arahan proyek Anda dan salin URI titik akhir proyek. Anda membutuhkannya nanti.
Penting
Menggunakan titik akhir proyek memerlukan konfigurasi Microsoft Entra ID di aplikasi Anda. Jika Anda tidak memiliki Entra ID yang dikonfigurasi, gunakan string koneksi Azure Application Insights seperti yang ditunjukkan pada langkah ke-3 dari tutorial.
Menampilkan hasil pelacakan di portal Foundry
Setelah pelacakan dikonfigurasi dan aplikasi Anda diinstrumentasikan, Anda dapat melihat hasil pelacakan di portal Foundry:
Buka portal Foundry dan navigasikan ke proyek Anda.
Di bilah navigasi samping, pilih Pelacakan.
Anda akan melihat daftar hasil pelacakan dari aplikasi berinstrumentasi Anda. Setiap jejak menunjukkan:
- ID Pelacakan: Pengidentifikasi unik untuk pelacakan
- Waktu mulai: Ketika jejak dimulai
- Durasi: Berapa lama operasi berlangsung
- Status: Status keberhasilan atau kegagalan
- Operasi: Jumlah rentang dalam sebuah pelacakan
Pilih jejak apa pun untuk melihat hasil pelacakan terperinci termasuk:
- Garis waktu eksekusi lengkap
- Data input dan output untuk setiap operasi
- Metrik dan waktu performa
- Detail kesalahan jika terjadi
- Atribut dan metadata kustom
Terapkan OpenAI SDK
Saat mengembangkan dengan OpenAI SDK, Anda dapat mengintegrasikan kode Anda agar log dikirim ke Foundry. Ikuti langkah-langkah berikut untuk menginstrumen kode Anda:
Pasang paket:
pip install azure-ai-projects azure-monitor-opentelemetry opentelemetry-instrumentation-openai-v2(Opsional) Mengambil konten pesan:
- Powershell:
setx OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT true - Bash:
export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
- Powershell:
Dapatkan string koneksi untuk sumber daya Application Insights yang ditautkan (Project > Tracing > Mengelola sumber data > Connection string):
from azure.ai.projects import AIProjectClient from azure.identity import DefaultAzureCredential project_client = AIProjectClient( credential=DefaultAzureCredential(), endpoint="https://<your-resource>.services.ai.azure.com/api/projects/<your-project>", ) connection_string = project_client.telemetry.get_application_insights_connection_string()Konfigurasikan Azure Monitor dan instrumen OpenAI SDK:
from azure.monitor.opentelemetry import configure_azure_monitor from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor configure_azure_monitor(connection_string=connection_string) OpenAIInstrumentor().instrument()Kirim permintaan:
client = project_client.get_openai_client() response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "Write a short poem on open telemetry."}], ) print(response.choices[0].message.content)Kembali ke Pelacakan di portal untuk melihat jejak baru.
Mungkin berguna untuk mengambil bagian kode Anda yang mencampur logika bisnis dengan model saat mengembangkan aplikasi yang kompleks. OpenTelemetry menggunakan konsep spans untuk merekam bagian yang Anda minati. Untuk mulai menghasilkan rentang Anda sendiri, dapatkan instans objek pelacak saat ini.
from opentelemetry import trace tracer = trace.get_tracer(__name__)Kemudian, gunakan dekorator dalam metode Anda untuk mengambil skenario tertentu dalam kode yang Anda minati. Dekorator ini menghasilkan span secara otomatis. Contoh kode berikut melengkapi metode yang disebut
assess_claims_with_contextyang mengulangi daftar klaim dan memverifikasi apakah klaim didukung oleh konteks menggunakan LLM. Semua panggilan yang dilakukan dalam metode ini diambil dalam rentang yang sama:def build_prompt_with_context(claim: str, context: str) -> str: return [{'role': 'system', 'content': "I will ask you to assess whether a particular scientific claim, based on evidence provided. Output only the text 'True' if the claim is true, 'False' if the claim is false, or 'NEE' if there's not enough evidence."}, {'role': 'user', 'content': f""" The evidence is the following: {context} Assess the following claim on the basis of the evidence. Output only the text 'True' if the claim is true, 'False' if the claim is false, or 'NEE' if there's not enough evidence. Do not output any other text. Claim: {claim} Assessment: """}] @tracer.start_as_current_span("assess_claims_with_context") def assess_claims_with_context(claims, contexts): responses = [] for claim, context in zip(claims, contexts): response = client.chat.completions.create( model="gpt-4.1", messages=build_prompt_with_context(claim=claim, context=context), ) responses.append(response.choices[0].message.content.strip('., ')) return responsesHasil pelacakan terlihat sebagai berikut:
Anda mungkin juga ingin menambahkan informasi tambahan ke rentang saat ini. OpenTelemetry menggunakan konsep atribut untuk itu.
traceGunakan objek untuk mengaksesnya dan menyertakan informasi tambahan. Lihat bagaimanaassess_claims_with_contextmetode telah dimodifikasi untuk menyertakan atribut:@tracer.start_as_current_span("assess_claims_with_context") def assess_claims_with_context(claims, contexts): responses = [] current_span = trace.get_current_span() current_span.set_attribute("operation.claims_count", len(claims)) for claim, context in zip(claims, contexts): response = client.chat.completions.create( model="gpt-4.1", messages=build_prompt_with_context(claim=claim, context=context), ) responses.append(response.choices[0].message.content.strip('., ')) return responses
Jejak ke konsol
Mungkin berguna untuk juga melacak aplikasi Anda dan mengirim jejak ke konsol eksekusi lokal. Pendekatan ini mungkin bermanfaat saat menjalankan pengujian unit atau pengujian integrasi di aplikasi Anda menggunakan alur CI/CD otomatis. Jejak dapat dikirim ke konsol dan diambil oleh alat CI/CD Anda untuk analisis lebih lanjut.
Konfigurasikan pelacakan sebagai berikut:
Instrumentasikan OpenAI SDK seperti biasa:
from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor OpenAIInstrumentor().instrument()Konfigurasikan OpenTelemetry untuk mengirim jejak ke konsol:
from opentelemetry import trace from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import SimpleSpanProcessor, ConsoleSpanExporter span_exporter = ConsoleSpanExporter() tracer_provider = TracerProvider() tracer_provider.add_span_processor(SimpleSpanProcessor(span_exporter)) trace.set_tracer_provider(tracer_provider)Gunakan OpenAI SDK seperti biasa:
response = client.chat.completions.create( model="deepseek-v3-0324", messages=[ {"role": "user", "content": "Write a short poem on open telemetry."}, ], ){ "name": "chat deepseek-v3-0324", "context": { "trace_id": "0xaaaa0a0abb1bcc2cdd3d", "span_id": "0xaaaa0a0abb1bcc2cdd3d", "trace_state": "[]" }, "kind": "SpanKind.CLIENT", "parent_id": null, "start_time": "2025-06-13T00:02:04.271337Z", "end_time": "2025-06-13T00:02:06.537220Z", "status": { "status_code": "UNSET" }, "attributes": { "gen_ai.operation.name": "chat", "gen_ai.system": "openai", "gen_ai.request.model": "deepseek-v3-0324", "server.address": "my-project.services.ai.azure.com", "gen_ai.response.model": "DeepSeek-V3-0324", "gen_ai.response.finish_reasons": [ "stop" ], "gen_ai.response.id": "aaaa0a0abb1bcc2cdd3d", "gen_ai.usage.input_tokens": 14, "gen_ai.usage.output_tokens": 91 }, "events": [], "links": [], "resource": { "attributes": { "telemetry.sdk.language": "python", "telemetry.sdk.name": "opentelemetry", "telemetry.sdk.version": "1.31.1", "service.name": "unknown_service" }, "schema_url": "" } }
Lacak secara lokal dengan Foundry Toolkit
Foundry Toolkit menawarkan cara sederhana untuk melakukan pelacakan secara lokal di VS Code. Ini menggunakan kolektor lokal yang kompatibel dengan OTLP, sehingga sempurna untuk pengembangan dan debugging tanpa memerlukan akses cloud.
Toolkit mendukung OpenAI SDK dan kerangka kerja AI lainnya melalui OpenTelemetry. Anda dapat melihat jejak secara instan di lingkungan pengembangan Anda.
Untuk instruksi penyiapan terperinci dan contoh kode khusus SDK, lihat Melacak di Foundry Toolkit.