Foto von Elnur auf Shutterstock
Einführung
KI verändert zweifellos, wie Anwendungen heute entwickelt werden und wie Unternehmen arbeiten. Während Organisationen darum wetteifern, KI-Funktionen für sich zu nutzen, hat sich Microsoft Azure als leistungsstarke Plattform etabliert, die den Zugang zu fortschrittlichen KI-Diensten demokratisiert. Mit Azure AI Services (ehemals Cognitive Services) können Entwickler heute anspruchsvolle KI-Funktionen wie Natural Language Understanding oder Bilderkennung umsetzen – ohne tiefgreifende Machine-Learning-Expertise oder massive Rechenressourcen.
Azure AI Services bietet eine Vielzahl an KI-Funktionen. Dieser Artikel zeigt am Beispiel des Azure AI Language Service, wie sich KI nahtlos in Anwendungen einbinden lässt – etwa um Informationen zu extrahieren, Texte zu klassifizieren, Konversationssprache zu verstehen, Fragen zu beantworten und vieles mehr.
Voraussetzungen
- Ein Azure-Konto, das bei Bedarf bis zu 30 Tage kostenlos getestet werden kann.
- Grundkenntnisse in Azure und im Umgang mit dem Azure Portal.
- Für die Ausführung des Python-Beispielcodes empfehlen sich Grundkenntnisse in Python und pip. Außerdem benötigen Sie einen GitHub-Zugang, um den Beispielcode herunterzuladen.
- Etwas Erfahrung mit Docker und Anwendungs-Containerisierung ist ebenfalls hilfreich.
Die Schritte im Überblick
- Berechtigungen und Zugriff auf Azure AI Services prüfen.
- Einen verwalteten API-Endpunkt für den Language Service anlegen.
- Die API mit den Python-Beispielen testen.
- Optional: Die API lokal in Docker testen.
- Ressourcen aufräumen.
Schritt-für-Schritt-Anleitung
Schritt 1: Erste Einrichtung – Zugriff auf AI Services prüfen
Öffnen Sie das Azure Portal unter https://portal.azure.com, navigieren Sie zu Microsoft Entra ID (ehemals Azure Active Directory), suchen Sie Ihr Benutzerkonto und wählen Sie es aus. Klicken Sie anschließend auf Azure role assignment. Am einfachsten ist es für diese Übung, dem Benutzer entweder die Rolle Owner oder Contributor auf Subscription- oder Resource-Group-Ebene zuzuweisen, damit der Zugriff auf die anzulegenden Azure-Ressourcen sichergestellt ist. In meinem Fall habe ich eine Resource Group erstellt und meinem Benutzer die Owner-Rolle für diese Resource Group gegeben.
Azure-Rollenzuweisungen werden hier erläutert. Falls Sie noch keine Resource Group haben, finden Sie eine ausführliche Erklärung zu deren Verwendung hier.

Azure-Rollenzuweisungen für einen bestimmten Benutzer
Navigieren Sie im Azure Portal zu Subscriptions und wählen Sie Resource Providers. Suchen Sie Microsoft.CognitiveServices und klicken Sie auf Register, falls die Ressource noch nicht registriert ist.
Dieser Vorgang ist in der Dokumentation des Azure Resource Managers hier ausführlich beschrieben.

Resource Providers
Schritt 2: Verwalteten API-Endpunkt für den Language Service anlegen
Azure AI Services sind verwaltete Dienste mit einer API, die sich einfach nutzen lässt. Es gibt eine Option namens Azure AI service multi-service account, die Zugriff auf mehrere KI-Dienste über einen einzigen Endpunkt bietet, allerdings ein Container-Deployment voraussetzt, um die API verfügbar zu machen. Für dieses Beispiel nutzen wir daher den verwalteten Language Service – er ist eine dedizierte Ressource ausschließlich für sprachspezifische Funktionen und schneller eingerichtet.
Navigieren Sie im Azure Portal zu Azure AI Services, wählen Sie Language Service und anschließend Create Language.
Der Azure AI Service for Language bringt mehrere vorgefertigte Funktionen mit, etwa Sentimentanalyse, Schlüsselbegriff-Extraktion und weitere – für diese Übung mehr als ausreichend. Klicken Sie auf Continue to create your resource.

Language-Service-Ressource anlegen
Durchlaufen Sie die Seiten des Assistenten und füllen Sie folgende Felder aus:
- Subscription: standardmäßig Ihr aktuelles Abonnement.
- Resource Group: vorhandene Gruppe verwenden oder eine neue für diese Übung anlegen.
- Region: standardmäßig East US.
- Name: eindeutigen Namen für den Domain-Namen Ihres Language Service vergeben.
- Pricing tier: sofern verfügbar, den kostenlosen Tarif wählen.
- Das Kontrollkästchen zur verantwortungsvollen KI-Nutzung aktivieren.
- Network: alle Netzwerke zulassen, sofern Sie den Zugriff nicht auf ein bestimmtes Netzwerk, einen IP-Bereich oder einen Private Endpoint einschränken möchten. Für dieses Beispiel habe ich der Einfachheit halber öffentlichen Zugriff gewählt – für den dauerhaften Einsatz ist das jedoch nicht zu empfehlen.
Mir sind im Azure Portal einige Bugs begegnet, bei denen Fehlermeldungen nicht der tatsächlichen Lage entsprachen. Falls Ihnen das auch passiert, prüfen Sie zunächst, ob Sie Schritt 1 zur Bestätigung des Zugriffs auf die AI Services korrekt ausgeführt haben, bevor Sie von einer Falschmeldung ausgehen.


Prüfen Sie auf der letzten Seite des Assistenten die Einstellungen und klicken Sie auf Create, um die Ressource anzulegen.

Bestätigungsbildschirm beim Anlegen des Language Service
Die Bereitstellung dauert einige Minuten. Wählen Sie anschließend Go to resource, um die Einstellungen aufzurufen. Hier können Sie sich näher mit den Funktionen des Language Service und dessen Konfiguration vertraut machen. Klicken Sie auf Keys and Endpoint, um die beiden Angaben einzusehen, die Sie in Schritt 3 für den Zugriff auf die API benötigen.
Beachten Sie: Es stehen zwei Schlüssel zur Verfügung, was eine Schlüsselrotation bei Bedarf erleichtert – für den API-Zugriff funktioniert jedoch jeder der beiden gleichermaßen. Best Practices für das Secrets-Management in Azure finden Sie hier.

Schlüssel und Endpunkt für den Language Service
Schritt 3: Die API mit den Python-Beispielen testen
Vorausgesetzt, Sie haben Python und pip lokal installiert und einen GitHub-Zugang (siehe Voraussetzungen oben), können Sie den Beispielcode aus diesem Repository entweder als ZIP-Datei herunterladen oder das Repository klonen.
git clone https://github.com/doitintl/azure-ai-services-demo.git
Sobald der Code lokal verfügbar ist, passen Sie die .env-Datei an und tragen Sie Ihren API-Schlüssel und Endpunkt aus Schritt 3 ein. Zum Zeitpunkt der Erstellung dieses Artikels war Text Analytics in Version 3.1 aktuell. Sollte es Probleme mit dieser Version geben, werfen Sie bitte einen Blick in die Language REST API-Referenz.
COGNITIVE_SERVICES_ENDPOINT=<your endpoint>
COGNITIVE_SERVICES_KEY=<your api key>
SENTIMENT_ANALYSIS_PATH=/text/analytics/v3.1/sentiment?
KEY_PHRASE_EXTRACTION_PATH=/text/analytics/v3.1/keyPhrases
LANGUAGE_DETECTION_PATH=/text/analytics/v3.1/languages?
Vor der Ausführung des Codes muss eine Abhängigkeit installiert werden. Falls bei der Installation dieser Bibliothek oder beim Ausführen des Python-Codes Probleme auftreten, lassen sich die Beispiele in einer virtuellen Python-Umgebung sauber ausführen. Virtuelle Umgebungen werden hier erläutert und sind in Python mit wenigen Schritten eingerichtet und einsatzbereit.
pip install python-dotenv
Es stehen drei Python-Dateien zur Verfügung, um einige Funktionen des Language Service zu testen: Sentimentanalyse, Schlüsselbegriff-Extraktion und Spracherkennung. Verwenden Sie einen der folgenden Befehle, um die jeweilige Datei auszuführen.
python sentiment_analysis.py
python key_phrase_extraction.py
python language_detection.py
Geben Sie auf der Kommandozeile einen Text zur Analyse ein – wie unten am Beispiel der Schlüsselbegriff-Extraktion gezeigt.
david@Mac azure-ai-services-demo % python key_phrase_extraction.py
Enter some text to extract its key phrases. Enter q to quit.
Language detection is one of the features offered by Azure AI Language,
a collection of machine learning and AI algorithms in the cloud for
developing intelligent applications that involve written language.
Language detection is able to detect more than 100 languages in their
primary script.
Request:
{
"documents": [\
{\
"id": 1,\
"text": "Language detection is one of the features offered by\
Azure AI Language, a collection of machine learning and AI algorithms\
in the cloud for developing intelligent applications that involve written\
language. Language detection is able to detect more than 100 languages\
in their primary script."\
}\
]
}
Response:
{
"documents": [\
{\
"id": "1",\
"keyPhrases": [\
"Azure AI Language",\
"AI algorithms",\
"Language detection",\
"written language",\
"machine learning",\
"intelligent applications",\
"primary script",\
"features",\
"collection",\
"cloud",\
"100 languages"\
],\
"warnings": []\
}\
],
"errors": [],
"modelVersion": "2022-10-01"
}
Key Phrases:
- Azure AI Language
- AI algorithms
- Language detection
- written language
- machine learning
- intelligent applications
- primary script
- features
- collection
- cloud
- 100 languages
Hier ein Beispiel, wie sich die API per CURL-Befehl für die Sentimentanalyse testen lässt. Ersetzen Sie im Befehl einfach my-endpoint und my-key.
curl -X POST "https://my-endpoint/text/analytics/v3.1/sentiment" \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: my-key" \
-d "{\"documents\":[{\"id\":\"1\",\"text\":\"The performance was amazing! The sound could have been clearer.\"},{\"id\":\"2\",\"text\":\"The food and service were unacceptable. While the host was nice, the waiter was rude and food was cold.\"}]}"
{
"documents": [\
{\
"id": "1",\
"sentiment": "mixed",\
"confidenceScores": {\
"positive": 0.5,\
"neutral": 0.09,\
"negative": 0.41\
},\
"sentences": [\
{\
"sentiment": "positive",\
"confidenceScores": {\
"positive": 1.0,\
"neutral": 0.0,\
"negative": 0.0\
},\
"offset": 0,\
"length": 29,\
"text": "The performance was amazing! "\
},\
{\
"sentiment": "negative",\
"confidenceScores": {\
"positive": 0.0,\
"neutral": 0.17,\
"negative": 0.82\
},\
"offset": 29,\
"length": 34,\
"text": "The sound could have been clearer."\
}\
],\
"warnings": []\
},\
{\
"id": "2",\
"sentiment": "negative",\
"confidenceScores": {\
"positive": 0.0,\
"neutral": 0.0,\
"negative": 1.0\
},\
"sentences": [\
{\
"sentiment": "negative",\
"confidenceScores": {\
"positive": 0.0,\
"neutral": 0.0,\
"negative": 1.0\
},\
"offset": 0,\
"length": 40,\
"text": "The food and service were unacceptable. "\
},\
{\
"sentiment": "negative",\
"confidenceScores": {\
"positive": 0.0,\
"neutral": 0.0,\
"negative": 1.0\
},\
"offset": 40,\
"length": 63,\
"text": "While the host was nice, the waiter was rude and food was cold."\
}\
],\
"warnings": []\
}\
],
"errors": [],
"modelVersion": "2024-03-01"
}
Schritt 4: Die API in Docker hosten
Als optionale Übung können Sie die Language Service-API auch in einem Docker-Container hosten, sofern Sie mit Docker vertraut sind – das ist schnell aufgesetzt. Für dieses Szenario gibt es Images für einzelne Funktionen des Language Service, beispielsweise für die Sentimentanalyse.
Stellen Sie den Docker-Container lokal bereit. Ersetzen Sie im Befehl einfach my-endpoint und my-key. Details zur Konfiguration und zum Betrieb des Sentimentanalyse-Containers finden Sie hier.
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 mcr.microsoft.com/azure-cognitive-services/textanalytics/sentiment:latest Eula=accept Billing=https://my-endpoint ApiKey=my-key
Falls Port 5000 Probleme bereitet, wählen Sie einen anderen Port. Unter macOS belegt unter Umständen der AirPlay-Empfänger Port 5000; deaktivieren lässt er sich unter Systemeinstellungen > Allgemein > AirDrop & Handoff > AirPlay-Empfänger.
Sobald das Image heruntergeladen und der Container gebaut ist, können Sie über http://localhost:5000/ prüfen, ob er läuft.

Lokal laufender Docker-Container
Außerdem gibt es eine Statusseite unter http://localhost:5000/status sowie eine vollständige Endpoint-Dokumentation unter http://localhost:5000/swagger.

Statusseite des lokalen Docker-Containers
Testen Sie den Container nun mit einem CURL-Befehl – analog zum Test des in Azure AI Services gehosteten verwalteten Dienstes, mit dem Unterschied, dass der Port angegeben wird und der API-Schlüssel im Header nicht erforderlich ist.
curl -X POST "http://localhost:5000/text/analytics/v3.1/sentiment" -H "Content-Type: application/json" --data-ascii "{'documents':[{'id':1,'text':'The performance was amazing! The sound could have been clearer.'},{'id':2,'text':'The food and service were unacceptable. While the host was nice, the waiter was rude and food was cold.'}]}"
{
"documents": [\
{\
"id": "1",\
"sentiment": "positive",\
"confidenceScores": {\
"positive": 0.99,\
"neutral": 0.0,\
"negative": 0.0\
},\
"sentences": [\
{\
"sentiment": "positive",\
"confidenceScores": {\
"positive": 0.99,\
"neutral": 0.0,\
"negative": 0.0\
},\
"offset": 0,\
"length": 29,\
"text": "The performance was amazing! "\
},\
{\
"sentiment": "neutral",\
"confidenceScores": {\
"positive": 0.19,\
"neutral": 0.47,\
"negative": 0.34\
},\
"offset": 29,\
"length": 34,\
"text": "The sound could have been clearer."\
}\
],\
"warnings": []\
},\
{\
"id": "2",\
"sentiment": "negative",\
"confidenceScores": {\
"positive": 0.0,\
"neutral": 0.01,\
"negative": 0.98\
},\
"sentences": [\
{\
"sentiment": "negative",\
"confidenceScores": {\
"positive": 0.0,\
"neutral": 0.01,\
"negative": 0.99\
},\
"offset": 0,\
"length": 40,\
"text": "The food and service were unacceptable. "\
},\
{\
"sentiment": "negative",\
"confidenceScores": {\
"positive": 0.0,\
"neutral": 0.02,\
"negative": 0.98\
},\
"offset": 40,\
"length": 63,\
"text": "While the host was nice, the waiter was rude and food was cold."\
}\
],\
"warnings": []\
}\
],
"errors": [],
"modelVersion": "2022-11-01"
}
Container in Azure bereitstellen
Das geht über den Rahmen dieses Artikels hinaus, doch da Docker-Hosting bereits demonstriert wurde, sei erwähnt: Azure bietet zahlreiche Optionen für Aufbau und Bereitstellung cloud-nativer und containerisierter Anwendungen. Je nach Anforderungen an Skalierung, Kosten, Hochverfügbarkeit, Verwaltung (etwa wenn der verwaltete Azure-AI-Dienst nicht infrage kommt) und weiteren Faktoren bieten sich u. a. Azure Container Instances, Azure Container Apps oder Azure Kubernetes Service an. Diese und weitere Optionen werden hier ausführlich verglichen.
Schritt 5: Azure-Ressourcen aufräumen
Das Aufräumen der in dieser Übung genutzten Azure-Ressourcen ist unkompliziert, da nur der Language Service angelegt wurde. Falls Sie eigens für diese Übung eine Resource Group erstellt haben, können Sie diese ebenfalls löschen – sie verursacht aber keine Kosten, da sie lediglich der Gruppierung von Azure-Ressourcen dient.
Navigieren Sie zu Azure AI Services, wählen Sie Language Service, aktivieren Sie das Kontrollkästchen für den von Ihnen erstellten Dienst, klicken Sie auf Delete und schließen Sie die Löschung ab.

Löschung des Language Service
Der Azure AI Language Service ermöglicht es Unternehmen, mit Sentimentanalyse, Schlüsselbegriff-Extraktion und Spracherkennung aussagekräftige Erkenntnisse aus Texten zu gewinnen. Wir haben gezeigt, wie einfach sich diese Funktionen in Anwendungen integrieren lassen – über einen verwalteten Azure-AI-Services-Endpunkt oder per Self-Hosting eines Containers in Docker bzw. überall dort, wo containerisierte Anwendungen laufen können.
Wichtigste Erkenntnisse
Warum den Azure AI Language Service wählen?
- Einfache Nutzung: Dank vorgefertigter Modelle und unkomplizierter APIs lassen sich fortgeschrittene Natural-Language-Processing-Funktionen schnell in Anwendungen integrieren – ohne tiefgreifende Machine-Learning-Expertise.
- Nahtlose Integration: Der Azure AI Language Service spielt nahtlos mit anderen Azure-Tools wie Azure Machine Learning, Power BI und Azure Synapse Analytics zusammen und ermöglicht so durchgängige Datenanalyse und Visualisierung.
- Kosteneffizienz: Pay-as-you-go-Preise und eine skalierbare Infrastruktur sorgen dafür, dass Unternehmen nur das bezahlen, was sie tatsächlich nutzen – attraktiv für Organisationen jeder Größe.
- Flexibilität und Skalierbarkeit: Ob verwaltete Endpunkte für eine schnelle Integration oder containerbasierte Dienste für mehr Kontrolle – der Azure AI Language Service bietet die nötige Flexibilität für unterschiedlichste Anforderungen. Die Skalierbarkeit stellt sicher, dass workloads jeder Größenordnung bewältigt werden – vom kleinen Start-up bis zum Großunternehmen.
- Sicherheit auf Enterprise-Niveau: Die robusten Sicherheits- und Compliance-Funktionen von Azure schützen Ihre Daten in jedem Schritt.
Beispielhafte Anwendungsfälle
- Sentimentanalyse: Wer die Stimmung hinter Kundenfeedback, Bewertungen oder Social-Media-Beiträgen versteht, erkennt Verbesserungspotenziale, kann die Kundenzufriedenheit messen und Strategien gezielt auf bessere Kundenerlebnisse ausrichten.
- Schlüsselbegriff-Extraktion: Werden Schlüsselbegriffe aus Dokumenten, E-Mails oder Support-Tickets extrahiert, lassen sich Hauptthemen, Trends und Pain Points schnell identifizieren. Das verkürzt Reaktionszeiten, verbessert die Ressourcenverteilung und liefert eine fundiertere Entscheidungsgrundlage.
- Spracherkennung: Die automatische Erkennung der Textsprache hilft Unternehmen, mehrsprachige Workflows zu verschlanken, die Kommunikation mit globalen Zielgruppen zu verbessern und Inhalte passend zu lokalisieren.
Loslegen
Von Kostenoptimierung über Infrastrukturautomatisierung bis hin zu Security-Hardening und Cloud-Architekturdesign: DoiT International bringt umfassende Expertise in zahlreichen Cloud-Bereichen mit. Wenn Sie erfahren möchten, wie DoiT Sie bei der KI-Einführung und der Modernisierung weiterer Bereiche Ihrer Cloud-Infrastruktur unterstützen kann, kontaktieren Sie uns gerne hier und erfahren Sie mehr über unsere Cloud-Engineering-Lösungen.