Freigeben über


Erstellen einer Blob-Wissensquelle aus Azure Blob Storage und ADLS Gen2

Hinweis

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel (SLA) bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Verwenden Sie eine Blob-Wissensquelle, um Azure-Blob-Inhalte in einer agentischen Abrufpipeline zu indizieren und abzufragen. Wissensquellen werden unabhängig erstellt, in einer Wissensbasis referenziert und als Erdungsdaten verwendet, wenn ein Agent oder Chatbot eine Abrufaktion zur Abfragezeit aufruft.

Im Gegensatz zu einer Suchindex-Wissensquelle, die einen vorhandenen und qualifizierten Index angibt, gibt eine BLOB-Wissensquelle eine externe Datenquelle, Modelle und Eigenschaften an, um automatisch die folgenden Azure AI Search-Objekte zu generieren:

  • Eine Datenquelle, die einen Blob-Container darstellt.
  • Ein Fähigkeiten-Set, das multimodale Inhalte aus dem Container in Segmente unterteilt und optional vektorisiert.
  • Ein Index, der angereicherte Inhalte speichert und die Kriterien für den agentischen Abruf erfüllt.
  • Ein Indexer, der die vorherigen Objekte verwendet, um die Indizierungs- und Anreicherungspipeline zu steuern.

Hinweis

Wenn der Benutzerzugriff auf der Dokumentebene (BLOB) in Azure Storage angegeben ist, kann eine Wissensquelle Berechtigungsmetadaten an indizierte Inhalte in Azure AI Search weiterleiten. Weitere Informationen finden Sie unter ADLS Gen2-Berechtigungsmetadaten oder Blob-RBAC-Bereiche.

Voraussetzungen

Überprüfen auf vorhandene Wissensquellen

Eine Wissensquelle ist ein wiederverwendbares Objekt der obersten Ebene. Das Wissen über vorhandene Wissensquellen ist hilfreich, um neue Objekte wiederzuverwenden oder zu benennen.

Führen Sie den folgenden Code aus, um Wissensquellen nach Namen und Typ auflisten.

// List knowledge sources by name and type
using Azure.Search.Documents.Indexes;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeSources = indexClient.GetKnowledgeSourcesAsync();

Console.WriteLine("Knowledge Sources:");

await foreach (var ks in knowledgeSources)
{
    Console.WriteLine($"  Name: {ks.Name}, Type: {ks.GetType().Name}");
}

Sie können auch eine einzelne Wissensquelle anhand des Namens zurück, um ihre JSON-Definition zu überprüfen.

using Azure.Search.Documents.Indexes;
using System.Text.Json;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);

// Specify the knowledge source name to retrieve
string ksNameToGet = "earth-knowledge-source";

// Get its definition
var knowledgeSourceResponse = await indexClient.GetKnowledgeSourceAsync(ksNameToGet);
var ks = knowledgeSourceResponse.Value;

// Serialize to JSON for display
var jsonOptions = new JsonSerializerOptions 
{ 
    WriteIndented = true,
    DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never
};
Console.WriteLine(JsonSerializer.Serialize(ks, ks.GetType(), jsonOptions));

Der folgende JSON-Code ist eine Beispielantwort für eine Blob-Wissensquelle.

{
  "name": "my-blob-ks",
  "kind": "azureBlob",
  "description": "A sample blob knowledge source.",
  "encryptionKey": null,
  "azureBlobParameters": {
    "connectionString": "<REDACTED>",
    "containerName": "blobcontainer",
    "folderPath": null,
    "isADLSGen2": false,
    "ingestionParameters": {
      "disableImageVerbalization": false,
      "ingestionPermissionOptions": [],
      "contentExtractionMode": "standard",
      "identity": null,
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<REDACTED>",
          "deploymentId": "text-embedding-3-large",
          "apiKey": "<REDACTED>",
          "modelName": "text-embedding-3-large",
          "authIdentity": null
        }
      },
      "chatCompletionModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<REDACTED>",
          "deploymentId": "gpt-5-mini",
          "apiKey": "<REDACTED>",
          "modelName": "gpt-5-mini",
          "authIdentity": null
        }
      },
      "ingestionSchedule": null,
      "assetStore": null,
      "aiServices": {
        "uri": "<REDACTED>",
        "apiKey": "<REDACTED>"
      }
    },
    "createdResources": {
      "datasource": "my-blob-ks-datasource",
      "indexer": "my-blob-ks-indexer",
      "skillset": "my-blob-ks-skillset",
      "index": "my-blob-ks-index"
    }
  }
}

Hinweis

Vertrauliche Informationen sind redigiert. Die generierten Ressourcen werden am Ende der Antwort angezeigt.

Erstellen einer Wissensquelle

Führen Sie den folgenden Code aus, um eine Blob-Wissensquelle zu erstellen.

// Create a blob knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

var chatCompletionParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiGptDeployment,
    ModelName = aoaiGptModel
};

var embeddingParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiEmbeddingDeployment,
    ModelName = aoaiEmbeddingModel
};

var ingestionParams = new KnowledgeSourceIngestionParameters
{
    DisableImageVerbalization = false,
    ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
    EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
    {
        AzureOpenAIParameters = embeddingParams
    }
};

var blobParams = new AzureBlobKnowledgeSourceParameters(
    connectionString: connectionString,
    containerName: containerName
)
{
    IsAdlsGen2 = false,
    IngestionParameters = ingestionParams
};

var knowledgeSource = new AzureBlobKnowledgeSource(
    name: "my-blob-ks",
    azureBlobParameters: blobParams
)
{
    Description = "This knowledge source pulls from a blob storage container."
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");

Quellspezifische Eigenschaften

Sie können die folgenden Eigenschaften übergeben, um eine BLOB-Wissensquelle zu erstellen.

Name Description Typ Bearbeitbar Erforderlich
name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss, und befolgen Sie die Benennungsrichtlinien für Objekte in Azure AI Search. String Nein Yes
Description Eine Beschreibung der Wissensquelle. String Yes Nein
encryptionKey Ein vom Kunden verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen sowohl in der Wissensquelle als auch in den generierten Objekten. Object Yes Nein
chatCompletionParams Parameter, die spezifisch für Chat-Vervollständigungsmodelle bei der Abfrageplanung und optionalen Antwortsynthese genutzt werden, wenn der Abrufaufwand niedrig oder mittel ist. Object Nein
embeddingParams Parameter, die speziell für einbettende Modelle verwendet werden, wenn Sie Blöcke von Inhalten vektorisieren möchten. Object Nein
azureBlobParameters Spezifische Parameter für Blob-Wissensquellen: connectionString, containerName, , folderPathund isAdlsGen2. Object Nein
connectionString Eine schlüsselbasierte Verbindungszeichenfolge oder, wenn Sie eine verwaltete Identität verwenden, die Ressourcen-ID. String Nein Yes
containerName Den Namen des Blobspeichercontainers String Nein Yes
folderPath Ein Ordner innerhalb des Containers. String Nein Nein
isAdlsGen2 Der Standardwert lautet False. Legen Sie True fest, wenn Sie ein ADLS Gen2-Speicherkonto verwenden. Boolean Nein Nein

ingestionParameters Eigenschaften

Nur für indizierte Wissensquellen können Sie die folgenden ingestionParameters Eigenschaften übergeben, um zu steuern, wie Inhalte aufgenommen und verarbeitet werden.

Name Description Typ Bearbeitbar Erforderlich
Identity Eine verwaltete Identität , die im generierten Indexer verwendet werden soll. Object Yes Nein
DisableImageVerbalization Aktiviert oder deaktiviert die Verwendung der Bildverbalisation. Der Standardwert ist False, was die Bildverbaliserung aktiviert. Setzen Sie True auf, um die Bildverbalisierung zu deaktivieren. Boolean Nein Nein
ChatCompletionModel Ein Chat-Vervollständigungsmodell, das Bilder verbalisiert oder Inhalte extrahiert. Unterstützte Modelle sind gpt-4o, , gpt-4o-minigpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, und gpt-5-minigpt-5-nano. Die GenAI Prompt-Fähigkeit wird in das generierte Skillset aufgenommen. Das Festlegen dieses Parameters erfordert auch, dass disable_image_verbalization auf False gesetzt wird. Object Nur api_key und deployment_name können bearbeitet werden Nein
EmbeddingModel Ein Texteinbettungsmodell, das Text- und Bildinhalte während der Indizierung und zur Abfragezeit vektorisiert. Unterstützte Modelle sind text-embedding-ada-002, text-embedding-3-smallund text-embedding-3-large. Die Azure OpenAI Embedding-Fähigkeit wird in das generierte Skillset aufgenommen, und der Azure OpenAI-Vektorizer wird in den generierten Index aufgenommen. Object Nur api_key und deployment_name können bearbeitet werden Nein
ContentExtractionMode Steuert, wie Inhalte aus Dateien extrahiert werden. Der Standard ist minimal, das die Standardinhaltsextraktion für Text und Bilder verwendet. Wird auf standard gesetzt, um erweitertes Dokumentanalysieren und Segmentieren mithilfe der Azure Content Understanding-Fähigkeit zu nutzen, die in das generierte Skillset aufgenommen wird. Nur für standard können die Parameter AiServices und AssetStore angegeben werden. String Nein Nein
AiServices Eine Microsoft Foundry-Ressource für den Zugriff auf Azure Content Understanding in Foundry Tools. Das Festlegen dieses Parameters erfordert, dass ContentExtractionMode auf standard gesetzt ist. Object Nur api_key bearbeitbar Yes
IngestionSchedule Fügt dem generierten Indexer Planungsinformationen hinzu. Sie können später auch einen Zeitplan hinzufügen , um die Datenaktualisierung zu automatisieren. Object Yes Nein
IngestionPermissionOptions Die Berechtigungen auf Dokumentebene, um aus ausgewählten Wissensquellen Daten zu extrahieren: entweder ADLS Gen2 oder indiziertes SharePoint. Wenn Sie user_ids, group_ids oder rbac_scope angeben, sind im generierten ADLS Gen2-Indexer oder SharePoint-Indexer die aufgenommenen Berechtigungen enthalten. Array Nein Nein

Überprüfen des Erfassungsstatus

Führen Sie den folgenden Code aus, um den Fortschritt und den Zustand der Datenübernahme zu überwachen, einschließlich des Indexerstatus für Wissensquellen, die eine Indexerpipeline generieren und einen Suchindex auffüllen.

// Get knowledge source ingestion status
using Azure.Search.Documents.Indexes;
using System.Text.Json;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

// Get the knowledge source status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;

// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);

Eine Antwort für eine Anforderung, die Aufnahmeparameter enthält und aktiv Inhalte erfasst, kann wie im folgenden Beispiel aussehen.

{ 
  "synchronizationStatus": "active", // creating, active, deleting 
  "synchronizationInterval" : "1d", // null if no schedule 
  "currentSynchronizationState" : { // spans multiple indexer "runs" 
    "startTime": "2025-10-27T19:30:00Z", 
    "itemUpdatesProcessed": 1100, 
    "itemsUpdatesFailed": 100, 
    "itemsSkipped": 1100, 
  }, 
  "lastSynchronizationState" : {  // null on first sync 
    "startTime": "2025-10-27T19:30:00Z", 
    "endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve 
    "itemUpdatesProcessed": 1100, 
    "itemsUpdatesFailed": 100, 
    "itemsSkipped": 1100, 
  }, 
  "statistics": {  // null on first sync 
    "totalSynchronization": 25, 
    "averageSynchronizationDuration": "00:15:20", 
    "averageItemsProcessedPerSynchronization" : 500 
  } 
} 

Überprüfen der erstellten Objekte

Wenn Sie eine Blob-Wissensquelle erstellen, erstellt Ihr Suchdienst auch einen Indexer, einen Index, ein Skillset und eine Datenquelle. Es wird nicht empfohlen, diese Objekte zu bearbeiten, da ein Fehler oder eine Inkompatibilität die Pipeline unterbrechen kann.

Nachdem Sie eine Wissensquelle erstellt haben, werden in der Antwort die erstellten Objekte aufgelistet. Diese Objekte werden gemäß einer festen Vorlage erstellt, und ihre Namen basieren auf dem Namen der Wissensquelle. Sie können die Objektnamen nicht ändern.

Wir empfehlen die Verwendung des Azure-Portals zur Überprüfung der Ausgabeerstellung. Der Workflow lautet:

  1. Überprüfen Sie den Indexer auf Erfolgs- oder Fehlermeldungen. Hier werden Verbindungs- oder Kontingentfehler angezeigt.
  2. Überprüfen Sie den Index auf durchsuchbare Inhalte. Verwenden Sie den Such-Explorer, um Abfragen auszuführen.
  3. Überprüfen Sie die Kompetenzen, um zu erfahren, wie Ihre Inhalte aufgeteilt und optional vektorisiert werden.
  4. Überprüfen Sie die Datenquelle auf Verbindungsdetails. Unser Beispiel verwendet API-Schlüssel aus Gründen der Einfachheit, Aber Sie können Microsoft Entra-ID für die Authentifizierung und rollenbasierte Zugriffssteuerung für die Autorisierung verwenden.

Zuweisen zu einer Wissensbasis

Wenn Sie mit der Wissensquelle zufrieden sind, fahren Sie mit dem nächsten Schritt fort: Geben Sie die Wissensquelle in einer Wissensbasis an.

Nachdem die Knowledge Base konfiguriert wurde, verwenden Sie die Abrufaktion , um die Wissensquelle abzufragen.

Löschen einer Wissensquelle

Bevor Sie eine Wissensquelle löschen können, müssen Sie alle Knowledge Basen löschen, die darauf verweisen, oder die Knowledge Base-Definition aktualisieren, um den Verweis zu entfernen. Für Wissensquellen, die eine Index- und Indexerpipeline generieren, werden auch alle generierten Objekte gelöscht. Wenn Sie jedoch einen vorhandenen Index zum Erstellen einer Wissensquelle verwendet haben, wird Ihr Index nicht gelöscht.

Wenn Sie versuchen, eine verwendete Wissensquelle zu löschen, schlägt die Aktion fehl und gibt eine Liste der betroffenen Wissensdatenbanken zurück.

So löschen Sie eine Wissensquelle:

  1. Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.

    using Azure.Search.Documents.Indexes;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    var knowledgeBases = indexClient.GetKnowledgeBasesAsync();
    
    Console.WriteLine("Knowledge Bases:");
    
    await foreach (var kb in knowledgeBases)
    {
        Console.WriteLine($"  - {kb.Name}");
    }
    

    Eine Beispielantwort könnte wie folgt aussehen:

     Knowledge Bases:
       - earth-knowledge-base
       - hotels-sample-knowledge-base
       - my-demo-knowledge-base
    
  2. Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.

    using Azure.Search.Documents.Indexes;
    using System.Text.Json;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    // Specify the knowledge base name to retrieve
    string kbNameToGet = "earth-knowledge-base";
    
    // Get a specific knowledge base definition
    var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet);
    var kb = knowledgeBaseResponse.Value;
    
    // Serialize to JSON for display
    string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true });
    Console.WriteLine(json);
    

    Eine Beispielantwort könnte wie folgt aussehen:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie die Wissensbasis , um die Wissensquelle zu entfernen, wenn Sie über mehrere Quellen verfügen. In diesem Beispiel wird das Löschen gezeigt.

    using Azure.Search.Documents.Indexes;
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName);
    System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");
    
  4. Löschen Sie die Wissensquelle.

    await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName);
    System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
    

Hinweis

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel (SLA) bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Verwenden Sie eine Blob-Wissensquelle, um Azure-Blob-Inhalte in einer agentischen Abrufpipeline zu indizieren und abzufragen. Wissensquellen werden unabhängig erstellt, in einer Wissensbasis referenziert und als Erdungsdaten verwendet, wenn ein Agent oder Chatbot eine Abrufaktion zur Abfragezeit aufruft.

Im Gegensatz zu einer Suchindex-Wissensquelle, die einen vorhandenen und qualifizierten Index angibt, gibt eine BLOB-Wissensquelle eine externe Datenquelle, Modelle und Eigenschaften an, um automatisch die folgenden Azure AI Search-Objekte zu generieren:

  • Eine Datenquelle, die einen Blob-Container darstellt.
  • Ein Fähigkeiten-Set, das multimodale Inhalte aus dem Container in Segmente unterteilt und optional vektorisiert.
  • Ein Index, der angereicherte Inhalte speichert und die Kriterien für den agentischen Abruf erfüllt.
  • Ein Indexer, der die vorherigen Objekte verwendet, um die Indizierungs- und Anreicherungspipeline zu steuern.

Hinweis

Wenn der Benutzerzugriff auf der Dokumentebene (BLOB) in Azure Storage angegeben ist, kann eine Wissensquelle Berechtigungsmetadaten an indizierte Inhalte in Azure AI Search weiterleiten. Weitere Informationen finden Sie unter ADLS Gen2-Berechtigungsmetadaten oder Blob-RBAC-Bereiche.

Voraussetzungen

Überprüfen auf vorhandene Wissensquellen

Eine Wissensquelle ist ein wiederverwendbares Objekt der obersten Ebene. Das Wissen über vorhandene Wissensquellen ist hilfreich, um neue Objekte wiederzuverwenden oder zu benennen.

Führen Sie den folgenden Code aus, um Wissensquellen nach Namen und Typ auflisten.

# List knowledge sources by name and type
import requests
import json

endpoint = "{search_url}/knowledgesources"
params = {"api-version": "2025-11-01-preview", "$select": "name, kind"}
headers = {"api-key": "{api_key}"}

response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))

Sie können auch eine einzelne Wissensquelle anhand des Namens zurück, um ihre JSON-Definition zu überprüfen.

# Get a knowledge source definition
import requests
import json

endpoint = "{search_url}/knowledgesources/{knowledge_source_name}"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}

response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))

Der folgende JSON-Code ist eine Beispielantwort für eine Blob-Wissensquelle.

{
  "name": "my-blob-ks",
  "kind": "azureBlob",
  "description": "A sample blob knowledge source.",
  "encryptionKey": null,
  "azureBlobParameters": {
    "connectionString": "<REDACTED>",
    "containerName": "blobcontainer",
    "folderPath": null,
    "isADLSGen2": false,
    "ingestionParameters": {
      "disableImageVerbalization": false,
      "ingestionPermissionOptions": [],
      "contentExtractionMode": "standard",
      "identity": null,
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<REDACTED>",
          "deploymentId": "text-embedding-3-large",
          "apiKey": "<REDACTED>",
          "modelName": "text-embedding-3-large",
          "authIdentity": null
        }
      },
      "chatCompletionModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<REDACTED>",
          "deploymentId": "gpt-5-mini",
          "apiKey": "<REDACTED>",
          "modelName": "gpt-5-mini",
          "authIdentity": null
        }
      },
      "ingestionSchedule": null,
      "assetStore": null,
      "aiServices": {
        "uri": "<REDACTED>",
        "apiKey": "<REDACTED>"
      }
    },
    "createdResources": {
      "datasource": "my-blob-ks-datasource",
      "indexer": "my-blob-ks-indexer",
      "skillset": "my-blob-ks-skillset",
      "index": "my-blob-ks-index"
    }
  }
}

Hinweis

Vertrauliche Informationen sind redigiert. Die generierten Ressourcen werden am Ende der Antwort angezeigt.

Erstellen einer Wissensquelle

Führen Sie den folgenden Code aus, um eine Blob-Wissensquelle zu erstellen.

# Create a blob knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

knowledge_source = AzureBlobKnowledgeSource(
    name = "my-blob-ks",
    description = "This knowledge source pulls from a blob storage container.",
    encryption_key = None,
    azure_blob_parameters = AzureBlobKnowledgeSourceParameters(
        connection_string = "blob_connection_string",
        container_name = "blob_container_name",
        folder_path = None,
        is_adls_gen2 = False,
        ingestion_parameters = KnowledgeSourceIngestionParameters(
            identity = None,
            disable_image_verbalization = False,
            chat_completion_model = KnowledgeBaseAzureOpenAIModel(
                azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
                    # TRIMMED FOR BREVITY
                )
            ),
            embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
                azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
                    # TRIMMED FOR BREVITY
                )
            ),
            content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
            ingestion_schedule = None,
            ingestion_permission_options = None
        )
    )
)

index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")

Quellspezifische Eigenschaften

Sie können die folgenden Eigenschaften übergeben, um eine BLOB-Wissensquelle zu erstellen.

Name Description Typ Bearbeitbar Erforderlich
name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss, und befolgen Sie die Benennungsrichtlinien für Objekte in Azure AI Search. String Nein Yes
description Eine Beschreibung der Wissensquelle. String Yes Nein
encryption_key Ein vom Kunden verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen sowohl in der Wissensquelle als auch in den generierten Objekten. Object Yes Nein
azure_blob_parameters Spezifische Parameter für Blob-Wissensquellen: connection_string, container_name, , folder_pathund is_adls_gen2. Object Nein
connection_string Eine schlüsselbasierte Verbindungszeichenfolge oder, wenn Sie eine verwaltete Identität verwenden, die Ressourcen-ID. String Nein Yes
container_name Den Namen des Blobspeichercontainers String Nein Yes
folder_path Ein Ordner innerhalb des Containers. String Nein Nein
is_adls_gen2 Der Standardwert lautet False. Legen Sie True fest, wenn Sie ein ADLS Gen2-Speicherkonto verwenden. Boolean Nein Nein

ingestionParameters Eigenschaften

Nur für indizierte Wissensquellen können Sie die folgenden ingestionParameters Eigenschaften übergeben, um zu steuern, wie Inhalte aufgenommen und verarbeitet werden.

Name Description Typ Bearbeitbar Erforderlich
identity Eine verwaltete Identität , die im generierten Indexer verwendet werden soll. Object Yes Nein
disable_image_verbalization Aktiviert oder deaktiviert die Verwendung der Bildverbalisation. Der Standardwert ist False, was die Bildverbaliserung aktiviert. Setzen Sie True auf, um die Bildverbalisierung zu deaktivieren. Boolean Nein Nein
chat_completion_model Ein Chat-Vervollständigungsmodell, das Bilder verbalisiert oder Inhalte extrahiert. Unterstützte Modelle sind gpt-4o, , gpt-4o-minigpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, und gpt-5-minigpt-5-nano. Die GenAI Prompt-Fähigkeit wird in das generierte Skillset aufgenommen. Das Festlegen dieses Parameters erfordert auch, dass disable_image_verbalization auf False gesetzt wird. Object Nur api_key und deployment_name können bearbeitet werden Nein
embedding_model Ein Texteinbettungsmodell, das Text- und Bildinhalte während der Indizierung und zur Abfragezeit vektorisiert. Unterstützte Modelle sind text-embedding-ada-002, text-embedding-3-smallund text-embedding-3-large. Die Azure OpenAI Embedding-Fähigkeit wird in das generierte Skillset aufgenommen, und der Azure OpenAI-Vektorizer wird in den generierten Index aufgenommen. Object Nur api_key und deployment_name können bearbeitet werden Nein
content_extraction_mode Steuert, wie Inhalte aus Dateien extrahiert werden. Der Standard ist minimal, das die Standardinhaltsextraktion für Text und Bilder verwendet. Wird auf standard gesetzt, um erweitertes Dokumentanalysieren und Segmentieren mithilfe der Azure Content Understanding-Fähigkeit zu nutzen, die in das generierte Skillset aufgenommen wird. Nur für standard können die Parameter ai_services und asset_store angegeben werden. String Nein Nein
ai_services Eine Microsoft Foundry-Ressource für den Zugriff auf Azure Content Understanding in Foundry Tools. Das Festlegen dieses Parameters erfordert, dass content_extraction_mode auf standard gesetzt ist. Object Nur api_key bearbeitbar Yes
asset_store Ein BLOB-Container zum Speichern extrahierter Bilder. Das Festlegen dieses Parameters erfordert, dass content_extraction_mode auf standard gesetzt ist. Object Nein Nein
ingestion_schedule Fügt dem generierten Indexer Planungsinformationen hinzu. Sie können später auch einen Zeitplan hinzufügen , um die Datenaktualisierung zu automatisieren. Object Yes Nein
ingestion_permission_options Die Berechtigungen auf Dokumentebene, um aus ausgewählten Wissensquellen Daten zu extrahieren: entweder ADLS Gen2 oder indiziertes SharePoint. Wenn Sie user_ids, group_ids oder rbac_scope angeben, sind im generierten ADLS Gen2-Indexer oder SharePoint-Indexer die aufgenommenen Berechtigungen enthalten. Array Nein Nein

Überprüfen des Erfassungsstatus

Führen Sie den folgenden Code aus, um den Einleseprozess und den Zustand zu überwachen, einschließlich des Indexerstatus für Wissensquellen, die eine Indexerpipeline generieren und einen Suchindex befüllen.

# Check knowledge source ingestion status
import requests
import json

endpoint = "{search_url}/knowledgesources/{knowledge_source_name}/status"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}

response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))

Eine Antwort für eine Anforderung, die Aufnahmeparameter enthält und aktiv Inhalte erfasst, kann wie im folgenden Beispiel aussehen.

{ 
  "synchronizationStatus": "active", // creating, active, deleting 
  "synchronizationInterval" : "1d", // null if no schedule 
  "currentSynchronizationState" : { // spans multiple indexer "runs" 
    "startTime": "2025-10-27T19:30:00Z", 
    "itemUpdatesProcessed": 1100, 
    "itemsUpdatesFailed": 100, 
    "itemsSkipped": 1100, 
  }, 
  "lastSynchronizationState" : {  // null on first sync 
    "startTime": "2025-10-27T19:30:00Z", 
    "endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve 
    "itemUpdatesProcessed": 1100, 
    "itemsUpdatesFailed": 100, 
    "itemsSkipped": 1100, 
  }, 
  "statistics": {  // null on first sync 
    "totalSynchronization": 25, 
    "averageSynchronizationDuration": "00:15:20", 
    "averageItemsProcessedPerSynchronization" : 500 
  } 
} 

Überprüfen der erstellten Objekte

Wenn Sie eine Blob-Wissensquelle erstellen, erstellt Ihr Suchdienst auch einen Indexer, einen Index, ein Skillset und eine Datenquelle. Es wird nicht empfohlen, diese Objekte zu bearbeiten, da ein Fehler oder eine Inkompatibilität die Pipeline unterbrechen kann.

Nachdem Sie eine Wissensquelle erstellt haben, werden in der Antwort die erstellten Objekte aufgelistet. Diese Objekte werden gemäß einer festen Vorlage erstellt, und ihre Namen basieren auf dem Namen der Wissensquelle. Sie können die Objektnamen nicht ändern.

Wir empfehlen die Verwendung des Azure-Portals zur Überprüfung der Ausgabeerstellung. Der Workflow lautet:

  1. Überprüfen Sie den Indexer auf Erfolgs- oder Fehlermeldungen. Hier werden Verbindungs- oder Kontingentfehler angezeigt.
  2. Überprüfen Sie den Index auf durchsuchbare Inhalte. Verwenden Sie den Such-Explorer, um Abfragen auszuführen.
  3. Überprüfen Sie die Kompetenzen, um zu erfahren, wie Ihre Inhalte aufgeteilt und optional vektorisiert werden.
  4. Überprüfen Sie die Datenquelle auf Verbindungsdetails. Unser Beispiel verwendet API-Schlüssel aus Gründen der Einfachheit, Aber Sie können Microsoft Entra-ID für die Authentifizierung und rollenbasierte Zugriffssteuerung für die Autorisierung verwenden.

Zuweisen zu einer Wissensbasis

Wenn Sie mit der Wissensquelle zufrieden sind, fahren Sie mit dem nächsten Schritt fort: Geben Sie die Wissensquelle in einer Wissensbasis an.

Nachdem die Knowledge Base konfiguriert wurde, verwenden Sie die Abrufaktion , um die Wissensquelle abzufragen.

Löschen einer Wissensquelle

Bevor Sie eine Wissensquelle löschen können, müssen Sie alle Knowledge Basen löschen, die darauf verweisen, oder die Knowledge Base-Definition aktualisieren, um den Verweis zu entfernen. Für Wissensquellen, die eine Index- und Indexerpipeline generieren, werden auch alle generierten Objekte gelöscht. Wenn Sie jedoch einen vorhandenen Index zum Erstellen einer Wissensquelle verwendet haben, wird Ihr Index nicht gelöscht.

Wenn Sie versuchen, eine verwendete Wissensquelle zu löschen, schlägt die Aktion fehl und gibt eine Liste der betroffenen Wissensdatenbanken zurück.

So löschen Sie eine Wissensquelle:

  1. Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.

    # Get knowledge bases
    import requests
    import json
    
    endpoint = "{search_url}/knowledgebases"
    params = {"api-version": "2025-11-01-preview", "$select": "name"}
    headers = {"api-key": "{api_key}"}
    
    response = requests.get(endpoint, params = params, headers = headers)
    print(json.dumps(response.json(), indent = 2))
    

    Eine Beispielantwort könnte wie folgt aussehen:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.

    # Get a knowledge base definition
    import requests
    import json
    
    endpoint = "{search_url}/knowledgebases/{knowledge_base_name}"
    params = {"api-version": "2025-11-01-preview"}
    headers = {"api-key": "{api_key}"}
    
    response = requests.get(endpoint, params = params, headers = headers)
    print(json.dumps(response.json(), indent = 2))
    

    Eine Beispielantwort könnte wie folgt aussehen:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie die Wissensbasis , um die Wissensquelle zu entfernen, wenn Sie über mehrere Quellen verfügen. In diesem Beispiel wird das Löschen gezeigt.

    # Delete a knowledge base
    from azure.core.credentials import AzureKeyCredential 
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    index_client.delete_knowledge_base("knowledge_base_name")
    print(f"Knowledge base deleted successfully.")
    
  4. Löschen Sie die Wissensquelle.

    # Delete a knowledge source
    from azure.core.credentials import AzureKeyCredential 
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    index_client.delete_knowledge_source("knowledge_source_name")
    print(f"Knowledge source deleted successfully.")
    

Hinweis

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel (SLA) bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Verwenden Sie eine Blob-Wissensquelle, um Azure-Blob-Inhalte in einer agentischen Abrufpipeline zu indizieren und abzufragen. Wissensquellen werden unabhängig erstellt, in einer Wissensbasis referenziert und als Erdungsdaten verwendet, wenn ein Agent oder Chatbot eine Abrufaktion zur Abfragezeit aufruft.

Im Gegensatz zu einer Suchindex-Wissensquelle, die einen vorhandenen und qualifizierten Index angibt, gibt eine BLOB-Wissensquelle eine externe Datenquelle, Modelle und Eigenschaften an, um automatisch die folgenden Azure AI Search-Objekte zu generieren:

  • Eine Datenquelle, die einen Blob-Container darstellt.
  • Ein Fähigkeiten-Set, das multimodale Inhalte aus dem Container in Segmente unterteilt und optional vektorisiert.
  • Ein Index, der angereicherte Inhalte speichert und die Kriterien für den agentischen Abruf erfüllt.
  • Ein Indexer, der die vorherigen Objekte verwendet, um die Indizierungs- und Anreicherungspipeline zu steuern.

Hinweis

Wenn der Benutzerzugriff auf der Dokumentebene (BLOB) in Azure Storage angegeben ist, kann eine Wissensquelle Berechtigungsmetadaten an indizierte Inhalte in Azure AI Search weiterleiten. Weitere Informationen finden Sie unter ADLS Gen2-Berechtigungsmetadaten oder Blob-RBAC-Bereiche.

Voraussetzungen

Überprüfen auf vorhandene Wissensquellen

Eine Wissensquelle ist ein wiederverwendbares Objekt der obersten Ebene. Das Wissen über vorhandene Wissensquellen ist hilfreich, um neue Objekte wiederzuverwenden oder zu benennen.

Verwenden Sie Wissensquellen – ABRUFEN (REST-API), um Wissensquellen nach Name und Typ auflisten.

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version=2025-11-01-preview&$select=name,kind
api-key: {{api-key}}

Sie können auch eine einzelne Wissensquelle anhand des Namens zurück, um ihre JSON-Definition zu überprüfen.

### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
api-key: {{api-key}}

Der folgende JSON-Code ist eine Beispielantwort für eine Blob-Wissensquelle.

{
  "name": "my-blob-ks",
  "kind": "azureBlob",
  "description": "A sample blob knowledge source.",
  "encryptionKey": null,
  "azureBlobParameters": {
    "connectionString": "<REDACTED>",
    "containerName": "blobcontainer",
    "folderPath": null,
    "isADLSGen2": false,
    "ingestionParameters": {
      "disableImageVerbalization": false,
      "ingestionPermissionOptions": [],
      "contentExtractionMode": "standard",
      "identity": null,
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<REDACTED>",
          "deploymentId": "text-embedding-3-large",
          "apiKey": "<REDACTED>",
          "modelName": "text-embedding-3-large",
          "authIdentity": null
        }
      },
      "chatCompletionModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<REDACTED>",
          "deploymentId": "gpt-5-mini",
          "apiKey": "<REDACTED>",
          "modelName": "gpt-5-mini",
          "authIdentity": null
        }
      },
      "ingestionSchedule": null,
      "assetStore": null,
      "aiServices": {
        "uri": "<REDACTED>",
        "apiKey": "<REDACTED>"
      }
    },
    "createdResources": {
      "datasource": "my-blob-ks-datasource",
      "indexer": "my-blob-ks-indexer",
      "skillset": "my-blob-ks-skillset",
      "index": "my-blob-ks-index"
    }
  }
}

Hinweis

Vertrauliche Informationen sind redigiert. Die generierten Ressourcen werden am Ende der Antwort angezeigt.

Erstellen einer Wissensquelle

Verwenden Sie Wissensquellen – Erstellen oder Aktualisieren (REST-API), um eine Blob-Wissensquelle zu erstellen.

PUT {{search-url}}/knowledgesources/my-blob-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json

{
  "name": "my-blob-ks",
  "kind": "azureBlob",
  "description": "This knowledge source pulls from a blob storage container.",
  "encryptionKey": null,
  "azureBlobParameters": {
    "connectionString": "<YOUR AZURE STORAGE CONNECTION STRING>",
    "containerName": "<YOUR BLOB CONTAINER NAME>",
    "folderPath": null,
    "isADLSGen2": false,
    "ingestionParameters": {
        "identity": null,
        "disableImageVerbalization": null,
        "chatCompletionModel": { TRIMMED FOR BREVITY },
        "embeddingModel": { TRIMMED FOR BREVITY },
        "contentExtractionMode": "minimal",
        "ingestionSchedule": null,
        "ingestionPermissionOptions": []
    }
  }
}

Quellspezifische Eigenschaften

Sie können die folgenden Eigenschaften übergeben, um eine BLOB-Wissensquelle zu erstellen.

Name Description Typ Bearbeitbar Erforderlich
name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss, und befolgen Sie die Benennungsrichtlinien für Objekte in Azure AI Search. String Nein Yes
kind Die Art der Wissensquelle, die in diesem Fall azureBlob ist. String Nein Yes
description Eine Beschreibung der Wissensquelle. String Yes Nein
encryptionKey Ein vom Kunden verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen sowohl in der Wissensquelle als auch in den generierten Objekten. Object Yes Nein
azureBlobParameters Spezifische Parameter für Blob-Wissensquellen: connectionString, containerName, , folderPathund isADLSGen2. Object Nein
connectionString Eine schlüsselbasierte Verbindungszeichenfolge oder, wenn Sie eine verwaltete Identität verwenden, die Ressourcen-ID. String Nein Yes
containerName Den Namen des Blobspeichercontainers String Nein Yes
folderPath Ein Ordner innerhalb des Containers. String Nein Nein
isADLSGen2 Der Standardwert lautet false. Legen Sie true fest, wenn Sie ein ADLS Gen2-Speicherkonto verwenden. Boolean Nein Nein

ingestionParameters Eigenschaften

Nur für indizierte Wissensquellen können Sie die folgenden ingestionParameters Eigenschaften übergeben, um zu steuern, wie Inhalte aufgenommen und verarbeitet werden.

Name Description Typ Bearbeitbar Erforderlich
identity Eine verwaltete Identität , die im generierten Indexer verwendet werden soll. Object Yes Nein
disableImageVerbalization Aktiviert oder deaktiviert die Verwendung der Bildverbalisation. Der Standardwert ist false, was die Bildverbaliserung aktiviert. Setzen Sie true auf, um die Bildverbalisierung zu deaktivieren. Boolean Nein Nein
chatCompletionModel Ein Chat-Vervollständigungsmodell, das Bilder verbalisiert oder Inhalte extrahiert. Unterstützte Modelle sind gpt-4o, , gpt-4o-minigpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, und gpt-5-minigpt-5-nano. Die GenAI Prompt-Fähigkeit wird in das generierte Skillset aufgenommen. Das Festlegen dieses Parameters erfordert auch, dass disableImageVerbalization auf false gesetzt wird. Object Nur apiKey und deploymentId können bearbeitet werden Nein
embeddingModel Ein Texteinbettungsmodell, das Text- und Bildinhalte während der Indizierung und zur Abfragezeit vektorisiert. Unterstützte Modelle sind text-embedding-ada-002, text-embedding-3-smallund text-embedding-3-large. Die Azure OpenAI Embedding-Fähigkeit wird in das generierte Skillset aufgenommen, und der Azure OpenAI-Vektorizer wird in den generierten Index aufgenommen. Object Nur apiKey und deploymentId können bearbeitet werden Nein
contentExtractionMode Steuert, wie Inhalte aus Dateien extrahiert werden. Der Standard ist minimal, das die Standardinhaltsextraktion für Text und Bilder verwendet. Wird auf standard gesetzt, um erweitertes Dokumentanalysieren und Segmentieren mithilfe der Azure Content Understanding-Fähigkeit zu nutzen, die in das generierte Skillset aufgenommen wird. Nur für standard können die Parameter aiServices und assetStore angegeben werden. String Nein Nein
aiServices Eine Microsoft Foundry-Ressource für den Zugriff auf Azure Content Understanding in Foundry Tools. Das Festlegen dieses Parameters erfordert, dass contentExtractionMode auf standard gesetzt ist. Object Nur apiKey bearbeitbar Yes
assetStore Ein BLOB-Container zum Speichern extrahierter Bilder. Das Festlegen dieses Parameters erfordert, dass contentExtractionMode auf standard gesetzt ist. Object Nein Nein
ingestionSchedule Fügt dem generierten Indexer Planungsinformationen hinzu. Sie können später auch einen Zeitplan hinzufügen , um die Datenaktualisierung zu automatisieren. Object Yes Nein
ingestionPermissionOptions Die Berechtigungen auf Dokumentebene, um aus ausgewählten Wissensquellen Daten zu extrahieren: entweder ADLS Gen2 oder indiziertes SharePoint. Wenn Sie userIds, groupIds oder rbacScope angeben, sind im generierten ADLS Gen2-Indexer oder SharePoint-Indexer die aufgenommenen Berechtigungen enthalten. Array Nein Nein

Überprüfen des Erfassungsstatus

Verwenden Sie Wissensquellen - Status (REST API), um den Fortschritt der Datenaufnahme und die Gesundheit zu überwachen, einschließlich des Indexerstatus für Wissensquellen, die eine Indexer-Pipeline generieren und einen Suchindex füllen.

### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json 

Eine Antwort für eine Anforderung, die Aufnahmeparameter enthält und aktiv Inhalte erfasst, kann wie im folgenden Beispiel aussehen.

{ 
  "synchronizationStatus": "active", // creating, active, deleting 
  "synchronizationInterval" : "1d", // null if no schedule 
  "currentSynchronizationState" : { // spans multiple indexer "runs" 
    "startTime": "2025-10-27T19:30:00Z", 
    "itemUpdatesProcessed": 1100, 
    "itemsUpdatesFailed": 100, 
    "itemsSkipped": 1100, 
  }, 
  "lastSynchronizationState" : {  // null on first sync 
    "startTime": "2025-10-27T19:30:00Z", 
    "endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve 
    "itemUpdatesProcessed": 1100, 
    "itemsUpdatesFailed": 100, 
    "itemsSkipped": 1100, 
  }, 
  "statistics": {  // null on first sync 
    "totalSynchronization": 25, 
    "averageSynchronizationDuration": "00:15:20", 
    "averageItemsProcessedPerSynchronization" : 500 
  } 
} 

Überprüfen der erstellten Objekte

Wenn Sie eine Blob-Wissensquelle erstellen, erstellt Ihr Suchdienst auch einen Indexer, einen Index, ein Skillset und eine Datenquelle. Es wird nicht empfohlen, diese Objekte zu bearbeiten, da ein Fehler oder eine Inkompatibilität die Pipeline unterbrechen kann.

Nachdem Sie eine Wissensquelle erstellt haben, werden in der Antwort die erstellten Objekte aufgelistet. Diese Objekte werden gemäß einer festen Vorlage erstellt, und ihre Namen basieren auf dem Namen der Wissensquelle. Sie können die Objektnamen nicht ändern.

Wir empfehlen die Verwendung des Azure-Portals zur Überprüfung der Ausgabeerstellung. Der Workflow lautet:

  1. Überprüfen Sie den Indexer auf Erfolgs- oder Fehlermeldungen. Hier werden Verbindungs- oder Kontingentfehler angezeigt.
  2. Überprüfen Sie den Index auf durchsuchbare Inhalte. Verwenden Sie den Such-Explorer, um Abfragen auszuführen.
  3. Überprüfen Sie die Kompetenzen, um zu erfahren, wie Ihre Inhalte aufgeteilt und optional vektorisiert werden.
  4. Überprüfen Sie die Datenquelle auf Verbindungsdetails. Unser Beispiel verwendet API-Schlüssel aus Gründen der Einfachheit, Aber Sie können Microsoft Entra-ID für die Authentifizierung und rollenbasierte Zugriffssteuerung für die Autorisierung verwenden.

Zuweisen zu einer Wissensbasis

Wenn Sie mit der Wissensquelle zufrieden sind, fahren Sie mit dem nächsten Schritt fort: Geben Sie die Wissensquelle in einer Wissensbasis an.

Nachdem die Knowledge Base konfiguriert wurde, verwenden Sie die Abrufaktion , um die Wissensquelle abzufragen.

Löschen einer Wissensquelle

Bevor Sie eine Wissensquelle löschen können, müssen Sie alle Knowledge Basen löschen, die darauf verweisen, oder die Knowledge Base-Definition aktualisieren, um den Verweis zu entfernen. Für Wissensquellen, die eine Index- und Indexerpipeline generieren, werden auch alle generierten Objekte gelöscht. Wenn Sie jedoch einen vorhandenen Index zum Erstellen einer Wissensquelle verwendet haben, wird Ihr Index nicht gelöscht.

Wenn Sie versuchen, eine verwendete Wissensquelle zu löschen, schlägt die Aktion fehl und gibt eine Liste der betroffenen Wissensdatenbanken zurück.

So löschen Sie eine Wissensquelle:

  1. Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.

    ### Get knowledge bases
    GET {{search-endpoint}}/knowledgebases?api-version=2025-11-01-preview&$select=name
    api-key: {{api-key}}
    

    Eine Beispielantwort könnte wie folgt aussehen:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.

    ### Get a knowledge base definition
    GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    

    Eine Beispielantwort könnte wie folgt aussehen:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie die Wissensbasis , indem Sie die Wissensquelle entfernen, wenn Sie über mehrere Quellen verfügen. In diesem Beispiel wird das Löschen gezeigt.

    ### Delete a knowledge base
    DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    
  4. Löschen Sie die Wissensquelle.

    ### Delete a knowledge source
    DELETE {{search-endpoint}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}