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.
Hinweis
Azure KI-Suche ist über das Azure Portal, REST-APIs und Azure SDKs verfügbar. Es unterstützt auch Foundry IQ, die verwaltete Wissensschicht, die Unternehmensinhalte in wiederverwendbare, berechtigungsfähige Wissensbasen für Agenten im Microsoft Foundry-Portal transformiert.
Important
Features, Funktionen oder Eigenschaften, die als (Vorschau) gekennzeichnet sind, werden von keiner Dienstebenenvereinbarung (SLA) abgedeckt, werden für Produktionsworkloads nicht empfohlen und können geändert oder eingeschränkt werden, bevor sie allgemein verfügbar sind. Die Azure KI-Suche Vorschaubedingungen gelten für alle Vorschaufunktionen, unabhängig davon, ob sie eigenständig oder Teil eines allgemein verfügbaren Features ist.
Eine blob-Wissensquelle nimmt Azure Blob Storage oder ADLS Gen2-Inhalte in eine agentische Abrufpipeline in Azure KI-Suche ein. Wissensquellen werden unabhängig erstellt, in einer Wissensbasis referenziert und als Erdungsdaten verwendet, wenn die Wissensbasis zur Laufzeit abgefragt wird.
Wenn Sie eine Blob-Wissensquelle erstellen, geben Sie eine externe Datenquelle, Modelle und Eigenschaften an, um automatisch die folgenden Azure KI-Suche Objekte zu generieren:
- Eine Datenquelle, die einen Blob-Container repräsentiert.
- Ein Skillset, das multimodale Inhalte aus dem Container in Blöcke 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.
Der generierte Indexer entspricht dem BLOB-Indexer, dessen Voraussetzungen, unterstützte Dokumentformate und Einschränkungen auch für Blob-Wissensquellen gelten. Weitere Informationen finden Sie in der Blobindexerdokumentation und in den Indexergrenzwerten. Wenn das generierte Skillset einen externen Dienst aufruft, gelten auch die Eingabe- und Dienstgrenzwerte dieser Qualifikation.
Hinweis
Wenn der Benutzerzugriff auf der Dokumentebene (Blob) in Azure Storage angegeben wird, kann eine Wissensquelle Berechtigungsmetadaten an indizierte Inhalte in Azure KI-Suche weiterleiten. Weitere Informationen finden Sie unter ADLS Gen2-Berechtigungsmetadaten (Vorschau) oder Blob-RBAC-Bereiche (Vorschau).
Verwendungsunterstützung
| Azure Portal | Microsoft Foundry Portal | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST-API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Voraussetzungen
Einen Azure KI-Suche Dienst in einer beliebigen Region, der agentischen Abruf bereitstellt.
Ein Azure Blob Storage- oder Azure Data Lake Storage (ADLS) Gen2Konto.
Ein Blobcontainer mit unterstützten Inhaltstypen für Textinhalte. Bei optionaler Bildverbalisierung hängt der unterstützte Inhaltstyp davon ab, ob Ihr Chat-Vervollständigungsmodell die Bilddatei analysieren und beschreiben kann.
Wenn
contentExtractionModestandardist, verwenden Sie eine Microsoft Foundry-Ressource in einer von Content Understanding in Foundry Tools unterstützten Region mit einemhttps://<resource-name>.services.ai.azure.com-Endpunkt. Die Ressource muss über eine Bereitstellung für ein Einbettungsmodell und, wenn Sie die Bildverbalisierung aktivieren, über eine Bereitstellung für ein multimodales Chatmodell verfügen.Berechtigung zum Erstellen von Wissensquellen. Konfigurieren Sie die schlüssellose Authentifizierung mit den Rollen "Mitwirkender des Suchdiensts " und " Indexdatenmitwirkender ", die Ihrem Benutzerkonto zugewiesen sind (empfohlen), oder verwenden Sie einen Administrator-API-Schlüssel.
Eine verwaltete Identität für den Suchdienst mit Storage Blob Data Reader im Quellspeicherkontobereich und dem Cognitive Services-Benutzer auf der Microsoft Foundry-Ressource. Wenn Sie einen Ressourcenspeicher in einem anderen Speicherkonto konfigurieren, weisen Sie auch Storage Blob Data Contributor im Bereich dieses Speicherkontos zu. Wenn der Quellcontainer und der Assetcontainer dasselbe Konto verwenden, gewährt Storage Blob Data Contributor sowohl Lesezugriff auf die Quelle als auch Lese-/Schreibzugriff auf den Assetspeicher.
Wenn Sie
privateaufnetworkAccessModefestlegen, müssen Sie die folgenden Anforderungen erfüllen:Verwenden Sie einen S2-, S3-, L1- oder L2-Suchdienst.
Aktivieren Sie eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität für den Suchdienst, gewähren Sie ihm die Rolle "Storage Blob Data Reader" für das Speicherkonto, und verwenden Sie eine
ResourceId=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>Verbindungszeichenfolge. Setzen Sie für eine benutzerzugewiesene Identität auchingestionParameters.identity.Erstellen und genehmigen Sie eine freigegebene private Verbindung zum Speicherkonto mit der
blob-Gruppen-ID. Erstellen und genehmigen Sie für ADLS Gen2blobunddfsfreigegebene private Verbindungen.Erstellen und genehmigen Sie für jeden geschützten Modell-Endpunkt einen gemeinsam genutzten privaten Link. Verwenden Sie die
openai_accountGruppen-ID für Azure OpenAI-Endpunkte undfoundry_accountfür Foundry-Ressourcenendpunkte.
Erforderliches
Azure.Search.Documents-Paket:Für
2026-08-01-previewFunktionen das neueste Vorschaupaket:dotnet add package Azure.Search.Documents --prereleaseFür
2026-04-01Features das neueste stabile Paket:dotnet add package Azure.Search.Documents
Für die schlüssellose Authentifizierung das Paket
Azure.Identity:dotnet add package Azure.Identity
Erforderliches
azure-search-documents-Paket:Für
2026-08-01-previewFunktionen das neueste Vorschaupaket:pip install --pre azure-search-documentsFür
2026-04-01Features das neueste stabile Paket:pip install azure-search-documents
Für die schlüssellose Authentifizierung das Paket
azure-identity:pip install azure-identity
Erforderliche REST-API-Version für den Suchdienst:
Für Vorschaufunktionen: 2026-08-01-preview
Für allgemein verfügbare Features: 2026-04-01
Fügen Sie für die schlüssellose Authentifizierung ein Microsoft Entra ID-Token in den
AuthorizationHeader jeder HTTP-Anforderung ein.
Überprüfen auf vorhandene Wissensquellen
Eine Wissensquelle ist ein wiederverwendbares Objekt auf oberster 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}");
}
Reference:SearchIndexClient
# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
for ks in index_client.list_knowledge_sources():
print(f" - {ks.name} ({ks.kind})")
Reference:SearchIndexClient
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}
Referenz:Wissensquellen - Liste
Sie können auch eine einzelne Wissensquelle anhand des Namens zurückgeben, um die 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));
Reference:SearchIndexClient
# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))
Reference:SearchIndexClient
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}
Referenz:Wissensquellen - Abrufen
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",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<aoai-endpoint>",
"deploymentId": "gpt-5-mini",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<aoai-endpoint>",
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-ks-index"
}
}
}
Hinweis
Vertrauliche Informationen werden 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.Search.Documents.Models;
using Azure.Identity;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
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
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
},
IngestionPermissionOptions = new List<KnowledgeSourceIngestionPermissionOption>
{
KnowledgeSourceIngestionPermissionOption.UserIds,
KnowledgeSourceIngestionPermissionOption.GroupIds
}
};
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.");
Reference:SearchIndexClient, AzureBlobKnowledgeSource
# Create a blob knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
from azure.search.documents.knowledgebases.models import KnowledgeSourceNetworkAccessMode
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
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(
network_access_mode = KnowledgeSourceNetworkAccessMode.PUBLIC,
identity = None,
disable_image_verbalization = False,
chat_completion_model = KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-gpt-deployment>",
model_name = "<aoai-gpt-model>",
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-embedding-deployment>",
model_name = "<aoai-embedding-model>",
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = ["user_ids", "group_ids"]
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Reference:SearchIndexClient
### Create a blob knowledge source
PUT {{search-endpoint}}/knowledgesources/my-blob-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "ResourceId=<storage-resource-id>",
"containerName": "<blob-container-name>",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"networkAccessMode": "public",
"identity": null,
"disableImageVerbalization": null,
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-gpt-deployment}}",
"modelName": "{{aoai-gpt-model}}"
}
},
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
},
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": ["userIds", "groupIds"]
}
}
}
Hinweis
Verwenden Sie zum Erzwingen von Berechtigungen auf Dokumentebene mit ingestionPermissionOptions die API-Version 2026-08-01-preview. Diese Funktion wird von der API-Version 2026-04-01 nicht unterstützt.
Einschränken der Aufnahme in ein privates Netzwerk (Vorschau)
Ab der 2026-08-01-preview API-Version steuert networkAccessMode die Netzwerkumgebung, in der der generierte Indexer für eine Blob-Wissensquelle ausgeführt wird. Diese Einstellung betrifft nur die Datenaufnahme und ändert weder Abrufanfragen noch -antworten der Wissensdatenbank.
networkAccessMode ist standardmäßig auf public festgelegt, wodurch das vorhandene Verhalten des öffentlichen Netzwerks beibehalten wird. Wenn networkAccessModeprivate ist, wird der generierte Indexer in der privaten Ausführungsumgebung ausgeführt. Es verwendet genehmigte gemeinsam genutzte private Links für den Zugriff auf die Azure Blob Storage- oder ADLS Gen2-Quellverbindung sowie auf unterstützte Azure-Abhängigkeiten, etwa Azure OpenAI-Modelle und Microsoft Foundry-Ressourcen.
So konfigurieren und überprüfen Sie den privaten Netzwerkzugriff:
Erfüllen Sie die Voraussetzungen für das private Netzwerk.
Setzen Sie
privatein der Anfrage zum Erstellen der Wissensquelle aufnetworkAccessMode. Sie können diese Eigenschaft nur während der Erstellung festlegen. Um sie später zu ändern, löschen Sie die Wissensquelle, und erstellen Sie sie neu.Die Erstellung kann fehlschlagen, wenn die Dienstebene oder Laufzeit keine private Ausführung unterstützt oder wenn ein erforderlicher freigegebener privater Link nicht vorhanden ist.
Vergewissern Sie sich, dass
executionEnvironmentdes generierten Indexersprivateist.Vergewissern Sie sich, dass jeder erforderliche freigegebene private Link genehmigt wurde und auf die richtige Abhängigkeit ausgerichtet ist. Die erfolgreiche Erstellung allein bestätigt die Genehmigung oder Zielbestimmung von Links nicht.
Fragen Sie den Status der Wissensquelle ab, bis
lastSynchronizationState.endTimeeinen Wert hat. Vergewissern Sie sich, dassitemsUpdatesFailed0ist, und überprüfen Sie dann den connectorspezifischen Quellinhalt. Die Synchronisierung schlägt fehl, wenn eine Abhängigkeit nicht erreichbar ist.
Verwenden Sie automatische sprachspezifische Analysatoren (Vorschau)
Ab der 2026-08-01-preview-API-Version stehen automatische Sprachanalysetools für Blob, indizierte OneLake- und indizierte SharePoint-Wissensquellen zur Verfügung. Wenn diese Funktion aktiviert ist, erkennt Azure KI-Suche die Sprache jedes Quelldokuments und wendet automatisch einen passenden Microsoft-Sprachanalysator an. Sie geben keinen Analyzer in der Wissensquelldefinition oder in einer Abfrage an.
Um automatische sprachspezifische Analyzer zu aktivieren, setzen Sie contentExtractionMode auf minimal und konfigurieren Sie ingestionParameters.aiServices in der Wissensquelldefinition.
Für die schlüssellose Authentifizierung lassen Sie weg und weisen die Rolle aiServices.apiKey auf Ihrer Microsoft Foundry-Ressource der verwalteten Identität Ihres Suchdiensts zu. Für die schlüsselbasierte Authentifizierung setzen Sie aiServices.apiKey auf einen gültigen Schlüssel für Ihre Foundry-Ressource.
Die folgenden Sprachen werden unterstützt:
- Englisch
- Japanese
- Französisch
- Spanisch
- Deutsch
- Dutch
- Italienisch
- Portugiesisch (Brasilien)
- Europäisches Portugiesisch
- Vereinfachtes Chinesisch
- Traditionelles Chinesisch
- Korean
Bei mehrsprachigen Inhalten wählt Azure KI-Suche einen Analyzer basierend auf der vorherrschenden erkannten Sprache aus. Er verwendet den Standardanalysator, wenn die Sprache nicht unterstützt oder unsicher ist.
Wenn Sie automatische Sprachanalysatoren aktivieren, fügt Azure KI-Suche sprachspezifische Inhaltsfelder für jede unterstützte Sprache zum generierten Indexschema hinzu, unabhängig davon, ob Ihre Daten Dokumente in diesen Sprachen enthalten. Während der Aufnahme werden Dokumente basierend auf ihrer erkannten Sprache an das entsprechende sprachspezifische Feld weitergeleitet.
Nicht verwendete Sprachfelder enthalten keinen indizierten Inhalt und haben minimale Speicherauswirkungen, bleiben aber Teil des Indexschemas und zählen zur Indexfeldgrenze. Berücksichtigen Sie die zusätzlichen Felder, wenn Sie den Indexentwurf, die Feldanzahl und die Speicheranforderungen planen. Weitere Informationen finden Sie unter "Indexbeschränkungen " und " Schätzen und Verwalten der Kapazität eines Suchdiensts".
Die Sprachenerkennung ist nach dem kostenlosen KI-Anreicherungsfreikontingent kostenpflichtig. Weitere Informationen finden Sie unter "Freie Anreicherungen".
Überprüfen des Ingestion-Status
Führen Sie den folgenden Code aus, um den Fortschritt und die Integrität der Erfassung zu überwachen, einschließlich der Wissensquelle und detaillierter Indizierungsfehler für Wissensquellen, die eine Indexerpipeline generieren und einen Suchindex auffüllen.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get knowledge source ingestion 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);
Reference:SearchIndexClient
# Check knowledge source ingestion status
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))
Reference:SearchIndexClient
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
Authorization: Bearer {{token}}
Content-Type: application/json
Referenz:Wissensquellen – Status abrufen
Eine Antwort auf eine Anforderung, die Aufnahmeparameter enthält und aktiv Inhalte erfasst, kann folgendermaßen aussehen.
{
"kind": "azureBlob",
"synchronizationStatus": "active",
"synchronizationInterval": "1d",
"currentSynchronizationState": {
"startTime": "2026-04-10T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": [
{
"key": "Item id 1",
"docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
"statusCode": 400,
"componentName": "DocumentExtraction.AzureBlob.MyDataSource",
"errorMessage": "Could not read the value of column 'foo' at index '0'.",
"details": "The file could not be parsed.",
"documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
}
]
},
"lastSynchronizationState": {
"status": "partialSuccess",
"startTime": "2026-04-09T19:30:00Z",
"endTime": "2026-04-09T19:40:01Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": null
},
"statistics": {
"totalSynchronizations": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization": 500
}
}
Hinweis
Die Eigenschaft kind und das Array currentSynchronizationState.errors[] mit Fehlerdetails auf Dokumentebene sind ab der API-Version 2026-04-01 verfügbar. Für frühere API-Versionen werden diese Felder nicht zurückgegeben. Das lastSynchronizationState.status Feld ist auch neu in 2026-04-01.
Überprüfen der generierten Objekte
Wenn Sie diese Wissensquelle erstellen, generiert Azure KI-Suche automatisch eine Datenquelle, einen Fähigkeitensatz, einen Indexer und einen Index. Die Erstellungsantwort listet jedes Objekt unter createdResources.
Diese Objekte werden gemäß einer festen Vorlage generiert, und ihre Namen basieren auf dem Namen der Wissensquelle. Sie können die Objektnamen nicht ändern. Vermeiden Sie das direkte Bearbeiten dieser Objekte, da Änderungen Fehler oder Inkompatibilitäten verursachen können, die die Indexerpipeline unterbrechen.
Sie können das Azure Portal verwenden, um die Objekterstellung zu überprüfen. Der Workflow lautet:
Überprüfen Sie den Indexer auf Erfolgs- oder Fehlermeldungen. Hier werden Verbindungs- oder Kontingentfehler angezeigt.
Überprüfen Sie die Datenquelle, um die Verbindung mit Ihrem Datenspeicher zu überprüfen. Die Verbindung verwendet entweder eine Verbindungszeichenfolge oder eine verwaltete Identität, je nachdem, wie Sie die Wissensquelle konfiguriert haben.
Überprüfen Sie das Skillset, um zu sehen, wie Ihre Inhalte in Blöcke unterteilt und optional vektorisiert werden.
Überprüfen Sie den Index, um zu sehen, wie Ihre Inhalte für den Abruf indiziert und verfügbar gemacht werden, einschließlich der durchsuchbaren und filterbaren Felder und welche Felder Vektoren für die Ähnlichkeitssuche speichern. Verwenden Sie den Such-Explorer, um Abfragen für den generierten Index auszuführen.
Zuweisen zu einer Wissensbasis
Wenn Sie mit der Wissensquelle zufrieden sind, fügen Sie sie einer Wissensbasis hinzu.
Abfragen einer Wissensbasis
Rufen Sie nach der Konfiguration der Knowledge Base die Abrufen-Aktion oder den MCP-Endpunkt auf, um die Wissensquelle abzufragen. Wählen Sie die Konfiguration aus, die Ihrem Szenario entspricht.
Berechtigungen auf Dokumentenebene erzwingen (Vorschau)
Um Berechtigungen auf Dokumentebene zu erzwingen, legen Sie fest ingestionPermissionOptions , wenn Sie diese Wissensquelle erstellen, und fügen Sie dann das Zugriffstoken des Benutzers in die Abrufanforderung ein. Weitere Informationen finden Sie unter Erzwingen von Berechtigungen zur Abfragezeit (Vorschau).
Surface in Dokumente eingebettete Bilder (Vorschau)
Um in Antworten der Antwortsynthese in Dokumente eingebettete Bilder (z. B. Diagramme oder Scans) anzuzeigen, konfigurieren Sie assetStore für diese Wissensquelle, und aktivieren Sie dann die Bildbereitstellung für die Wissensdatenbank. Die Bereitstellung von Bildern wird nicht unterstützt, wenn ingestionPermissionOptions konfiguriert ist. Weitere Informationen finden Sie unter In Dokumente eingebettete Bilder im Agent-Abruf anzeigen (Vorschau).
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:
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}"); }Reference:SearchIndexClient
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" } ] }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);Reference:SearchIndexClient
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 }Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie, wenn Sie über mehrere Wissensquellen verfügen, die Wissensbasis, um die Quelle zu entfernen. 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.");Reference:SearchIndexClient
Löschen Sie die Wissensquelle.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Reference:SearchIndexClient
Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.
# Get knowledge bases from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) print("Knowledge Bases:") for kb in index_client.list_knowledge_bases(): print(f" - {kb.name}")Reference:SearchIndexClient
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" } ] }Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.
# Get a knowledge base definition from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) kb = index_client.get_knowledge_base("knowledge_base_name") print(kb)Reference:SearchIndexClient
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" } }Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie, wenn Sie über mehrere Wissensquellen verfügen, die Wissensbasis, um die Quelle zu entfernen. 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.")Reference:SearchIndexClient
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.")Reference:SearchIndexClient
Erhalten Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}Referenz:Wissensdatenbanken - Liste
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" } ] }Rufen Sie eine individuelle Wissensbasisdefinition ab, um nach Wissensquellenverweise zu suchen.
### Get a knowledge base definition GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referenz:Wissensdatenbanken - Abrufen
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" } }Löschen Sie entweder die Wissensdatenbank, oder aktualisieren Sie, wenn Sie über mehrere Wissensquellen verfügen, die Wissensbasis, um die Quelle zu entfernen. In diesem Beispiel wird das Löschen gezeigt.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referenz:Knowledge Basen - Löschen
Löschen Sie die Wissensquelle.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referenz:Wissensquellen - Löschen