Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure AI Content Understanding ist ein multimodaler KI-Dienst, der semantische Inhalte aus Dokumenten, Video-, Audio- und Bilddateien extrahiert. Es verwandelt unstrukturierte Inhalte in strukturierte, maschinenlesbare Daten, die für die abrufverstärkte Generierung (RAG) und automatisierte Arbeitsabläufe optimiert sind.
Verwenden Sie die Client-Bibliothek für Azure AI Content Understanding, um:
- Dokumentinhalte extrahieren – Text, Tabellen, Abbildungen, Layoutinformationen und strukturierte Markdowns aus Dokumenten (PDF, Bilder mit Text oder handgeschriebenem Text, Office-Dokumente und mehr) extrahieren
- Transkribieren und analysieren Sie Audio – Wandeln Sie Audioinhalte in durchsuchbare Transkripte mit Sprecher-Tagebuch- und Zeitinformationen um
- Videoinhalte analysieren – Visuelle Bilder extrahieren, Audiospuren transkribieren und strukturierte Zusammenfassungen aus Videodateien erstellen
- Nutzen Sie vorgefertigte Analysatoren - Verwenden Sie serientaugliche vorgefertigte Analysatoren in verschiedenen Branchen, darunter finance und Steuern (Rechnungen, Belege, Steuerformulare), Identitätsverifizierung (Reisepässe, Führerscheine), Hypotheken und Kreditvergabe (Kreditanträge, Bewertungen), Beschaffung und Verträge (Bestellungen, Verträge) sowie Versorgungsunternehmen (Rechnungsabrechnungen)
- Erstellen Sie benutzerdefinierte Analysatoren – Bauen Sie domänenspezifische Analysatoren für spezialisierte Inhaltsextraktionsbedürfnisse in allen vier Modalitäten (Dokumente, Video, Audio und Bilder)
- Dokumente und Videos klassifizieren – Automatisch Dokumente und Videos nach Typ kategorisieren und extrahieren Sie Informationen aus ihnen
Wichtige Links:
- Quellcode
- Paket (NPM)
- Produktdokumentation
- Samples
Getting started
Derzeit unterstützte Umgebungen
- LTS-Versionen von Node.js
- Neueste Versionen von Safari, Chrome, Edge und Firefox.
Weitere Details finden Sie in unserer Support-Richtlinie.
Voraussetzungen
- Ein Azure Abonnement
- Eine Microsoft Foundry-Ressource erstellt in einer unterstützten Region
Installiere das @azure/ai-content-understanding Paket
Installieren Sie die Client-Bibliothek Azure Content Understanding für JavaScript mit npm:
npm install @azure/ai-content-understanding
Konfigurieren Sie Ihre Microsoft Foundry-Ressource
Bevor Sie das Content Understanding SDK verwenden, müssen Sie eine Microsoft Foundry-Ressource einrichten und die erforderlichen großen Sprachmodelle bereitstellen. Content Understanding verwendet derzeit OpenAI-GPT-Modelle (wie gpt-4.1, gpt-4.1-mini und text-embedding-3-large).
Schritt 1: Microsoft Foundry-Ressource erstellen
Wichtig: Sie müssen Ihre Microsoft Foundry-Ressource in einem Bereich erstellen, der Content Understanding unterstützt. Eine Liste der verfügbaren Regionen finden Sie unter Azure Content Understanding Region und Sprachunterstützung.
- Befolgen Sie die Schritte im Azure Content Understanding Quickstart um eine Microsoft Foundry-Ressource im Azure portal zu erstellen
- Holen Sie sich die Endpunkt-URL Ihrer Foundry-Ressource von Azure Portal:
- Geh zu Azure Portal
- Navigiere zu deiner Microsoft Foundry-Ressource
- Gehen Sie zu Resource Management>Schlüssel und Endpunkt
- Kopiere die URL Endpoint (typischerweise
https://<your-resource-name>.services.ai.azure.com/)
Wichtig: Erteile erforderliche Berechtigungen
Nachdem Sie Ihre Microsoft Foundry-Ressource erstellt haben, müssen Sie sich die Rolle Cognitive Services User zuweisen, um API-Aufrufe für die Einstellung von Standardmodell-Deployments zu aktivieren:
- Geh zu Azure Portal
- Navigiere zu deiner Microsoft Foundry-Ressource
- Gehe zu Access Control (IAM) im linken Menü
- Klicken Sie auf Hinzufügen>Rollenzuweisung hinzufügen
- Wählen Sie die Rolle des Nutzers der kognitiven Dienste aus
- Weise es dir selbst (oder dem Benutzer/Service-Principal, der die Anwendung ausführen wird) zu
Hinweis: Diese Rollenzuweisung ist erforderlich, selbst wenn du der Eigentümer der Ressource bist. Ohne diese Rolle können Sie die Content Understanding API nicht aufrufen, um Modellbereitstellungen für vorgefertigte Analysatoren zu konfigurieren.
Schritt 2: Bereitstellen Sie erforderliche Modelle ein
Wichtig: Die vorgefertigten und kundenspezifischen Analysatoren erfordern große Sprachmodellbereitstellungen. Sie müssen mindestens diese Modelle bereitstellen, bevor Sie vorgefertigte und benutzerdefinierte Analysatoren verwenden:
-
prebuilt-documentSearch,prebuilt-imageSearch,prebuilt-audioSearch, erfordernprebuilt-videoSearchgpt-4.1-mini und text-embedding-3-large - Andere vorgefertigte Analysatoren wie
prebuilt-invoice,prebuilt-receiptbenötigen gpt-4.1 und text-embedding-3-large
Um ein Modell bereitzustellen:
- In Microsoft Foundry gehen Sie zu Deployments>Deploy model>Deploy Base model Deploy
- Suchen Sie nach und wählen Sie das Modell aus, das Sie einsetzen möchten. Derzeit benötigen vorgefertigte Analysatoren Modelle wie
gpt-4.1,gpt-4.1-mini, undtext-embedding-3-large - Schließen Sie die Bereitstellung mit Ihren bevorzugten Einstellungen durch
- Beachten Sie den von Ihnen gewählten Deployment-Namen (konventionell verwenden Sie den Modellnamen als Deployment-Name, z. B
gpt-4.1. für dasgpt-4.1Modell)
Wiederholen Sie diesen Vorgang für jedes Modell, das von Ihren vorgefertigten Analysatoren benötigt wird.
Weitere Informationen zum Bereitstellen von Modellen finden Sie unter Create Model Deployments im Microsoft Foundry Portal.
Schritt 3: Modellbereitstellungen konfigurieren (erforderlich für vorgefertigte Analysatoren)
WICHTIG: Dies ist eine einmalige Einrichtung laut Microsoft Foundry-Ressource , die Ihre bereitgestellten Modelle denjenigen zuordnet, die von den vorgefertigten Analysatoren und benutzerdefinierten Modellen benötigt werden. Wenn du mehrere Microsoft Foundry-Ressourcen hast, musst du jede einzeln konfigurieren.
Du musst die Standardmodellzuordnungen in deiner Microsoft Foundry-Ressource konfigurieren. Dies kann programmatisch mit dem SDK durchgeführt werden. Die Konfiguration ordnet Ihre bereitgestellten Modelle (derzeit gpt-4.1, gpt-4.1-mini und text-embedding-3-large) den großen Sprachmodellen zu, die von vorgefertigten Analysatoren benötigt werden.
Um Modellbereitstellungen mithilfe von Code zu konfigurieren, siehe das Update Defaults-Beispiel für ein vollständiges Beispiel. Hier ist ein kurzer Überblick:
import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
import { DefaultAzureCredential } from "@azure/identity";
const endpoint = process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const client = new ContentUnderstandingClient(endpoint, new DefaultAzureCredential());
// Map your deployed models to the models required by prebuilt analyzers
const updatedDefaults = await client.updateDefaults({
modelDeployments: {
"gpt-4.1": process.env["GPT_4_1_DEPLOYMENT"]!,
"gpt-4.1-mini": process.env["GPT_4_1_MINI_DEPLOYMENT"]!,
"text-embedding-3-large": process.env["TEXT_EMBEDDING_3_LARGE_DEPLOYMENT"]!,
},
});
console.log("Model deployments configured successfully!");
Hinweis: Die Konfiguration wird in deiner Microsoft Foundry-Ressource gespeichert, sodass du das nur einmal pro Ressource ausführen musst (oder immer wenn du deine Deployment-Namen änderst).
Authentifizieren des Clients
Um den Client zu authentifizieren, benötigen Sie Ihren Microsoft Foundry Resource Endpoint und die Zugangsdaten. Du kannst entweder einen API-Schlüssel oder eine Microsoft Entra ID-Authentifizierung verwenden.
Verwendung von DefaultAzureCredential
Die einfachste Authentifizierung ist die Verwendung DefaultAzureCredentialvon , das mehrere Authentifizierungsmethoden unterstützt und sowohl in lokalen Entwicklungs- als auch in Produktionsumgebungen gut funktioniert.
Um den unten gezeigten Anbieter DefaultAzureCredential oder andere mit dem Azure SDK bereitgestellte Zugangsdatenanbieter zu verwenden, installieren Sie bitte das @azure/identity-Paket:
npm install @azure/identity
Mithilfe von Node.js- und Node-ähnlichen Umgebungen können Sie die DefaultAzureCredential Klasse verwenden, um den Client zu authentifizieren.
import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
import { DefaultAzureCredential } from "@azure/identity";
const client = new ContentUnderstandingClient("<endpoint>", new DefaultAzureCredential());
Für Browserumgebungen verwenden Sie zur Authentifizierung das InteractiveBrowserCredential aus dem @azure/identity-Paket.
import { InteractiveBrowserCredential } from "@azure/identity";
import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
const credential = new InteractiveBrowserCredential({
tenantId: "<YOUR_TENANT_ID>",
clientId: "<YOUR_CLIENT_ID>",
});
const client = new ContentUnderstandingClient("<endpoint>", credential);
Verwendung von API-Schlüssel
Sie können sich auch mit einem API-Schlüssel aus Ihrer Microsoft Foundry-Ressource authentifizieren:
import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
import { AzureKeyCredential } from "@azure/core-auth";
const endpoint = process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const apiKey = process.env["CONTENTUNDERSTANDING_KEY"]!;
const client = new ContentUnderstandingClient(endpoint, new AzureKeyCredential(apiKey));
Um Ihren API-Schlüssel zu erhalten:
- Geh zu Azure Portal
- Navigiere zu deiner Microsoft Foundry-Ressource
- Gehen Sie zu Resource Management>Schlüssel und Endpunkt
- Kopiere einen der Schlüssel (Schlüssel1 oder Schlüssel2)
Weitere Informationen zur Authentifizierung finden Sie unter Azure Identity Client Library.
JavaScript-Bündel
Um diese Clientbibliothek im Browser zu verwenden, müssen Sie zuerst einen Bundler verwenden. Für Details dazu, wie to do wird, siehe bitte unsere bündelnde Dokumentation.
Wichtige Konzepte
Vorgefertigte Analysegeräte
Content Understanding bietet eine umfangreiche Auswahl an vorgefertigten Analysatoren, die ohne jegliche Konfiguration einsatzbereit sind. Diese Analysatoren basieren auf Wissensdatenbanken mit Tausenden von realen Dokumentenbeispielen, die es ihnen ermöglichen, Dokumentstrukturen zu verstehen und sich an Format- und Inhaltsunterschiede anzupassen.
Vorgefertigte Analysatoren sind in mehrere Kategorien unterteilt:
-
RAG-Analysatoren – Optimiert für Szenarien der abrufaugmentierten Generierung mit semantischer Analyse und Markdown-Extraktion. Diese Analysatoren liefern für jedes Content-Element einen Markdown und einen Absatz
Summaryzurück:-
prebuilt-documentSearch- Extrahiert Inhalte aus Dokumenten (PDF, Bilder, Office-Dokumente) mit Layout-Erhaltung, Tabellenerkennung, Figurenanalyse und strukturierter Markdown-Ausgabe. Optimiert für RAG-Szenarien. -
prebuilt-imageSearch- Analysiert eigenständige Bilder und liefert eine ein-Absatz-Beschreibung des Bildinhalts. Optimiert für Bildverständnis und Suchszenarien. Für Bilder, die Text enthalten (einschließlich handschriftlichem Text), verwendenprebuilt-documentSearchSie . -
prebuilt-audioSearch- Transkribiert Audioinhalte mit Sprechertagebuch, Zeitinformationen und Gesprächszusammenfassungen. Unterstützt mehrsprachige Transkription. -
prebuilt-videoSearch- Analysiert Videoinhalte mit visueller Frame-Extraktion, Audiotranskription und strukturierten Zusammenfassungen. Bietet zeitliche Ausrichtung von visuellen und akustischen Inhalten und kann mehrere Segmente pro Video zurückgeben.
-
-
Inhaltsextraktionsanalysatoren – Fokus auf OCR und Layoutanalyse (z. B.
prebuilt-read, )prebuilt-layout -
Basisanalysatoren – Grundlegende Inhaltsverarbeitungsfunktionen, die als Elternanalysatoren für kundenspezifische Analysatoren verwendet werden (z. B.
prebuilt-document,prebuilt-image, ,prebuilt-audio)prebuilt-video - Domänenspezifische Analysatoren – Vorkonfigurierte Analysatoren für gängige Dokumentenkategorien wie Finanzdokumente (Rechnungen, Quittungen, Kontoauszüge), Identitätsdokumente (Pässe, Führerscheine), Steuerformulare, Hypothekendokumente und Verträge sowie Versorgungsleistungen (Rechnungsauszüge)
-
Utility-Analysatoren – Spezialisierte Werkzeuge zur Schemagenerierung und Feldextraktion (z. B.
prebuilt-documentFieldSchema, )prebuilt-documentFields
Eine vollständige Liste der verfügbaren vorgefertigten Analysatoren und deren Fähigkeiten finden Sie in der Dokumentation Vorgefertigte Analysatoren.
Individuelle Analysatoren
Du kannst benutzerdefinierte Analysatoren mit spezifischen Feldschemata für multimodale Inhaltsverarbeitung (Dokumente, Bilder, Audio, Video) erstellen. Individuelle Analysatoren ermöglichen es Ihnen, domänenspezifische Informationen zu extrahieren, die auf Ihren Anwendungsfall zugeschnitten sind.
Inhaltstypen
Die API liefert basierend auf den Eingaben unterschiedliche Inhaltstypen zurück:
-
document- Für Dokumentdateien (PDF, HTML, Bilder, Office-Dokumente wie Word, Excel, PowerPoint und mehr). Bietet grundlegende Informationen wie Seitenanzahl und MIME-Typ. Rufen Sie detaillierte Informationen ab, darunter Seiten, Tabellen, Abbildungen, Absätze und vieles mehr. -
audioVisual- Für Audio- und Videodateien. Bietet grundlegende Informationen wie Zeitangaben (Start-/Endzeiten) und Bildausschnitte (für Video). Beziehen Sie detaillierte Informationen ab, einschließlich Transkriptphrasen, Zeitangaben sowie für Video, Keyframe-Referenzen und mehr.
Asynchrone Vorgänge
Content Understanding-Operationen sind asynchrone, langlaufende Operationen. Der Workflow lautet:
- Analyse beginnen – Starten Sie die Analyseoperation (gibt sofort einen Operationsstandort zurück)
- Umfrage nach Ergebnissen – Untersuchen Sie den Operationsort, bis die Analyse abgeschlossen ist
- Prozessergebnisse – Extraktion und Darstellung der strukturierten Ergebnisse
Das SDK stellt Poller-Typen bereit, die das Polling automatisch handhaben, wenn verwendet pollUntilDone()wird. Für Analyseoperationen liefert das SDK einen Poller, der access zur Operations-ID liefert. Diese Operations-ID kann mit getResultFile und deleteResult Methoden verwendet werden.
Hauptklassen
-
ContentUnderstandingClient- Der Hauptclient zur Analyse von Inhalten sowie zur Erstellung, Verwaltung und Konfiguration von Analysatoren -
AnalysisResult- Enthält die strukturierten Ergebnisse einer Analyseoperation, einschließlich Inhaltselementen, Markdown und Metadaten
Threadsicherheit
Wir garantieren, dass alle Client-Instanz-Methoden threadsicher und unabhängig voneinander sind. Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.
Weitere Konzepte
Client-Optionen | Zugriff auf die Antwort | Langlaufende Operationen | Umgang mit Fehlern | Diagnostics | Client-Lebenszeit
Beispiele
Du kannst dich mit verschiedenen APIs Samples vertraut machen.
Die Proben zeigen:
- Konfiguration – Modellbereitstellungsstandardeinstellungen für vorgefertigte Analysatoren und benutzerdefinierte Analysatoren konfigurieren
-
Dokumenteninhaltsextraktion – Extrahieren Sie strukturierte Markdown-Inhalte aus PDFs und Bildern mit
prebuilt-documentSearch, optimiert für RAG (Retrieval-Augmented Generation)-Anwendungen -
Multimodale Inhaltsanalyse – Inhalte aus URLs über alle Modalitäten hinweg analysieren: Markdown und Zusammenfassungen aus Dokumenten, Bildern, Audio und Video
prebuilt-documentSearchmit ,prebuilt-imageSearch, ,prebuilt-audioSearchundprebuilt-videoSearch -
Domain-Specific Analyse – Extrahiere strukturierte Felder aus Rechnungen mit
prebuilt-invoice - Erweiterte Dokumentfunktionen – Diagramme, Hyperlinks, Formeln und Anmerkungen aus Dokumenten extrahieren
- Benutzerdefinierte Analysatoren – Erstellen Sie benutzerdefinierte Analysatoren mit Feldschemata für spezialisierte Extraktionsbedürfnisse
- Dokumentklassifikation – Erstellen und verwenden Sie Klassifikatoren, um Dokumente zu kategorisieren
- Analyzer-Management – Analyzer holen, listen, aktualisieren, kopieren und löschen
- Ergebnisverwaltung – Ergebnisdateien aus der Videoanalyse abrufen und Analyseergebnisse löschen
Extrahieren Sie Markdown-Inhalte aus Dokumenten
Verwenden Sie den Analysator prebuilt-documentSearch , um Markdown-Inhalte aus Dokumenten zu extrahieren:
import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
import { DefaultAzureCredential } from "@azure/identity";
const endpoint = process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const client = new ContentUnderstandingClient(endpoint, new DefaultAzureCredential());
const documentUrl = "https://example.com/sample_invoice.pdf";
// Analyze document using prebuilt-documentSearch
const poller = client.analyze("prebuilt-documentSearch", [{ url: documentUrl }]);
const result = await poller.pollUntilDone();
// Extract markdown content
if (result.contents && result.contents.length > 0) {
const content = result.contents[0];
console.log("Markdown Content:");
console.log(content.markdown);
// Access document-specific properties
if (content.kind === "document") {
console.log(`Pages: ${content.startPageNumber} - ${content.endPageNumber}`);
}
}
Extrahiere strukturierte Felder aus Rechnungen
Verwenden Sie den Analysator prebuilt-invoice , um strukturierte Rechnungsfelder zu extrahieren:
import {
ContentUnderstandingClient,
type DocumentContent,
type ContentFieldUnion,
} from "@azure/ai-content-understanding";
import { DefaultAzureCredential } from "@azure/identity";
const endpoint = process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const client = new ContentUnderstandingClient(endpoint, new DefaultAzureCredential());
const invoiceUrl = "https://example.com/invoice.pdf";
// Analyze invoice using prebuilt-invoice analyzer
const poller = client.analyze("prebuilt-invoice", [{ url: invoiceUrl }]);
const result = await poller.pollUntilDone();
if (result.contents && result.contents.length > 0) {
const content = result.contents[0] as DocumentContent;
// Helper function to extract field values
const getFieldValue = (field: ContentFieldUnion | undefined): string | undefined => {
if (!field) return undefined;
if ("valueString" in field) return field.valueString;
if ("valueDate" in field) return field.valueDate;
if ("valueNumber" in field) return String(field.valueNumber);
return undefined;
};
// Extract invoice fields
const customerName = getFieldValue(content.fields?.["CustomerName"]);
const invoiceTotal = getFieldValue(content.fields?.["InvoiceTotal"]);
const invoiceDate = getFieldValue(content.fields?.["InvoiceDate"]);
console.log(`Customer Name: ${customerName ?? "(None)"}`);
console.log(`Invoice Total: ${invoiceTotal ?? "(None)"}`);
console.log(`Invoice Date: ${invoiceDate ?? "(None)"}`);
}
Siehe das Verzeichnis samples für vollständige Beispiele.
Problembehandlung
Häufig auftretende Probleme
Fehler: "Access wegen ungültigem Abonnementschlüssel oder falschem API-Endpunkt abgelehnt"
- Überprüfen Sie, ob Ihre Endpunkt-URL korrekt ist und den nachfolgenden Schrägstrich enthält
- Stellen Sie sicher, dass Ihr API-Schlüssel gültig ist oder dass Ihre Microsoft Entra ID-Zugangsdaten die richtigen Berechtigungen haben
- Stelle sicher, dass dir die Rolle Cognitive Services User in deinem Konto zugewiesen ist
Fehler: "Modellbereitstellung nicht gefunden" oder "Standardmodellbereitstellung nicht konfiguriert"
- Stellen Sie sicher, dass Sie die erforderlichen Modelle (gpt-4.1, gpt-4.1-mini, text-embedding-3-large) in Microsoft Foundry bereitgestellt haben
- Überprüfen Sie, dass Sie die Standardmodell-Deployments konfiguriert haben (siehe Configure Model Deployments)
- Überprüfen Sie, ob Ihre Deployment-Namen mit dem übereinstimmen, was Sie in den Standardeinstellungen konfiguriert haben
Fehler: "Operation fehlgeschlagen" oder Timeout
- Content Understanding-Operationen sind asynchron und können Zeit in Anspruch nehmen
- Stellen Sie sicher, dass Sie die Ergebnisse korrekt mit
pollUntilDone()dem Poller-Objekt abfragen - Überprüfen Sie den Betriebsstatus für weitere Details zum Ausfall
Protokollierung
Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL Umgebungsvariable auf infofest. Alternativ kann das Logging zur Laufzeit aktiviert werden, indem setLogLevel im @azure/logger aufgerufen wird:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Für detailliertere Anleitungen, wie man Logs aktiviert, findest du die @azure/logger-Paketdokumentation.
Testen
Dieses SDK enthält umfassende Tests, die in verschiedenen Modi ausgeführt werden können.
Schnellstart
# Install dependencies
pnpm install
# Build the SDK
npx turbo build --filter=@azure/ai-content-understanding...
# Run tests in playback mode (no Azure resources needed)
pnpm test
Testmodi
- Wiedergabemodus (Standard): Verwendet voraufgezeichnete HTTP-Interaktionen, keine Azure Ressourcen benötigt
- Record Mode: Läuft gegen Live-Azure-Dienste und zeichnet Interaktionen für zukünftige Wiedergaben auf
- Live Mode: Läuft gegen Live-Azure-Dienste ohne Aufzeichnung
Einrichtung der Umgebung für Live-/Record-Tests
Kopieren
test/sample.envzutest/.env:cp test/sample.env test/.envBearbeite
test/.envund fülle deine tatsächlichen Werte aus:-
CONTENTUNDERSTANDING_ENDPOINT: Ihr Microsoft Foundry-Ressourcenendpunkt -
CONTENTUNDERSTANDING_KEY: Ihr API-Schlüssel (optional, wenn Sie DefaultAzureCredential verwenden) - Modell-Bereitstellungsnamen (erforderlich für vorgefertigte Analysatoren)
-
Tests im Record-Modus durchführen
Um neue Testinteraktionen aufzuzeichnen oder bestehende zu aktualisieren:
# Run tests in record mode
TEST_MODE=record pnpm test
Tests im Wiedergabemodus durchführen
Tests ohne Azure-Ressourcen durchführen (unter Verwendung vorab aufgezeichneter Interaktionen):
# Simply run tests (playback is the default mode)
pnpm test
# Or explicitly set playback mode
TEST_MODE=playback pnpm test
Paketbezogene / schnellere Arbeitsabläufe
Erstelle nur dieses Paket und seine Abhängigkeiten:
npx turbo build --filter=@azure/ai-content-understanding... --token 1Führe nur Node-Tests für schnellere Iteration durch (überspringe Browsertests):
TEST_MODE=record pnpm test:node # or TEST_MODE=playback pnpm test:node
Umgebungsvariablen
Sie können Zugangsdaten auf verschiedene Arten festlegen:
Bevorzugt: Erstellen
test/.envSie, indem Sie Ihre Werte kopieren und ausfüllentest/sample.envFallback: Platziere a
.envan der Paketwurzel (im gleichen Verzeichnis wiepackage.json)Shell-Export: Exportiere Zugangsdaten direkt in deiner Shell:
export CONTENTUNDERSTANDING_ENDPOINT="https://<your-resource>.services.ai.azure.com/" export CONTENTUNDERSTANDING_KEY="<your_key_here>" TEST_MODE=record pnpm test:node
Debug-Tipps
Wenn Sie Tests im Aufzeichnungsmodus ausführen, achten Sie auf Debug-Zeilen, die vom Test-Setup ausgedruckt werden:
DEBUG ENV ENDPOINT DEFINED: true
DEBUG ENV KEY DEFINED: true
Wichtig: Verbinde KEINE echten Schlüssel. Behalten Sie
test/sample.envdie Vorlage und stellen Sie sicher, dasstest/.envsie in Ihrer.gitignoreSituation ist.
Fehlerbehebungstests
-
"Der Schlüssel muss ein nicht-leerer String sein": Der Testprozess konnte Ihr
CONTENTUNDERSTANDING_KEYnicht finden. Stelle sicher, dasstest/.envder Package-Root.envvorhanden ist und den Schlüssel enthält (oder exportiere ihn in deiner Shell), bevor du Tests ausführst. - "Ungültige Anfrage" LRO-Fehler: Stellen Sie sicher, dass Ihr Dienst/Ihre Region den von den Tests verwendeten Analyzer unterstützt und dass Netzwerk-access für URL-basierte Eingaben verfügbar ist.
Lokale Proben ausführen
Die Sample-Verzeichnisse sind aus dem pnpm-Arbeitsbereich ausgeschlossen, um Abhängigkeitskonflikte zu vermeiden. Um Samples mit der lokalen Entwicklungsversion des Pakets auszuführen:
Hinweis: Wenn man die Samples-Ordner ausführt
pnpm link,pnpm installwerden lokale Dateien wiepackage.jsonundpnpm-lock.yamlunter den Samples-Verzeichnissen aktualisiert. Diese Änderungen gelten nur für lokale Tests und sollten nicht überprüft werden. Wenn du sie versehentlich modifizierst, benutzegit restore <path>sie zum Zurücksetzen.
Bauen Sie das Paket zusammen:
npx turbo build --filter=@azure/ai-content-understanding...Verlinken Sie das lokale Paket in den Beispielverzeichnissen:
cd sdk/contentunderstanding/ai-content-understanding/samples/v1/typescript pnpm link ../../../ cd ../javascript pnpm link ../../../Installiere Abhängigkeiten in den Beispielverzeichnissen:
cd sdk/contentunderstanding/ai-content-understanding/samples/v1/typescript pnpm install cd ../javascript pnpm install
Alternative (keine package.json/lockfile-Änderungen)
Wenn Sie das lokale Paket verwenden möchten, ohne das Sample package.json zu verändern oder pnpm-lock.yaml, installieren Sie von einem verpackten Tarball, ohne zu speichern:
Bauen Sie das Paket zusammen:
npx turbo build --filter=@azure/ai-content-understanding...Erstellen Sie einen lokalen Tarball:
cd sdk/contentunderstanding/ai-content-understanding pnpm pack --pack-destination /tmpInstalliere die Tarball in den Samples (kein Speicher, keine Sperrdatei):
cd sdk/contentunderstanding/ai-content-understanding/samples/v1/typescript npm install --no-save --no-package-lock /tmp/azure-ai-content-understanding-*.tgz cd ../javascript npm install --no-save --no-package-lock /tmp/azure-ai-content-understanding-*.tgz
Ausführen einer Probe
Nach der Installation von Abhängigkeiten kann man einzelne Samples ausführen.
Einrichtung von Umweltvariablen:
Kopiere die sample.env Datei, um eine .env Datei im Root-Sample-Verzeichnis zu erstellen. Führe folgende Befehle aus dem Paketroot aus (sdk/contentunderstanding/ai-content-understanding):
# For TypeScript samples
cp sample.env samples/v1/typescript/.env
# For JavaScript samples
cp sample.env samples/v1/javascript/.env
Dann bearbeiten Sie die .env Datei und füllen Sie Ihre tatsächlichen Werte ein:
CONTENTUNDERSTANDING_ENDPOINT=https://<your-resource>.services.ai.azure.com/
CONTENTUNDERSTANDING_KEY=<your-api-key>
Hinweis: Die
.envDatei sollte sich im Root-Bereich des Beispielordners befinden (gleiche Ebene wiepackage.json), nicht im Innerensrc/oderdist/.
TypeScript-Beispiele:
cd samples/v1/typescript
npm run build
node dist/analyzeBinary.js
JavaScript-Beispiele:
cd samples/v1/javascript
node analyzeBinary.js
Für vollständige Einrichtungsanweisungen und verfügbare Beispiele siehe:
Nächste Schritte
- Erkunden Sie das samples-Verzeichnis für vollständige Codebeispiele
- Lesen Sie die Azure AI Content Understanding Dokumentation für detaillierte Serviceinformationen
Contributing
Wenn Sie zu dieser Bibliothek beitragen möchten, lesen Sie bitte den beitragenden Leitfaden, um mehr darüber zu erfahren, wie man den Code erstellt und testet.
Verwandte Projekte
Azure SDK for JavaScript