Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu belge , Microsoft Foundry (klasik) portalını ifade eder.
🔍Yeni portal hakkında bilgi edinmek için Microsoft Foundry (yeni) belgelerini görüntüleyin.
Yapay zeka uygulaması yürütmesine görünürlük sağlayan izleme sonuçlarını görüntülemeyi öğrenin. Yanlış araç çağrılarını, yanıltıcı istemleri, gecikme darboğazlarını ve düşük kaliteli değerlendirme puanlarını tanılamak için izler kullanın.
Bu makalede şunları öğreneceksiniz:
- Proje için izlemeyi etkinleştirme.
- OpenAI SDK'sını kurulum.
- İleti içeriğini yakalama (isteğe bağlı).
- İzleme zaman çizelgelerini ve aralıklarını görüntüleyin.
- İzlemeyi değerlendirme döngüleriyle bağlayın.
Bu makalede, Microsoft Foundry'de OpenTelemetry ile OpenAI SDK'sını kullanarak yapay zeka uygulamalarının izleme sonuçlarını görüntüleme işlemi açıklanmaktadır.
Önkoşullar
Bu öğreticiyi tamamlamak için aşağıdakilere ihtiyacınız vardır:
Dökümhane projesi oluşturuldu.
Foundry'de barındırılan modellere çağrı yapmak için OpenAI SDK'sını kullanan bir yapay zeka uygulaması.
Projenizde izlemeyi etkinleştirme
Dökümhane, izleri OpenTelemetry kullanarak Azure Application Insights'ta depolar. Yeni kaynaklar Application Insights'i otomatik olarak sağlamaz. Dökümhane kaynağı başına bir kaynağı bir kez ilişkilendirin (veya oluşturun).
Aşağıdaki adımlarda kaynağınızı yapılandırma adımları gösterilmektedir:
Dökümhane portalına gidin ve projenizi açın.
Yan gezinti çubuğunda İzleme'yi seçin.
Bir Azure Application Insights kaynağı Foundry kaynağınızla ilişkili değilse, bir kaynağı ilişkilendirin. Zaten ilişkili bir Application Insights kaynağınız varsa, aşağıdaki etkinleştirme sayfasını görmezsiniz ve bu adımı atlayabilirsiniz.
Mevcut bir Azure Application Insights'ı yeniden kullanmak için, açılır menüden Application Insights kaynak adını bulun ve Bağlan düğmesini seçin.
Tavsiye
Mevcut bir Azure Application Insights'a bağlanmak için, Foundry kaynağına (veya Hub'a) en az katılımcı erişimine sahip olmanız gerekir.
Yeni bir Azure Application Insights kaynağına bağlanmak için Yeni oluştur seçeneğini belirleyin.
Yeni kaynağın adını yapılandırmak için yapılandırma sihirbazını kullanın.
Varsayılan olarak, yeni kaynak Dökümhane kaynağının oluşturulduğu kaynak grubunda oluşturulur. Farklı bir kaynak grubu veya abonelik yapılandırmak için Ayarları ilerlet seçeneğini kullanın.
Tavsiye
Yeni bir Azure Application Insights kaynağı oluşturmak için, seçtiğiniz kaynak grubuna (veya varsayılan gruba) katkıda bulunan rolüne de ihtiyacınız vardır.
Kaynağı oluşturmak ve Dökümhane kaynağına bağlamak için Oluştur'u seçin.
Bağlantı yapılandırıldıktan sonra, kaynaktaki herhangi bir projede izlemeyi kullanmaya hazırsınız demektir.
Tavsiye
Application Insights kaynağınızda Log Analytics Okuyucusu rolünün atandığından emin olun. Rolleri atama hakkında daha fazla bilgi edinmek için bkz. Azure portalını kullanarak Azure rolleri atama. Kullanıcıların erişimini daha kolay yönetmek için Microsoft Entra gruplarını kullanın.
Projenizin giriş sayfasına gidin ve projenin uç nokta URI'sini kopyalayın. Daha sonra lazım olacak.
Önemli
Projenin uç noktasını kullanmak için uygulamanızda Microsoft Entra Id yapılandırması gerekir. Entra Kimliği yapılandırılmadıysa, öğreticinin 3. adımında gösterildiği gibi Azure Application Insights bağlantı dizesini kullanın.
Foundry portalında izleme sonuçlarını görüntüleme
İzlemeyi yapılandırdıktan ve uygulamanız izlendikten sonra, izleme sonuçlarını Dökümhane portalında görüntüleyebilirsiniz:
Dökümhane portalına gidin ve projenizi açın.
Yan gezinti çubuğunda İzleme'yi seçin.
İzlenen uygulamalarınızdan alınan izleme sonuçlarının listesini görürsünüz. Her izleme şunları gösterir:
- İzleme Kimliği: İzleme için benzersiz bir tanımlayıcı
- Başlangıç saati: İzlemenin başladığı zaman
- Süre: İşlemin ne kadar sürdüğü
- Durum: Başarı veya başarısızlık durumu
- İşlemler: İzlemedeki yayılma alanı sayısı
Aşağıdakiler dahil olmak üzere ayrıntılı izleme sonuçlarını görüntülemek için herhangi bir izleme seçin:
- Tam yürütme zaman çizelgesi
- Her işlem için giriş ve çıkış verileri
- Performans ölçümleri ve zamanlaması
- Herhangi bir hata oluştuysa hata ayrıntıları
- Özel öznitelikler ve meta veriler
OpenAI SDK'sını entegre etme
OpenAI SDK'sı ile geliştirme yaparken, izlemelerin Foundry'ye gönderilmesi için kodunuzu izleyebilirsiniz. Kodunuzu enstrüman etmek için şu adımları izleyin:
Paketleri yükleme:
pip install azure-ai-projects azure-monitor-opentelemetry opentelemetry-instrumentation-openai-v2(İsteğe bağlı) İleti içeriğini yakala:
- Powershell:
setx OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT true - Bash:
export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
- Powershell:
Bağlı Application Insights kaynağının bağlantı dizesini alın (Proje > İzleme > Veri kaynağını > yönetme Bağlantı dizesi):
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()Azure Monitor'u yapılandırma ve OpenAI SDK'sını enstrümanla.
from azure.monitor.opentelemetry import configure_azure_monitor from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor configure_azure_monitor(connection_string=connection_string) OpenAIInstrumentor().instrument()İstek gönderin:
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)Yeni izlemeleri görüntülemek için portalda İzleme'ye dönün.
Kodunuzun karmaşık uygulamalar geliştirirken iş mantığını modellerle karıştıran bölümlerini yakalamak yararlı olabilir. OpenTelemetry, ilgilendiğiniz bölümleri yakalamak için spans kavramını kullanır. Kendi "span"lerinizi oluşturmaya başlamak için geçerli tracer nesnesinin bir örneğini edinin.
from opentelemetry import trace tracer = trace.get_tracer(__name__)Ardından, kodunuzdaki ilgilendiğiniz belirli senaryoları yakalamak için yönteminizdeki dekoratörleri kullanın. Bu dekoratörler otomatik olarak aralıkları oluşturur. Aşağıdaki kod örneği, bir talep listesi üzerinde yineleyen ve
assess_claims_with_contextadlı bir yöntemi enstrüman eden bir yapı sunar. Bu yapı, bir LLM kullanarak talebin bağlam tarafından desteklenip desteklenmediğini doğrular. Bu yöntemde yapılan tüm çağrılar aynı yayılma alanında yakalanır: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 responsesİzleme sonuçları aşağıdaki gibi görünür:
Geçerli aralığa ek bilgi de eklemek isteyebilirsiniz. OpenTelemetry bunun için öznitelik kavramını kullanır.
traceBunlara erişmek ve ek bilgi eklemek için nesnesini kullanın. Yönteminassess_claims_with_contextbir özniteliği içerecek şekilde nasıl değiştirildiğini görün:@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
Konsola izleme
Uygulamanızı izlemek ve izlemeleri yerel yürütme konsoluna göndermek de yararlı olabilir. Bu yaklaşım, otomatik bir CI/CD işlem hattı kullanarak uygulamanızda birim testleri veya tümleştirme testleri çalıştırırken yararlı olabilir. İzler konsola gönderilebilir ve daha fazla analiz için CI/CD aracınız tarafından ele alınıp işlenebilir.
İzlemeyi aşağıdaki gibi yapılandırın:
OpenAI SDK'sını her zamanki gibi entegre edin:
from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor OpenAIInstrumentor().instrument()Konsola izleme göndermek için OpenTelemetry'yi yapılandırın:
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)OpenAI SDK'sı her zamanki gibi kullanın:
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": "" } }
AI Toolkit ile yerel olarak takip etme
AI Toolkit, VS Code'da yerel olarak izlemenin basit bir yolunu sunar. Yerel OTLP uyumlu bir toplayıcı kullanarak bulut erişimine gerek kalmadan geliştirme ve hata ayıklama için mükemmel hale getirir.
Araç seti OpenTelemetry aracılığıyla OpenAI SDK'sını ve diğer yapay zeka çerçevelerini destekler. Geliştirme ortamınızda izlemeleri anında görebilirsiniz.
Ayrıntılı kurulum yönergeleri ve SDK'ya özgü kod örnekleri için bkz. AI Toolkit'te İzleme.