Condividi tramite


Creare un'origine di conoscenza SharePoint remota

Annotazioni

Questa funzionalità è attualmente disponibile in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per ulteriori informazioni, vedere Condizioni d'uso supplementari per le anteprime di Microsoft Azure.

Una origine di conoscenza remota di SharePoint utilizza l'API Copilot Retrieval per eseguire query sul contenuto testuale direttamente da SharePoint in Microsoft 365. Non è necessario alcun indice di ricerca o stringa di connessione. Viene eseguita una query solo sul contenuto testuale e l'utilizzo viene fatturato tramite Microsoft 365 e una licenza Copilot.

Per limitare i siti o vincolare la ricerca, impostare un'espressione di filtro per definire l'ambito in base a URL, intervalli di date, tipi di file e altri metadati. L'identità del chiamante deve essere riconosciuta sia dal tenant Azure che dal tenant Microsoft 365 perché il motore di recupero esegue query SharePoint per conto dell'utente.

Come qualsiasi altra origine di conoscenza, si specifica un'origine di conoscenza SharePoint remota in una base di conoscenza e si usano i risultati come dati di base quando un agente o un chatbot chiama un'azione di recupero in fase di query.

Supporto per l'utilizzo

portale Azure Portale Microsoft Foundry .NET SDK Python SDK Java SDK JavaScript SDK API REST
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Prerequisiti

  • Azure AI Search in qualsiasi area in cui è disponibile il recupero agentico. È necessario che sia abilitato il classificatore semantico.

  • SharePoint in un tenant di Microsoft 365 che si trova nello stesso tenant Microsoft Entra ID di Azure.

  • Licenza Microsoft 365 Copilot per l'accesso in fase di query al contenuto SharePoint.

  • Autorizzazione per creare e usare oggetti in Azure AI Search. È consigliabile usare l'accesso in base al ruolo, ma è possibile usare le chiavi API se un'assegnazione di ruolo non è fattibile. Per altre informazioni, vedere Connettersi a un servizio di ricerca.

Limitazioni

Le limitazioni seguenti nell'API di recupero Copilot si applicano alle origini di conoscenza SharePoint remote.

  • Non c'è supporto per i connettori Copilot o i contenuti di OneDrive. Il contenuto viene recuperato solo dai siti SharePoint.

  • Limite di 200 richieste per utente all'ora.

  • Limite di 1.500 caratteri per le query.

  • Le query ibride sono supportate solo per le estensioni di file seguenti: .doc, .docx, .pptx, .pdf, .aspx e .one.

  • Il recupero bidirezionale (contenuto non testuale, incluse tabelle, immagini e grafici) non è supportato.

  • Massimo di 25 risultati da una query.

  • I risultati vengono restituiti dall'API di Recupero di Copilot come non ordinati.

  • Le espressioni di filtro KQL (Keyword Query Language) non valide vengono ignorate e la query continua a essere eseguita senza il filtro.

Verificare le fonti di informazioni esistenti

Una fonte di informazioni è un oggetto riutilizzabile di livello superiore. Conoscere le origini conoscenze esistenti è utile per riutilizzare o denominare nuovi oggetti.

Eseguire il codice seguente per elencare le origini delle informazioni in base al nome e al tipo.

// 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}");
}

È anche possibile restituire una singola fonte di informazioni in base al nome per esaminarne la definizione JSON.

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

Una fonte di informazioni è un oggetto riutilizzabile di livello superiore. Conoscere le origini conoscenze esistenti è utile per riutilizzare o denominare nuovi oggetti.

Eseguire il codice seguente per elencare le origini delle informazioni in base al nome e al tipo.

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

È anche possibile restituire una singola fonte di informazioni in base al nome per esaminarne la definizione JSON.

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

Una fonte di informazioni è un oggetto riutilizzabile di livello superiore. Conoscere le origini conoscenze esistenti è utile per riutilizzare o denominare nuovi oggetti.

Usare Le origini delle informazioni - Ottenere (API REST) per elencare le origini delle informazioni in base al nome e al tipo.

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

È anche possibile restituire una singola fonte di informazioni in base al nome per esaminarne la definizione JSON.

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

Il codice JSON seguente è una risposta di esempio per un'origine knowledge SharePoint remota.

{
  "name": "my-sharepoint-ks",
  "kind": "remoteSharePoint",
  "description": "A sample remote SharePoint knowledge source",
  "encryptionKey": null,
  "remoteSharePointParameters": {
    "filterExpression": "filetype:docx",
    "containerTypeId": null,
    "resourceMetadata": [
      "Author",
      "Title"
    ]
  }
}

Creare una fonte di informazioni

Eseguire il seguente codice per creare un'origine di conoscenza remota di SharePoint.

// Create a remote SharePoint 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), credential);

var knowledgeSource = new RemoteSharePointKnowledgeSource(name: "my-remote-sharepoint-ks")
{
    Description = "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    RemoteSharePointParameters = new RemoteSharePointKnowledgeSourceParameters()
    {
        FilterExpression = "filetype:docx",
        ResourceMetadata = { "Author", "Title" }
    }
};

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

Esegui il codice seguente per creare una fonte di conoscenza SharePoint remota.

# Create a remote SharePoint knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import RemoteSharePointKnowledgeSource, RemoteSharePointKnowledgeSourceParameters

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

knowledge_source = RemoteSharePointKnowledgeSource(
    name = "my-remote-sharepoint-ks",
    description= "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    encryption_key = None,
    remote_share_point_parameters = RemoteSharePointKnowledgeSourceParameters(
        filter_expression = "filetype:docx",
        resource_metadata = ["Author", "Title"],
        container_type_id = None
    )
)

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

Usare Knowledge Sources - Creare o Aggiornare (API REST) per creare un'origine remota di conoscenza SharePoint.

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

{
    "name": "my-remote-sharepoint-ks",
    "kind": "remoteSharePoint",
    "description": "This knowledge source queries .docx files in a trusted Microsoft 365 tenant.",
    "encryptionKey": null,
    "remoteSharePointParameters": {
        "filterExpression": "filetype:docx",
        "resourceMetadata": [ "Author", "Title" ],
        "containerTypeId": null
    }
}

Proprietà specifiche dell'origine

È possibile passare le seguenti proprietà per creare una fonte di conoscenza di SharePoint remota.

Nome Description TIPO Modificabili Obbligatorio
Name Nome della fonte di conoscenze, che deve essere univoco all'interno della raccolta delle fonti di conoscenze e seguire le linee guida di denominazione per la denominazione degli oggetti in Azure AI Search. String NO Yes
Description Descrizione della fonte delle informazioni. String Yes NO
EncryptionKey Chiave gestita dal cliente per crittografare le informazioni riservate nell'origine delle informazioni. Oggetto Yes NO
RemoteSharePointParameters Parametri specifici delle origini di conoscenza SharePoint remote: FilterExpression, ResourceMetadata e ContainerTypeId. Oggetto NO NO
FilterExpression Espressione scritta nel SharePoint KQL, usata per specificare siti e percorsi per il contenuto. String Yes NO
ResourceMetadata Matrice di campi di metadati standard: autore, nome file, data di creazione, tipo di contenuto e tipo di file. Array Yes NO
ContainerTypeId ID contenitore per la connessione integrata SharePoint. Se non specificato, viene utilizzato SharePoint Online. String Yes NO
Nome Description TIPO Modificabili Obbligatorio
name Nome dell'origine delle conoscenze, che deve essere univoco all'interno della raccolta delle origini di conoscenza e seguire le linee guida per la denominazione per gli oggetti in Azure AI Search. String NO Yes
description Descrizione della fonte delle informazioni. String Yes NO
encryption_key Chiave gestita dal cliente per crittografare le informazioni riservate nell'origine delle informazioni. Oggetto Yes NO
remote_share_point_parameters Parametri specifici delle origini informative di SharePoint remoto: filter_expression, resource_metadata e container_type_id. Oggetto NO NO
filter_expression Espressione scritta nel SharePoint KQL, usata per specificare siti e percorsi per il contenuto. String Yes NO
resource_metadata Matrice di campi di metadati standard: autore, nome file, data di creazione, tipo di contenuto e tipo di file. Array Yes NO
container_type_id ID contenitore per la connessione incorporata SharePoint. Se non specificato, viene utilizzato SharePoint Online. String Yes NO
Nome Description TIPO Modificabili Obbligatorio
name Nome della fonte di conoscenza, che deve essere univoco all'interno della raccolta delle fonti di conoscenza e seguire le linee guida per la denominazione degli oggetti in Azure AI Search. String NO Yes
kind Il tipo di fonte delle informazioni, che in questo caso è remoteSharePoint. String NO Yes
description Descrizione della fonte delle informazioni. String Yes NO
encryptionKey Chiave gestita dal cliente per crittografare le informazioni riservate nell'origine delle informazioni. Oggetto Yes NO
remoteSharePointParameters Parametri specifici delle origini di conoscenza remote di SharePoint: filterExpression, resourceMetadata e containerTypeId. Oggetto NO NO
filterExpression Espressione scritta nel SharePoint KQL, usata per specificare siti e percorsi per il contenuto. String Yes NO
resourceMetadata Matrice di campi di metadati standard: autore, nome file, data di creazione, tipo di contenuto e tipo di file. Array Yes NO
containerTypeId ID del contenitore per la connessione incorporata in SharePoint. Se non specificato, viene utilizzato SharePoint Online. String Yes NO

Esempi di espressioni di filtro

Non tutte le proprietà SharePoint sono supportate nel filterExpression. Per un elenco delle proprietà supportate, vedere le informazioni di riferimento sulle API. Per le proprietà su cui è possibile eseguire query, vedere Queryable.

Altre informazioni sui filtri KQL sono disponibili nelle informazioni di riferimento sulla sintassi.

Example Espressione di filtro
Filtrare un singolo sito per ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\""
Filtrare più siti per ID "filterExpression": "SiteID:\"00aa00aa-bb11-cc22-dd33-44ee44ee44ee\" OR SiteID:\"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\""
Filtrare i file in base a un percorso specifico "filterExpression": "Path:\"https://my-demo.sharepoint.com/sites/mysite/Shared Documents/en/mydocs\""
Filtrare in base a un intervallo di date specifico "filterExpression": "LastModifiedTime >= 2024-07-22 AND LastModifiedTime <= 2025-01-08"
Filtrare i file di un tipo specifico "filterExpression": "FileExtension:\"docx\" OR FileExtension:\"pdf\" OR FileExtension:\"pptx\""
Filtrare in base ai file di un'etichetta di protezione delle informazioni specifica "filterExpression": "InformationProtectionLabelId:\"f0ddcc93-d3c0-4993-b5cc-76b0a283e252\""

Assegnare a una knowledge base

Se si è soddisfatti della fonte di conoscenza, continuare con il passaggio successivo: specificare la fonte nel knowledge base.

Eseguire query su una knowledge base

Dopo aver configurato la Knowledge Base, usare l'azione retrieve per eseguire query sul contenuto SharePoint. La SharePoint remota presenta comportamenti specifici dell'origine per il filtro in fase di query, la formulazione delle query, i campi di risposta e l'imposizione delle autorizzazioni.

Applicare un filtro KQL in fase di query

È possibile passare un oggetto FilterExpressionAddOn nella richiesta di recupero dati KnowledgeSourceParams per applicare un filtro KQL in fase di query. Se si specifica nella richiesta di recupero e nella definizione dell'origine della knowledge base, i filtri sono AND.If you specify FilterExpressionAddOn on the retrieve request and a FilterExpression on the knowledge source definition, the filters are AND'd together.

var retrievalRequest = new KnowledgeBaseRetrievalRequest();
retrievalRequest.Messages.Add(
    new KnowledgeBaseMessage(
        content: new[] {
            new KnowledgeBaseMessageTextContent("contoso product planning")
        }
    ) { Role = "user" }
);
retrievalRequest.KnowledgeSourceParams.Add(
    new RemoteSharePointKnowledgeSourceParams("my-remote-sharepoint-ks")
    {
        FilterExpressionAddOn = "filetype:docx"
    }
);

var result = await kbClient.RetrieveAsync(
    retrievalRequest, xMsQuerySourceAuthorization: token
);

È possibile passare un oggetto filter_expression_add_on nella richiesta di recupero dati knowledge_source_params per applicare un filtro KQL in fase di query. Se si specifica nella richiesta di recupero e nella definizione dell'origine della knowledge base, i filtri sono AND.If you specify filter_expression_add_on on the retrieve request and a filter_expression on the knowledge source definition, the filters are AND'd together.

from azure.search.documents.knowledgebases.models import (
    KnowledgeBaseMessage,
    KnowledgeBaseMessageTextContent,
    KnowledgeBaseRetrievalRequest,
    RemoteSharePointKnowledgeSourceParams,
)

request = KnowledgeBaseRetrievalRequest(
    messages=[
        KnowledgeBaseMessage(
            role="user",
            content=[
                KnowledgeBaseMessageTextContent(
                    text="contoso product planning"
                )
            ],
        )
    ],
    knowledge_source_params=[
        RemoteSharePointKnowledgeSourceParams(
            knowledge_source_name="my-remote-sharepoint-ks",
            filter_expression_add_on="filetype:docx",
        )
    ],
)

result = kb_client.retrieve(
    retrieval_request=request,
    x_ms_query_source_authorization=token,
)

È possibile passare un oggetto filterExpressionAddOn nella richiesta di recupero dati knowledgeSourceParams per applicare un filtro KQL in fase di query. Se si specifica nella richiesta di recupero e nella definizione dell'origine della knowledge base, i filtri sono AND.If you specify filterExpressionAddOn on the retrieve request and a filterExpression on the knowledge source definition, the filters are AND'd together.

POST {{search-url}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2025-11-01-preview
Authorization: Bearer {{accessToken}}
Content-Type: application/json
x-ms-query-source-authorization: {{user-access-token}}

{
    "messages": [
        {
            "role": "user",
            "content": [
                { "type": "text", "text": "contoso product planning" }
            ]
        }
    ],
    "knowledgeSourceParams": [
        {
            "knowledgeSourceName": "my-remote-sharepoint-ks",
            "kind": "remoteSharePoint",
            "filterExpressionAddOn": "filetype:docx"
        }
    ]
}

Scrivere query valide

Le query che chiedono informazioni sul contenuto stesso sono più efficaci rispetto alle domande relative alla posizione di un file o all'ultimo aggiornamento. Ad esempio, "Where is the keynote doc for Ignite 2024" potrebbe non restituire risultati perché il contenuto stesso non divulga la sua posizione. Un FilterExpression oggetto sui metadati è un approccio migliore per la posizione del file o le query specifiche della data.

Le query che chiedono informazioni sul contenuto stesso sono più efficaci rispetto alle domande relative alla posizione di un file o all'ultimo aggiornamento. Ad esempio, "Where is the keynote doc for Ignite 2024" potrebbe non restituire risultati perché il contenuto stesso non divulga la sua posizione. Un filter_expression oggetto sui metadati è un approccio migliore per la posizione del file o le query specifiche della data.

Le query che chiedono informazioni sul contenuto stesso sono più efficaci rispetto alle domande relative alla posizione di un file o all'ultimo aggiornamento. Ad esempio, "Where is the keynote doc for Ignite 2024" potrebbe non restituire risultati perché il contenuto stesso non divulga la sua posizione. Un filterExpression oggetto sui metadati è un approccio migliore per la posizione del file o le query specifiche della data.

Una domanda più efficace è "Qual è il documento principale per Ignite 2024". La risposta include la risposta sintetizzata, il numero di attività di query e token, oltre all'URL e ad altri metadati.

campi di risposta specifici di SharePoint

I risultati di SharePoint remoti includono campi che non vengono visualizzati per altri tipi di origine di conoscenza, ad esempio resourceMetadata, webUrl e searchSensitivityLabelInfo.

{
    "resourceMetadata": {
        "Author": "Nuwan Amarathunga;Nurul Izzati",
        "Title": "Ignite 2024 Keynote Address"
    },
    "rerankerScore": 2.489522,
    "webUrl": "https://contoso-my.sharepoint.com/keynotes/Documents/Keynote-Ignite-2024.docx",
    "searchSensitivityLabelInfo": {
        "displayName": "Confidential\\Contoso Extended",
        "sensitivityLabelId": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
        "tooltip": "Data is classified and protected.",
        "priority": 5,
        "color": "#FF8C00",
        "isEncrypted": true
    }
}

Applicare le autorizzazioni al tempo di interrogazione

Le fonti di conoscenza di SharePoint remote possono applicare autorizzazioni SharePoint al momento della query. Per abilitare questo filtro, includere il token di accesso dell'utente finale nella richiesta di recupero. Il motore di recupero passa il token all'API di recupero Copilot, che esegue una query SharePoint e restituisce solo il contenuto a cui l'utente ha accesso. Le autorizzazioni di SharePoint e le etichette di sensibilità di Microsoft Purview sono rispettate.

Poiché la SharePoint remota non usa un indice di ricerca, non è necessaria alcuna configurazione delle autorizzazioni di inserimento. Il token di accesso è l'unico requisito.

Per istruzioni sul passaggio del token, vedere Applicare le autorizzazioni in fase di query.

Eliminare una fonte di informazioni

Prima di poter eliminare una fonte di conoscenza, devi eliminare qualsiasi knowledge base che vi faccia riferimento o aggiornare la definizione della knowledge base per rimuovere il riferimento. Per le fonti di conoscenza che generano una pipeline di generazione dell'indice e dell'indicizzatore, vengono eliminati anche tutti gli oggetti generati. Tuttavia, se è stato usato un indice esistente per creare un'origine conoscenze, l'indice non viene eliminato.

Se si tenta di eliminare una fonte di conoscenza in uso, l'azione fallisce e restituisce un elenco delle basi di conoscenza interessate.

Per eliminare una fonte delle informazioni:

  1. Ottenere un elenco di tutte le knowledge base nel servizio di ricerca.

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

    Una risposta di esempio potrebbe essere simile alla seguente:

     Knowledge Bases:
       - earth-knowledge-base
       - hotels-sample-knowledge-base
       - my-demo-knowledge-base
    
  2. Ottenere una singola definizione della Knowledge Base per verificare la presenza di riferimenti all'origine della knowledge base.

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

    Una risposta di esempio potrebbe essere simile alla seguente:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Eliminare la base di conoscenza o aggiornare la base di conoscenza per rimuovere la fonte di conoscenza se sono presenti più fonti. In questo esempio viene mostrata la procedura di eliminazione.

    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. Eliminare la fonte di informazioni.

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

Prima di poter eliminare una fonte di conoscenza, devi eliminare qualsiasi knowledge base che vi faccia riferimento o aggiornare la definizione della knowledge base per rimuovere il riferimento. Per le fonti di conoscenza che generano una pipeline di generazione dell'indice e dell'indicizzatore, vengono eliminati anche tutti gli oggetti generati. Tuttavia, se è stato usato un indice esistente per creare un'origine conoscenze, l'indice non viene eliminato.

Se si tenta di eliminare una fonte di conoscenza in uso, l'azione fallisce e restituisce un elenco delle basi di conoscenza interessate.

Per eliminare una fonte delle informazioni:

  1. Ottenere un elenco di tutte le knowledge base nel servizio di ricerca.

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

    Una risposta di esempio potrebbe essere simile alla seguente:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Ottenere una singola definizione della Knowledge Base per verificare la presenza di riferimenti all'origine della knowledge base.

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

    Una risposta di esempio potrebbe essere simile alla seguente:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Eliminare la base di conoscenza o aggiornare la base di conoscenza per rimuovere la fonte di conoscenza se sono presenti più fonti. In questo esempio viene mostrata la procedura di eliminazione.

    # 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. Eliminare la fonte di informazioni.

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

Prima di poter eliminare una fonte di conoscenza, devi eliminare qualsiasi knowledge base che vi faccia riferimento o aggiornare la definizione della knowledge base per rimuovere il riferimento. Per le fonti di conoscenza che generano una pipeline di generazione dell'indice e dell'indicizzatore, vengono eliminati anche tutti gli oggetti generati. Tuttavia, se è stato usato un indice esistente per creare un'origine conoscenze, l'indice non viene eliminato.

Se si tenta di eliminare una fonte di conoscenza in uso, l'azione fallisce e restituisce un elenco delle basi di conoscenza interessate.

Per eliminare una fonte delle informazioni:

  1. Ottenere un elenco di tutte le knowledge base nel servizio di ricerca.

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

    Una risposta di esempio potrebbe essere simile alla seguente:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Ottenere una singola definizione della Knowledge Base per verificare la presenza di riferimenti all'origine della knowledge base.

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

    Una risposta di esempio potrebbe essere simile alla seguente:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Eliminare la knowledge base o aggiornare la knowledge base rimuovendo la fonte delle informazioni se sono presenti più origini. In questo esempio viene mostrata la procedura di eliminazione.

    ### Delete a knowledge base
    DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview
    api-key: {{api-key}}
    
  4. Eliminare la fonte di informazioni.

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