دمج المراقبة في تطبيقك
لتوليد بيانات مراقبة يتم جمعها بواسطة Application Insights ويتم تصورها في Azure Monitor، تحتاج إلى تشغيل خدمة قمت بنشرها عبر Microsoft Foundry.
يمكن أن تكون الخدمة ببساطة نموذج لغة منشور، أو تطبيق الذكاء الاصطناعي إنشاء منشور مثل مساعد أو وكيل الذكاء الاصطناعي.
لدمج المراقبة في التعليمات البرمجية الخاصة بك، تحتاج إلى:
- استخدم حزمة تطوير البرمجيات Microsoft Foundry لتشغيل استدلال النموذج وإصدار بيانات التليمترية.
- استخدم معيار OpenTelemetry لالتقاط الامتدادات التي تمثل كل استدعاء استدلال وخطوة تنفيذ.
- تصدير البيانات تلقائيا إلى Azure Monitor وتخزينها تلقائيا باستخدام Application Insights.
إشعار
قصاصات التعليمات البرمجية المتوفرة هنا هي فقط لتسليط الضوء على أجزاء التعليمات البرمجية التي ستقوم بها. يتم توفير مثال عمل كامل في التمرين.
تشغيل استدلال النموذج
لبدء مراقبة تطبيق الذكاء الاصطناعي التوليدي الخاص بك، تحتاج إلى استخدام حزمة تطوير تطوير تطوير المهارات Microsoft Foundry لتشغيل استدلال النموذج. يمكن أن يكون استنتاج النموذج أي شيء بدءا من إكمال نموذج لغة واحدة إلى مساعد كامل متعدد الأدوار.
تتيح لك حزمة تطوير تطوير مايكروسوفت فاوندري الاتصال بمركز ومشروع الذكاء الاصطناعي الخاص ب Azure. باستخدام Python، قد يبدو هذا مثل نموذج التعليمات البرمجية التالي:
connection_string = os.getenv('PROJECT_CONNECTION_STRING')
credential = DefaultAzureCredential()
project = AIProjectClient.from_connection_string(
conn_str=connection_string,
credential=credential
)
بعد ذلك، يمكنك استخدام حزمة استدلال نموذج Azure الذكاء الاصطناعي (جزء من 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 النطاقات والتتبع لتنظيم بيانات المراقبة الخاصة بك:
- الامتدادات: وحدات عمل فردية داخل التطبيق الخاص بك، مثل طلب استدلال أو استدعاء واجهة برمجة التطبيقات. يسجل كل نطاق بيانات تعريف مثل المدة وحالة النجاح/الفشل والسمات المخصصة. الامتدادات هي اللبنات الأساسية للتتبع.
- التتبع: التتبع هو المكون في التعليمات البرمجية الخاصة بك المسؤولة عن إنشاء وإدارة الامتدادات. إنه جزء من OpenTelemetry SDK ويلعب دورا مركزيا في التتبع الموزع.
في التطبيق الخاص بك، على سبيل المثال، تبدأ بالحصول على مثيل تتبع وإنشاء معرفات فريدة للامتدادات:
# 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 لتمثيل عملية إنشاء استجابة من نموذج الذكاء الاصطناعي. يتم استخدام النطاق قبل التفاعل مع الخدمة المنشورة، لذلك يمكنك تحديث التعليمات البرمجية باستخدام:
# 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 جميع عمليات الاستدلال الذكاء الاصطناعي التي يتم تنفيذها chat_client تلقائيا.
الآن بعد أن فهمت كيفية المراقبة، دعنا نستكشف ما يمكننا فعله بالمعلومات التي نتعقبها.