Freigeben über


Erstellen einer indizierten SharePoint Wissensquelle

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 Supplementale Nutzungsbedingungen für Microsoft Azure Previews.

Verwenden Sie eine indizierte SharePoint-Wissensquelle, um SharePoint-Inhalte in einer agentbasierten 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.

Wenn Sie eine indizierte SharePoint Wissensquelle erstellen, geben Sie eine SharePoint Verbindungszeichenfolge, Modelle und Eigenschaften an, um die folgenden Azure KI-Suche Objekte automatisch zu generieren:

  • Eine Datenquelle, die auf SharePoint Websites verweist.
  • Ein Fähigkeitenset, das multimodale Inhalte in Abschnitte 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.

Nutzungssupport

Azure Portal Microsoft Foundry Portal .NET SDK Python SDK Java SDK JavaScript SDK REST-API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

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));

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))

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 indizierte SharePoint Wissensquelle.

{
  "name": "my-indexed-sharepoint-ks",
  "kind": "indexedSharePoint",
  "description": "A sample indexed SharePoint knowledge source",
  "encryptionKey": null,
  "indexedSharePointParameters": {
    "connectionString": "<redacted>",
    "containerName": "defaultSiteLibrary",
    "query": null,
    "ingestionParameters": {
      "disableImageVerbalization": false,
      "ingestionPermissionOptions": [],
      "contentExtractionMode": "minimal",
      "identity": null,
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<redacted>",
          "deploymentId": "text-embedding-3-large",
          "apiKey": "<redacted>",
          "modelName": "text-embedding-3-large",
          "authIdentity": null
        }
      },
      "chatCompletionModel": null,
      "ingestionSchedule": null,
      "assetStore": null,
      "aiServices": null
    },
    "createdResources": {
      "datasource": "my-indexed-sharepoint-ks-datasource",
      "indexer": "my-indexed-sharepoint-ks-indexer",
      "skillset": "my-indexed-sharepoint-ks-skillset",
      "index": "my-indexed-sharepoint-ks-index"
    }
  },
  "indexedOneLakeParameters": null
}

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 indizierte SharePoint Wissensquelle zu erstellen.

// Create an IndexedSharePoint 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 sharePointParams = new IndexedSharePointKnowledgeSourceParameters(
    connectionString: sharePointConnectionString,
    containerName: "defaultSiteLibrary")
{
    IngestionParameters = ingestionParams
};

var knowledgeSource = new IndexedSharePointKnowledgeSource(
    name: "my-indexed-sharepoint-ks",
    indexedSharePointParameters: sharePointParams)
{
    Description = "A sample indexed SharePoint knowledge source."
};

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

Führen Sie den folgenden Code aus, um eine indizierte SharePoint Wissensquelle zu erstellen.

# Create an indexed SharePoint knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import IndexedSharePointKnowledgeSource, IndexedSharePointKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters

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

knowledge_source = IndexedSharePointKnowledgeSource(
    name = "my-indexed-sharepoint-ks",
    description = "A sample indexed SharePoint knowledge source.",
    encryption_key = None,
    indexed_share_point_parameters = IndexedSharePointKnowledgeSourceParameters(
        connection_string = "connection_string",
        container_name = "defaultSiteLibrary",
        query = None,
        ingestion_parameters = KnowledgeSourceIngestionParameters(
            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",
                    api_key = "aoai_api_key"
                )
            ),
            embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
                azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
                    resource_url = "aoai_endpoint",
                    deployment_name = "aoai_embedding_deployment",
                    model_name = "aoai_embedding_model",
                    api_key = "aoai_api_key"
                )
            ),
            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.")

Verwenden Sie Knowledge Sources – Create or Update (REST API) um eine indizierte SharePoint Wissensquelle zu erstellen.

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

{
    "name": "my-indexed-sharepoint-ks",
    "kind": "indexedSharePoint",
    "description": "A sample indexed SharePoint knowledge source.",
    "encryptionKey": null,
    "indexedSharePointParameters": {
        "connectionString": "{{sharepoint-connection-string}}",
        "containerName": "defaultSiteLibrary",
        "query": null,
        "ingestionParameters": {
            "identity": null,
            "embeddingModel": {
                "kind": "azureOpenAI",
                "azureOpenAIParameters": {
                    "deploymentId": "text-embedding-3-large",
                    "modelName": "text-embedding-3-large",
                    "resourceUri": "{{aoai-endpoint}}",
                    "apiKey": "{{aoai-key}}"
                }
            },
            "chatCompletionModel": null,
            "disableImageVerbalization": false,
            "ingestionSchedule": null,
            "ingestionPermissionOptions": [],
            "contentExtractionMode": "minimal"
        }
    }
}

Quellenspezifische Eigenschaften

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

Name Description Typ Bearbeitbar Erforderlich
Name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss und den richtlinien für naming für Objekte in Azure KI-Suche entsprechen muss. String Nein Yes
Description Eine Beschreibung der Wissensquelle. String Yes Nein
EncryptionKey Ein kundenseitig verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen sowohl in der Wissensquelle als auch in den generierten Objekten. Object Yes Nein
IndexedSharePointKnowledgeSourceParameters Spezifische Parameter für indizierte SharePoint Wissensquellen: ConnectionString, ContainerName und Query. Object Nein Nein
ConnectionString Die Verbindungszeichenfolge zu einer SharePoint-Website. Weitere Informationen finden Sie unter Verbindungszeichenfolgensyntax. String Yes Yes
ContainerName Die SharePoint-Bibliothek für den Zugriff. Verwenden Sie defaultSiteLibrary, um Inhalte aus der Standardbibliothek der Dokumente der Webseite zu indizieren oder allSiteLibraries, um Inhalte aus jeder Dokumentbibliothek der Webseite zu indizieren. Für den Moment ignorieren useQuery. String Nein Yes
Query Optionaler query zum Filtern von SharePoint-Inhalten. String Yes Nein
Name Description Typ Bearbeitbar Erforderlich
name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss und den richtlinien für naming für Objekte in Azure KI-Suche entsprechen muss. String Nein Yes
description Eine Beschreibung der Wissensquelle. String Yes Nein
encryption_key Ein kundenseitig verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen sowohl in der Wissensquelle als auch in den generierten Objekten. Object Yes Nein
indexed_share_point_parameters Spezifische Parameter für indizierte SharePoint Wissensquellen: connection_string, container_name und query. Object Nein Nein
connection_string Die Verbindungszeichenfolge zu einer SharePoint-Website. Weitere Informationen finden Sie unter Verbindungszeichenfolgensyntax. String Yes Yes
container_name Die SharePoint-Bibliothek für den Zugriff. Verwenden Sie defaultSiteLibrary, um Inhalte aus der Standardbibliothek der Dokumente der Webseite zu indizieren oder allSiteLibraries, um Inhalte aus jeder Dokumentbibliothek der Webseite zu indizieren. Für den Moment ignorieren useQuery. String Nein Yes
query Optionaler query zum Filtern von SharePoint-Inhalten. String Yes Nein
Name Description Typ Bearbeitbar Erforderlich
name Der Name der Wissensquelle, die innerhalb der Wissensquellensammlung eindeutig sein muss und den richtlinien für naming für Objekte in Azure KI-Suche entsprechen muss. String Nein Yes
kind Die Art der Wissensquelle, in diesem Fall ist dies indexedSharePoint. String Nein Yes
description Eine Beschreibung der Wissensquelle. String Yes Nein
encryptionKey Ein kundenseitig verwalteter Schlüssel zum Verschlüsseln vertraulicher Informationen sowohl in der Wissensquelle als auch in den generierten Objekten. Object Yes Nein
indexedSharePointParameters Spezifische Parameter für indizierte SharePoint Wissensquellen: connectionString, containerName und query. Object Nein Yes
connectionString Die Verbindungszeichenfolge zu einer SharePoint-Website. Weitere Informationen finden Sie unter Verbindungszeichenfolgensyntax. String Yes Yes
containerName Die SharePoint-Bibliothek für den Zugriff. Verwenden Sie defaultSiteLibrary, um Inhalte aus der Standardbibliothek der Dokumente der Webseite zu indizieren oder allSiteLibraries, um Inhalte aus jeder Dokumentbibliothek der Webseite zu indizieren. Für den Moment ignorieren useQuery. String Nein Yes
query Optionaler query zum Filtern von SharePoint-Inhalten. String Yes Nein

Eigenschaften von Aufnahmeparametern

Nur für indizierte Wissensquellen können Sie die folgenden ingestionParameters-Eigenschaften übergeben, um zu steuern, wie Inhalte erfasst 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 Bildverbalisierung. Der Standardwert lautet False und aktiviert die Bildverbalisierung. Legen Sie diese Einstellung auf True fest, um die Bildverbalisierung zu deaktivieren. Boolean Nein Nein
ChatCompletionModel Ein Chatvervollständigungsmodell, das Bilder verbalisiert oder Inhalte extrahiert. Unterstützt werden die Modelle gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini und gpt-5-nano. Die GenAI Prompt-Fähigkeit wird in das generierte Skillset eingeschlossen. Zum Festlegen dieses Parameters muss zudem DisableImageVerbalization auf False festgelegt werden. Object Nur ApiKey und DeploymentName sind bearbeitbar Nein
EmbeddingModel Ein Texteinbettungsmodell, das Text- und Bildinhalte während der Indizierung und zur Abfragezeit vektorisiert. Unterstützt werden die Modelle text-embedding-ada-002, text-embedding-3-small und text-embedding-3-large. Die Azure OpenAI Embedding Skills werden in das generierte Skillset aufgenommen, und der Azure OpenAI-Vektorizer wird in den generierten Index aufgenommen. Object Nur ApiKey und DeploymentName sind bearbeitbar Nein
ContentExtractionMode Steuert, wie Inhalte aus Dateien extrahiert werden. Die Standardeinstellung ist minimal, wobei die Standardinhaltsextraktion für Text und Bilder verwendet wird. Legen Sie diese Einstellung auf standard fest, um erweiterte Dokumentspaltungen und -blöcke mithilfe der Azure Content Understanding Skills zu erstellen, die in das generierte Skillset aufgenommen werden. Lediglich 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. Zur Festlegung dieses Parameters ist erforderlich, dass ContentExtractionMode auf standard festgelegt wird. Object Nur ApiKey ist bearbeitbar Yes
AssetStore Ein BLOB-Container zum Speichern extrahierter Bilder. Zur Festlegung dieses Parameters ist erforderlich, dass ContentExtractionMode auf standard festgelegt wird. 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 Dokumentenebene, die zusammen mit Inhalten erfasst werden sollen. Geben Sie UserIds, GroupIds oder RbacScope an, um Berechtigungs-Metadaten im Index zu speichern. Informationen zu quellspezifischen Anleitungen finden Sie unter "Aufnehmen von RBAC-Berechtigungen aus blob storage " und "Aufnehmen von ACLs aus ADLS Gen2". Informationen zum Erzwingen dieser Berechtigungen zur Abfragezeit finden Sie unter Erzwingen von Berechtigungen zur Abfragezeit. Array Nein Nein

Nur für indizierte Wissensquellen können Sie die folgenden ingestionParameters-Eigenschaften übergeben, um zu steuern, wie Inhalte erfasst 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 Bildverbalisierung. Der Standardwert lautet False und aktiviert die Bildverbalisierung. Legen Sie diese Einstellung auf True fest, um die Bildverbalisierung zu deaktivieren. Boolean Nein Nein
chat_completion_model Ein Chatvervollständigungsmodell, das Bilder verbalisiert oder Inhalte extrahiert. Unterstützt werden die Modelle gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini und gpt-5-nano. Die GenAI Prompt-Fähigkeit wird in das generierte Skillset eingeschlossen. Zum Festlegen dieses Parameters muss zudem disable_image_verbalization auf False festgelegt werden. Object Nur api_key und deployment_name sind bearbeitbar Nein
embedding_model Ein Texteinbettungsmodell, das Text- und Bildinhalte während der Indizierung und zur Abfragezeit vektorisiert. Unterstützt werden die Modelle text-embedding-ada-002, text-embedding-3-small und text-embedding-3-large. Die Azure OpenAI Embedding Skills werden in das generierte Skillset aufgenommen, und der Azure OpenAI-Vektorizer wird in den generierten Index aufgenommen. Object Nur api_key und deployment_name sind bearbeitbar Nein
content_extraction_mode Steuert, wie Inhalte aus Dateien extrahiert werden. Die Standardeinstellung ist minimal, wobei die Standardinhaltsextraktion für Text und Bilder verwendet wird. Legen Sie diese Einstellung auf standard fest, um erweiterte Dokumentspaltungen und -blöcke mithilfe der Azure Content Understanding Skills zu erstellen, die in das generierte Skillset aufgenommen werden. Lediglich 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. Zur Festlegung dieses Parameters ist erforderlich, dass content_extraction_mode auf standard festgelegt wird. Object Nur api_key ist bearbeitbar Yes
asset_store Ein BLOB-Container zum Speichern extrahierter Bilder. Zur Festlegung dieses Parameters ist erforderlich, dass content_extraction_mode auf standard festgelegt wird. 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 Dokumentenebene, die zusammen mit Inhalten erfasst werden sollen. Geben Sie user_ids, group_ids oder rbac_scope an, um Berechtigungs-Metadaten im Index zu speichern. Informationen zu quellspezifischen Anleitungen finden Sie unter "Aufnehmen von RBAC-Berechtigungen aus blob storage " und "Aufnehmen von ACLs aus ADLS Gen2". Informationen zum Erzwingen dieser Berechtigungen zur Abfragezeit finden Sie unter Erzwingen von Berechtigungen zur Abfragezeit. Array Nein Nein

Nur für indizierte Wissensquellen können Sie die folgenden ingestionParameters-Eigenschaften übergeben, um zu steuern, wie Inhalte erfasst 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 Bildverbalisierung. Der Standardwert lautet false und aktiviert die Bildverbalisierung. Legen Sie diese Einstellung auf true fest, um die Bildverbalisierung zu deaktivieren. Boolean Nein Nein
chatCompletionModel Ein Chatvervollständigungsmodell, das Bilder verbalisiert oder Inhalte extrahiert. Unterstützt werden die Modelle gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini und gpt-5-nano. Die GenAI Prompt-Fähigkeit wird in das generierte Skillset eingeschlossen. Zum Festlegen dieses Parameters muss zudem disableImageVerbalization auf false festgelegt werden. Object Nur apiKey und deploymentId sind bearbeitbar Nein
embeddingModel Ein Texteinbettungsmodell, das Text- und Bildinhalte während der Indizierung und zur Abfragezeit vektorisiert. Unterstützt werden die Modelle text-embedding-ada-002, text-embedding-3-small und text-embedding-3-large. Die Azure OpenAI Embedding Skills werden in das generierte Skillset aufgenommen, und der Azure OpenAI-Vektorizer wird in den generierten Index aufgenommen. Object Nur apiKey und deploymentId sind bearbeitbar Nein
contentExtractionMode Steuert, wie Inhalte aus Dateien extrahiert werden. Die Standardeinstellung ist minimal, wobei die Standardinhaltsextraktion für Text und Bilder verwendet wird. Legen Sie diese Einstellung auf standard fest, um erweiterte Dokumentspaltungen und -blöcke mithilfe der Azure Content Understanding Skills zu erstellen, die in das generierte Skillset aufgenommen werden. Lediglich 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. Zur Festlegung dieses Parameters ist erforderlich, dass contentExtractionMode auf standard festgelegt wird. Object Nur apiKey ist bearbeitbar Yes
assetStore Ein BLOB-Container zum Speichern extrahierter Bilder. Zur Festlegung dieses Parameters ist erforderlich, dass contentExtractionMode auf standard festgelegt wird. 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 Dokumentenebene, die zusammen mit Inhalten erfasst werden sollen. Geben Sie userIds, groupIds oder rbacScope an, um Berechtigungs-Metadaten im Index zu speichern. Informationen zu quellspezifischen Anleitungen finden Sie unter "Aufnehmen von RBAC-Berechtigungen aus blob storage " und "Aufnehmen von ACLs aus ADLS Gen2". Informationen zum Erzwingen dieser Berechtigungen zur Abfragezeit finden Sie unter Erzwingen von Berechtigungen zur Abfragezeit. 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 Datenerfassungsparameter enthält und Inhalte aktiv 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 
  } 
} 

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 Datenerfassungsparameter enthält und Inhalte aktiv 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 
  } 
} 

Verwenden Sie Wissensquellen – REST-API (Status), um den Status und die Integrität der Datenerfassung zu überwachen, einschließlich des Indexerstatus für Wissensquellen, die eine Indexerpipeline generieren und einen Suchindex auffü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 Datenerfassungsparameter enthält und Inhalte aktiv 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 indizierte SharePoint Wissensquelle erstellen, erstellt Ihr Suchdienst auch einen Indexer, Index, Skillset und Datenquelle. Es wird empfohlen, diese Objekte nicht zu bearbeiten, da ein Fehler oder eine Inkompatibilität die Pipeline beschädigen 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. In unserem Beispiel werden API-Schlüssel aus Gründen der Einfachheit verwendet, 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.

Stellen Sie für jede Wissensdatenbank, die eine indizierte SharePoint Wissensquelle angibt, unbedingt includeReferenceSourceData auf true fest. Dieser Schritt ist erforderlich, damit die Quelldokument-URL in das Zitat eingefügt werden kann.

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

Tipp

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.

Tipp

Um Berechtigungen auf Dokumentebene zu erzwingen, legen Sie fest ingestion_permission_options , 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.

Tipp

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.

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. Rufen Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst ab.

    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.");
    

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. Rufen Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst ab.

    # 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.")
    

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. Rufen Sie eine Liste aller Wissensdatenbanken für Ihren Suchdienst ab.

    ### 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 Wissensdatenbank, 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}}