Erstellen eines KI-fähigen Suchdienstes mit Microsoft Azure
Inhaltsübersicht
- Einleitung
- Architektur des KI-fähigen Suchdienstes
- Ablauf-Diagramm zur Erstellung des KI-Suchdienstes
- Vorbereitung der Umgebung
- Schritt-für-Schritt Anleitung
- Fazit und Ausblick
- Zusätzliche Ressourcen
Einleitung
In diesem Artikel beschreibe ich einen Leitfaden zur Erstellung eines KI-fähigen Suchdienst von Microsoft Azure mit Hilfe von Terminal, der Azure CLI und des Azure REST-Endpunkts.
Der Suchdienst von Microsoft Azure ermöglicht die Nutzung fortschrittlicher KI-Modelle, um präzisere und personalisierte Suchergebnisse zu liefern. Die Vorteile von Microsoft liegen in der nahtlosen Integration in weit verbreitete Tools wie Office 365, sowie in der hohen Datensicherheit und der kontinuierlichen Weiterentwicklung durch innovative KI-Technologien.
Ein solcher Suchdienst kann in einem Unternehmensumfeld dazu verwendet werden, interne Dokumente und Informationen schnell zu durchsuchen und Mitarbeitern schnelleren Zugriff auf relevante Daten zu ermöglichen. In der E-Commerce Branche kann der Dienst beispielsweise personalisierte Produktempfehlungen basierend auf dem Suchverhalten der Kunden liefern, was die Umwandlungsrate (engl. Conversion-Rate) erhöhen und die Kundenzufriedenheit steigern kann. In der Gesundheitsbranche kann ein Suchdienst medizinische Fachkräften bei der schnelleren Auffindung von Patientenakten und relevanten Begleitmaterial unterstützen.
Vorteilhaft bei der Erstellung eines Suchdienstes über das Terminal sind beispielsweise das Automatisierungspotenzial durch Skripting, die höhere Flexibilität bei der Konfiguration sowie die Integration in CI/CD-Pipelines, was die Bereitstellung und Verwaltung in größeren Projekten optimiert.
Architekturdiagramm des KI-fähigen Suchdienstes
Im folgenden Architekturdiagramm werden die grundlegenden Komponenten des KI-fähigen Suchdienstes dargestellt, sowie die Möglichkeit zur Integration von KI-Funktionalität hervorgehoben.
Der Suchdienst besteht aus 3 Hauptkomponenten:
- Suchdienst-Komponenten: Dieser Bereich zeigt die Kernbestandteile des Suchdienstes, einschließlich des Azure Suchdienstes, des Such-Indexers und der indizierten Suchdaten. Der Such-Indexer erstellt die indizierten Daten und verwendet eine Datenquelle, die in einem Speicher-Container gespeichert ist.
- Speicherkonto: Hier wird der Speicher-Container dargestellt, der die Rohdaten enthält, die für den Suchdienst verwendet werden. Diese Struktur verdeutlicht, wie die Daten organisiert sind und wie sie für die Indizierung zugänglich sind.
- Skillsets: Diese Subgruppe stellt die Möglichkeit dar, den Suchdienst mit KI-Skills zu erweitern. Beispielhaft sind im Diagramm die Skills Bildanalyse und Entitätserkennung enthalten.
Die Interaktion des Benutzers mit dem Suchdienst erfolgt durch Suchanfragen an den Azure Suchdienst.
Ablaufdiagramm zur Erstellung des KI-fähigen Suchdienstes
Das folgende Ablaufdiagramm unterteilt die relevanten Schritte dieses Leitfadens in drei Phasen zusammen, die die Einrichtung von Ressourcen, die Datenvorbereitung, sowie Konfiguration des Suchdienste durchführen.
Abschließend kann der Suchdienst mithilfe der Testdaten auf seine Funktionalität über das Azure Portal getestet werden, worauf hier nicht näher eingegangen wird.
Vorbereitung der Umgebung
Voraussetzung für die Durchführung der Schritt-für-Schritt Anleitung ist ein Azure-Konto sowie grundlegende Kenntnisse in der Nutzung der Azure-Platform. Zudem werden Berechtigungen benötigt um eine Ressourcengruppe, einen Azure Suchdienst und ein Speicherkonto einzurichten.
Zuallererst sind die erwarteten Umgebungsvariablen zu definieren. Eine entsprechende Vorlage ist in der Datei .env
zu finden.
Anschließend kann das Skript 01_ensure_prerequisites.sh
ausgeführt werden das sicherstellt, dass die Rolle Search Service Contributor
dem Azure-Konto zugewiesen ist und eine Active-Directory basierte Anmeldung möglich ist.
Als nächstes ist eine Authentifizierung mit diesem Azure-Konto über die Azure CLI durchzuführen das mit dem folgenden Befehl erfolgen kann:
az login
Schritt-für-Schritt-Anleitung
1. Ressourcenerstellung
Im ersten Schritt wird eine Ressourcengruppe erstellt, die alle für den Suchdienst erstellten Azure-Ressourcen organisiert. Dies kann über die Azure CLI mit dem folgenden Befehl efolgen:
az group create --name $RESOURCE_GROUP --location $LOCATION
Nun kann der Suchdienst mit folgenden Befehl erstellt werden:
az search service create \
--name $SEARCH_SERVICE_NAME \
--resource-group $RESOURCE_GROUP \
--sku $SEARCH_SKU \
--location $LOCATION
Um Daten die für den Suchdienst zu speichern, werden ein Azure Speicherkonto sowie ein Speicher-Container benötigt. Dies wird mit den folgenen Befehlsblock durchgeführt:
# Speicherkonto anlegen
az storage account create \
--name $STORAGE_ACCOUNT_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--sku Standard_LRS
# Speicherkonto's Zugriffsschlüssel holen
STORAGE_KEY=$(az storage account keys list --account-name
# Speicher-Container anlegen
$STORAGE_ACCOUNT_NAME --resource-group $RESOURCE_GROUP --query [0].value -o tsv)
az storage container create \
--name $CONTAINER_NAME \
--account-name $STORAGE_ACCOUNT_NAME \
--account-key $STORAGE_KEY
2. Datenvorbereitung
Um den Suchdienst zu testen werden die Azure Beispieldaten zu Hotelbewertungen verwendet. Mit dem folgenden Befehlsblock werden die Beispiel-Hoteldaten sowie eine entsprechende Beispiel-Indexdefinition mit curl
heruntergeladen die die Datenstruktur beschreibt, und anschließend diese in den neu angelegten Speicher-Container hochgeladen:
# Herunterladen der Beispieldaten und der entsprechenden Indexdefinition
curl -o $EXAMPLE_DATA_FILENAME $EXAMPLE_DATA_URL
curl -o $EXAMPLE_DATA_INDEX_FILENAME $EXAMPLE_DATA_INDEX_URL
# Hochladen der Hotel-Daten in den Speicher-Container:
az storage blob upload \
--account-name $STORAGE_ACCOUNT_NAME \
--account-key $STORAGE_KEY \
--container-name $CONTAINER_NAME \
--file $EXAMPLE_DATA_FILENAME \
--name $EXAMPLE_DATA_FILENAME \
--overwrite # erlauben die Datei zu überschreiben, falls sie bereits existiert
3. Suchdienst konfigurieren
Nun wird noch eine Datenquelle angelegt, die auf unseren Storage-Container mit den relevanten Daten verweist. Da der Befehl aktuell von Azure CLI nicht unterstützt wird, erfolgt das Anlegen über die Azure REST API, für dessen Nutzung ein Zugriffstoken benötigt wird:
# Zugriffstoken ermitteln
ACCESS_TOKEN=$(az account get-access-token --resource https://search.azure.com --query accessToken -o tsv)
# Erstellen einer Datenquelle mit der POST-Anfrage
DATA_SOURCE_PAYLOAD=$(cat <<EOF
{
"name": "$DATA_SOURCE_NAME",
"description": "Data source for hotel data",
"type": "azureblob",
"credentials": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=$STORAGE_ACCOUNT_NAME;AccountKey=$STORAGE_KEY;EndpointSuffix=core.windows.net"
},
"container": {
"name": "$CONTAINER_NAME"
}
}
EOF
)
curl -X POST \
"https://$SEARCH_SERVICE_NAME.search.windows.net/datasources?api-version=2021-04-30-Preview" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d "$DATA_SOURCE_PAYLOAD"
Anschließend wird ein Suchindex erstellt, der die Datenstruktur für den Suchdient definiert:
curl -X POST \
"https://$SEARCH_SERVICE_NAME.search.windows.net/indexes?api-version=2021-04-30-Preview" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d @$EXAMPLE_DATA_INDEX_FILENAME
Zuletzt wird ein Indexer erstellt und ausgeführt, der die Daten im Suchdienst indiziert und damit deren Durchsuchbarkeit gewährleistet:
# Erstellen des Indexers
curl -X POST \
"https://$SEARCH_SERVICE_NAME.search.windows.net/indexers?api-version=2021-04-30-Preview" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d "{
\"name\": \"$INDEXER_NAME\",
\"dataSourceName\": \"$DATA_SOURCE_NAME\",
\"targetIndexName\": \"$INDEX_NAME\"
}"
# Ausführen des Indexers
curl -X POST \
"https://$SEARCH_SERVICE_NAME.search.windows.net/indexers/$INDEXER_NAME/run?api-version=2021-04-30-Preview" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"
Mit diesen Schritten lässt sich ein KI-fähiger Suchdienst in Microsoft Azure erstellen. Alle Schritte wurden über das Terminal, die Azure CLI und die Azure REST API durchgeführt.
Das GitHub Repository mit den entsprechenden Skripten finden Sie hier.
Fazit und Ausblick
Mit der Erstellung eines KI-fähigen Suchdienstes in Microsoft Azure ist eine erste Grundlage für personalisierte Suchlösungen geschaffen. Die hier beschriebenen Schritten präsentieren einige der technischen Grundlagen und geben einen Einblick in die Azure CLI und REST-API die es erlauben skript-basierte und automatisierbare Suchlösungen mit vielseitigen Einsatzmöglichkeiten zu erstellen.
Zusätzliche Ressourcen
- Azure-Portal - Zugriff auf das Azure-Management-Portal.
- Installation der Azure CLI unter Linux
- Azure KI Suche - Vollständig verwalteter Suchdienst für KI-gestützte Suchfunktionen.
- Azure Storage - Skalierbare Speicherlösungen für Daten, Dateien und Blob
- Azure Active Directory (AAD) - Identitäts- und Zugriffsmanagement für den sicheren Zugriff auf Ressourcen.
- Skillset-Konzepte in Azure KI Suche