AI Observability

OpenTelemetry ile Satıcı Bağımsız AI Gözlemlenebilirliği

Büyük Dil Modelleri (LLM'ler) modern uygulamaların merkezine otururken, güvenilirlik, maliyet etkinliği ve performanslarının sağlanması kritik hale gelir. Geleneksel izleme araçları, karmaşık ve belirsiz üretici AI iş akışlarını izlerken genellikle yetersiz kalır. İşte tam da burada OpenTelemetry (OTel) parlar; telemetri verileri için birleştirilmiş, satıcıdan bağımsız bir standart sağlar.

LLM Enstrümantasyonunun Zorluğu

LLM'leri enstrümante etmek, standart API izlemekten önemli ölçüde farklıdır. Sadece gecikme süresini ve durum kodlarını değil, istem şablonlarını, token sayılarını, model sürümlerini ve yanıt meta verilerini de yakalamanız gerekir. Standartlaştırılmış bir yaklaşım olmadan, belirli bir satıcının SDK'sına kilitlenme riski taşırsınız; bu da sağlayıcıları değiştirmeyi veya birden fazla AI hizmeti arasında veri toplamayı zorlaştırır.

OpenTelemetry LLM Kütüphaneleri ile Başlangıç

OpenTelemetry LLM Enstrümantasyon Kütüphaneleri (özellikle Python ve Node.js için), farklı model sağlayıcıları için izleme oluşturmanın karmaşıklığını soyutlar. İster OpenAI, ister Anthropic kullanın, isterse yerel bir Ollama örneği, istemler, tamamlamalar ve gömme işlemleri için otomatik olarak span'lar oluşturarak tutarlılığı sağlarlar.

Python'da Pratik Uygulama

Python SDK kullanarak pratik bir örneğe bakalım. İlk olarak, gerekli paketleri yüklemeniz gerekir:

pip install opentelemetry-api opentelemetry-sdk \
     opentelemetry-exporter-otlp \
     opentelemetry-instrumentation-llm

Ardından, izleyiciyi yapılandırın ve LLM istemcinizi enstrümante edin. Aşağıdaki kod, dışa aktarıcıyı kurmak ve enstrümantasyonu uygulamak için nasıl bir yol izleneceğini göstermektedir:

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from opentelemetry.instrumentation.llm import OpenTelemetryLLMInstrumentor

# İzleyici sağlayıcısını kurun
trace.set_tracer_provider(TracerProvider())

# Verileri arka ucunuza göndermek için OTLP dışa aktarıcısını yapılandırın
exporter = OTLPSpanExporter(endpoint="localhost:4317")
trace.get_tracer_provider().add_span_processor(
    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider().add_span_processor(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            trace.get_tracer_provider().get_tracer(__name__).get_tracer_provider
    
Share: