Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Csak a következőkre vonatkozik:Öntödei (klasszikus) portál. Ez a cikk nem érhető el az új Foundry portálon.
További információ az új portálról.
Megjegyzés
A cikkben szereplő hivatkozások megnyithatják a tartalmat az új Microsoft Foundry-dokumentációban a most megtekintett Foundry (klasszikus) dokumentáció helyett.
Megtudhatja, hogyan tekintheti meg az AI-alkalmazások végrehajtásának láthatóságát biztosító nyomkövetési eredményeket. A nyomok használatával diagnosztizálhatja a pontatlan eszköz hívásokat, a félrevezető utasításokat, a késési problémákat és a gyenge minőségű értékelési pontszámokat.
Ebből a cikkből megtudhatja, hogyan:
- Projekt nyomkövetésének engedélyezése.
- Az OpenAI SDK integrálása.
- Üzenettartalom rögzítése (nem kötelező).
- Nyomkövetési idővonalak és szakaszok megtekintése.
- Kapcsold össze a nyomkövetést a kiértékelési ciklusokkal.
Ez a cikk azt ismerteti, hogyan tekintheti meg az AI-alkalmazások nyomkövetési eredményeit a OpenAI SDK és az OpenTelemetry használatával az Microsoft Foundryben.
Előfeltételek
Az oktatóanyag elvégzéséhez a következőkre van szüksége:
Létrejött egy Foundry-projekt.
Egy AI-alkalmazás, amely OpenAI SDK-t használ a Foundryben üzemeltetett modellek hívásához.
Nyomkövetés engedélyezése a projektben
Az Foundry az OpenTelemetria használatával tárolja a nyomkövetéseket Azure-alkalmazás Insightsban. Az új erőforrások nem építik ki automatikusan az Application Insightst. Erőforrás társítása (vagy létrehozása) öntödei erőforrásonként egyszer.
Az alábbi lépések bemutatják az erőforrás konfigurálását:
Nyissa meg a Foundry portált, és navigáljon az ön projektjéhez.
Az oldalsó navigációs sávon válassza a Nyomkövetés lehetőséget.
Ha egy Azure-alkalmazás Insights-erőforrás nincs társítva az Öntödei erőforráshoz, társítson egyet. Ha már rendelkezik Application Insights-erőforrással, az alábbi engedélyezési oldal nem jelenik meg, és kihagyhatja ezt a lépést.
Meglévő Azure-alkalmazás Insights újbóli használatához használja a legördülő Application Insights-erőforrás nevét az erőforrás megkereséséhez, majd válassza a Connect lehetőséget.
Tipp
Ha egy meglévő Azure-alkalmazás Insightshoz szeretne csatlakozni, legalább közreműködői hozzáférésre van szüksége az Foundry-erőforráshoz (vagy a Hubhoz).
Ha új Azure-alkalmazás Insights-erőforráshoz szeretne csatlakozni, válassza a Új lehetőséget.
A konfigurációs varázslóval konfigurálhatja az új erőforrás nevét.
Alapértelmezés szerint az új erőforrás ugyanabban az erőforráscsoportban jön létre, amelyben az Foundry-erőforrás létrejött. Az Előzetes beállítások beállítással konfigurálhat egy másik erőforráscsoportot vagy előfizetést.
Tipp
Új Azure-alkalmazás Insights-erőforrás létrehozásához közreműködői szerepkörre is szükség van a kiválasztott erőforráscsoporthoz (vagy az alapértelmezetthez).
Válassza a Létrehozás lehetőséget az erőforrás létrehozásához és az Öntödei erőforráshoz való csatlakoztatásához.
Miután konfigurálta a kapcsolatot, készen áll a nyomkövetés használatára az erőforrás bármely projektjében.
Tipp
Győződjön meg arról, hogy a Log Analytics Olvasó szerepkört hozzárendelte az Application Insights-erőforráshoz. Ha a mögöttes Log Analytics táblák védettek, rendelje hozzá a Privileged Monitoring Data Reader szerepkört is. A szerepkörök hozzárendeléséről további információt a Azure portálon Azure szerepkörök hozzárendelése című témakörben talál. A Microsoft Entra csoportok használatával egyszerűbben kezelheti a felhasználók hozzáférését.
Nyissa meg a projekt kezdőlapját, és másolja ki a projekt végponti URI-ját. Később szüksége lesz rá.
Fontos
A projekt végpontjának használatához konfigurálni kell Microsoft Entra ID az alkalmazásban. Ha nincs konfigurálva az Entra ID, használja az Azure-alkalmazás Insights kapcsolati karakterláncot az oktatóanyag 3. lépésében leírtak szerint.
Nyomkövetési eredmények megtekintése az Foundry portálon
Miután konfigurálta a nyomkövetést, és az alkalmazás instrumentálva van, megtekintheti a nyomkövetési eredményeket a Foundry portálon.
Nyissa meg a Foundry portált, és navigáljon az ön projektjéhez.
Az oldalsó navigációs sávon válassza a Nyomkövetés lehetőséget.
Láthatja az instrumentált alkalmazások nyomon követési eredményeinek listáját. Minden nyomkövetés a következőt mutatja:
- Nyomkövetési azonosító: A nyomkövetés egyedi azonosítója
- Kezdési időpont: A nyomkövetés kezdete
- Időtartam: Mennyi ideig tartott a művelet?
- Állapot: Sikeres vagy sikertelen állapot
- Műveletek: A nyom szakaszainak száma
Válasszon ki egy nyomkövetést a részletes nyomkövetési eredmények megtekintéséhez, beleértve a következőket:
- Végrehajtási ütemterv befejezése
- Bemeneti és kimeneti adatok minden művelethez
- Teljesítménymetrikák és időzítés
- Hiba részletei, ha történt ilyen
- Egyéni attribútumok és metaadatok
Az OpenAI SDK implementálása
Amikor az OpenAI SDK-val fejleszt, a kód rendszerezhető, így a rendszer nyomkövetéseket küld a Foundrynek. A kód kialakításához kövesse az alábbi lépéseket:
Csomagok telepítése:
pip install azure-ai-projects azure-monitor-opentelemetry opentelemetry-instrumentation-openai-v2(Nem kötelező) Üzenettartalom rögzítése:
- Powershell:
setx OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT true - Bash:
export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true
- Powershell:
Szerezze be a csatolt Application Insights-erőforráshoz tartozó kapcsolati karakterláncot (Projekt > Nyomkövetés > Adatforrás kezelése > Kapcsolati karakterlánc):
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 konfigurálása és az OpenAI SDK instrumentálása:
from azure.monitor.opentelemetry import configure_azure_monitor from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor configure_azure_monitor(connection_string=connection_string) OpenAIInstrumentor().instrument()Kérés küldése:
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)Térjen vissza a nyomkövetéshez a portálon az új nyomkövetések megtekintéséhez.
Hasznos lehet a kód olyan szakaszainak rögzítése, amelyek az üzleti logikát a modellekkel kombinálják összetett alkalmazások fejlesztésekor. Az OpenTelemetry a spanok fogalmát használja az önt érdeklő szakaszok rögzítésére. A saját spanok létrehozásához szerezze be az aktuális jelölőobjektum egy példányát.
from opentelemetry import trace tracer = trace.get_tracer(__name__)Ezután használjon dekorátorokat a metódusban, hogy rögzítsen bizonyos forgatókönyveket a kódban, amelyek érdeklik. Ezek a dekorátorok automatikusan spanokat generálnak. Az alábbi példakód egy olyan metódust mutat be, amelynek az a neve
assess_claims_with_context, hogy iterálja a jogcímek listáját, és ellenőrzi, hogy a jogcímet támogatja-e a környezet egy LLM használatával. Az ebben a metódusban végrehajtott összes hívás azonos időtartamon belül lesz rögzítve: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 responsesA nyomkövetési eredmények a következőképpen néznek ki:
Érdemes lehet további információkat is hozzáadni az aktuális tartományhoz. Az OpenTelemetry ehhez az attribútumok fogalmát használja.
traceAz objektummal elérheti őket, és további információkat is tartalmazhat. Tekintse meg, hogyan lett módosítva aassess_claims_with_contextmetódus egy attribútum belefoglalásához:@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
Nyomkövetés a konzolra
Hasznos lehet az alkalmazás nyomon követése és a nyomkövetések elküldése a helyi végrehajtási konzolra. Ez a megközelítés akkor lehet hasznos, ha egységteszteket vagy integrációs teszteket futtat az alkalmazásban egy automatizált CI/CD-folyamat használatával. A nyomkövetések elküldhetők a konzolra, és a CI/CD-eszköz rögzítheti őket a további elemzéshez.
Konfigurálja a nyomkövetést az alábbiak szerint:
Az OpenAI SDK-t a szokásos módon kell beállítani:
from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor OpenAIInstrumentor().instrument()Az OpenTelemetria konfigurálása nyomkövetések konzolra való küldéséhez:
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)Használja az OpenAI SDK-t a szokásos módon:
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": "" } }
Helyi nyomkövetés az Foundry Toolkittel
A Foundry Toolkit egyszerű módot kínál a helyi nyomkövetésre a VS Code-ban. Helyi OTLP-kompatibilis gyűjtőt használ, így tökéletes fejlesztéshez és hibakereséshez felhőbeli hozzáférés nélkül.
Az eszközkészlet openTelemetria használatával támogatja az OpenAI SDK-t és más AI-keretrendszereket. A nyomkövetések azonnal megjelennek a fejlesztési környezetben.
Részletes beállítási utasításokért és SDK-specifikus kód példákért lásd: Nyomkövetés az Foundry Toolkitben.