Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.
Nota
Alcune funzionalità di recupero agentico sono disponibili a livello generale nell'API REST 2026-04-01. Questa funzionalità rimane tuttavia in anteprima e richiede un'API REST di anteprima. Le funzionalità di anteprima vengono fornite senza un contratto di servizio e non sono consigliate per i carichi di lavoro di produzione. Per ulteriori informazioni, consultare Condizioni aggiuntive per l'utilizzo di Microsoft Azure per le anteprime.
Importante
Queste funzionalità e funzionalità fanno parte dell'API REST 2026-08-01-preview. L'anteprima 2026-08-01-preview viene concessa in licenza all'utente come parte della sottoscrizione di Azure ed è soggetta alle condizioni applicabili alle "Anteprime" nei Microsoft Product Terms, nel Microsoft Products and Services Data Protection Addendum ("DPA") e nelle Condizioni d'uso supplementari per le anteprime di Microsoft Azure.
La versione 2026-08-01-preview supporta le connessioni ad altri servizi di servizi Microsoft e di terze parti. L'utilizzo di questi servizi è soggetto alle rispettive condizioni e potrebbe comportare l'elaborazione o l'archiviazione dei dati al di fuori del limite di conformità Azure, nonché il flusso dei dati nel limite di conformità Azure.
L'anteprima 2026-08-01-preview non può modificare le autorizzazioni di accesso impostate all'esterno dell'anteprima 2026-08-01-preview. Se si usa la versione 2026-08-01-preview con contenuti soggetti a restrizioni di accesso o autorizzazioni, si verificherà un ritardo prima che 2026-08-01-preview recepisca le modifiche apportate a tali restrizioni di accesso o autorizzazioni.
È tua responsabilità gestire l'eventuale trasferimento dei tuoi dati al di fuori dei confini di conformità e geografici della tua organizzazione e le relative implicazioni, nonché garantire che siano predisposte le autorizzazioni, i limiti e le approvazioni appropriati.
L'utente è responsabile di esaminare e testare attentamente le applicazioni compilate nel contesto dei casi d'uso specifici e di prendere tutte le decisioni e le personalizzazioni appropriate. Ciò include l'implementazione di mitigazioni di intelligenza artificiale responsabili, ad esempio metaprompt, filtri di contenuto o altri sistemi di sicurezza, e garantire che le applicazioni soddisfino gli standard di qualità, affidabilità, sicurezza e attendibilità appropriati. Per altre informazioni, vedere la nota sulla trasparenza Azure AI Search.
Una fonte di conoscenza SharePoint indicizzata (anteprima) importa i contenuti di SharePoint in una pipeline di recupero basata su agenti in Azure AI Search. Le origini delle informazioni vengono create in modo indipendente, a cui viene fatto riferimento in una Knowledge Base e usate come dati di base quando viene eseguita una query sulla Knowledge Base in fase di esecuzione.
Quando si crea un'origine della conoscenza SharePoint indicizzata, una stringa di connessione SharePoint, modelli e proprietà devono essere specificati per generare automaticamente gli oggetti Azure AI Search seguenti.
- Un'origine dati che punta ai siti di SharePoint e usa la stringa di connessione senza modifiche. L'origine dati generata segue le regole dell'indicizzatore SharePoint
TenantId. - Insieme di competenze che suddivide e, facoltativamente, vettorizza i contenuti multimodali.
- Indice che archivia il contenuto arricchito e soddisfa i criteri per il recupero agentico.
- Indicizzatore che usa gli oggetti precedenti per guidare la pipeline di indicizzazione e arricchimento.
L'indicizzatore generato è conforme alle SharePoint nell'indicizzatore Microsoft 365, i cui prerequisiti, i formati di documento supportati e le limitazioni si applicano anche alle origini di conoscenza indicizzate SharePoint. Per altre informazioni, vedere la documentazione dell'indicizzatore SharePoint e i limiti dell'indicizzatore. Se il set di competenze generato chiama un servizio esterno, si applicano anche i limiti di input e servizio della competenza.
Supporto per l'utilizzo
| Portal di Azure | portale Microsoft Foundry | .NET SDK | PYTHON SDK | JAVA SDK | JavaScript SDK | API REST |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Prerequisiti
Servizio di Ricerca con intelligenza artificiale di Azure disponibile in qualsiasi area che supporta il recupero tramite agenti autonomi.
Completamento dei prerequisiti dell'indicizzatore SharePoint.
Completamento dei passaggi di configurazione dell'indicizzatore di SharePoint seguenti:
P 1: Abilitare un'identità gestita per Azure AI Search (richiesta solo per l'autenticazione senza segreto; ignorare se si usa un segreto client)
Passaggio 2: Scegliere le autorizzazioni delegate o dell'applicazione
Passaggio 3: Creare una registrazione dell'applicazione Microsoft Entra (per le autorizzazioni dell'applicazione, si configura anche un segreto del client o un'autenticazione senza segreti)
Se
contentExtractionModeèstandard, usa una risorsa Microsoft Foundry in un'area supportata da Comprensione dei contenuti in Foundry Tools e l'endpointhttps://<resource-name>.services.ai.azure.com. Distribuisci un modello di embedding e distribuisci un modello di chat multimodale se abiliti la descrizione delle immagini.Autorizzazione per la creazione di origini delle informazioni. Configurare l'autenticazione senza chiave con i ruoli Collaboratore servizio di ricerca e Collaboratore ai dati dell'indice di ricerca assegnati all'account utente (scelta consigliata) o usare una chiave API di amministrazione.
Se l'origine dati di conoscenza specifica un modello Azure OpenAI per incorporamenti vettoriali o descrizione delle immagini, il servizio di ricerca deve avere un'identità gestita con autorizzazioni Utente di Servizi cognitivi sulla risorsa Microsoft Foundry.
Se imposti
networkAccessModesuprivate, completa i requisiti seguenti:Usare un servizio di ricerca S2, S3, L1 o L2.
Conservare la stringa di connessione di SharePoint, l'applicazione Microsoft Entra e le autorizzazioni di SharePoint descritte nei prerequisiti precedenti. SharePoint Online non è una destinazione di collegamento privato condivisa supportata, quindi la modalità privata non rende privata questa connessione di origine.
Per ogni endpoint del modello protetto, abilitare un'identità gestita nel servizio di ricerca, concedergli il ruolo Utente servizi cognitivi nella risorsa e creare e approvare un collegamento privato condiviso. Usare l'ID di gruppo
openai_accountper gli endpoint Azure OpenAI efoundry_accountper gli endpoint delle risorse Foundry.
Pacchetto di anteprima
Azure.Search.Documentspiù recente:dotnet add package Azure.Search.Documents --prereleasePer l'autenticazione senza chiave, il
Azure.Identitypacchetto:dotnet add package Azure.Identity
Pacchetto di anteprima
azure-search-documentspiù recente:pip install --pre azure-search-documentsPer l'autenticazione senza chiave, il
azure-identitypacchetto:pip install azure-identity
Versione 2026-08-01-preview dell'API REST del servizio di ricerca.
Per l'autenticazione senza chiave, includere un token Microsoft Entra ID nell'intestazione
Authorizationdi ogni richiesta HTTP.
Verificare la presenza di fonti di conoscenza esistenti
Un'origine delle conoscenze è un oggetto riutilizzabile di primo livello. 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}");
}
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}}
Reference:Knowledge Sources - List
Puoi anche restituire una singola fonte di conoscenza per 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));
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}}
Reference:Fonti di Conoscenza - Ottieni
Il seguente JSON è un esempio di risposta per una fonte di conoscenza SharePoint indicizzata.
{
"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",
"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
}
Creare una fonte di conoscenza
Eseguire il codice seguente per creare un'origine di conoscenza di SharePoint indicizzata.
// Create an IndexedSharePoint knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.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
}
};
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.");
Reference:SearchIndexClient, IndexedSharePointKnowledgeSource
# Create an indexed SharePoint knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import IndexedSharePointKnowledgeSource, IndexedSharePointKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceContentExtractionMode
from azure.search.documents.knowledgebases.models import KnowledgeSourceIngestionParameters, KnowledgeSourceNetworkAccessMode, KnowledgeSourceAzureOpenAIVectorizer
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
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(
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 = None
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Reference:SearchIndexClient
### Create an indexed SharePoint knowledge source
PUT {{search-endpoint}}/knowledgesources/my-indexed-sharepoint-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "my-indexed-sharepoint-ks",
"kind": "indexedSharePoint",
"description": "A sample indexed SharePoint knowledge source.",
"encryptionKey": null,
"indexedSharePointParameters": {
"connectionString": "{{sharepoint-federated-connection-string}}",
"containerName": "defaultSiteLibrary",
"query": null,
"ingestionParameters": {
"networkAccessMode": "public",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"resourceUri": "{{aoai-endpoint}}"
}
},
"chatCompletionModel": null,
"disableImageVerbalization": false,
"ingestionSchedule": null,
"ingestionPermissionOptions": [],
"contentExtractionMode": "minimal"
}
}
}
Riferimento:Fonti di conoscenza - Creare o Aggiornare
Proteggere le dipendenze di Azure durante l'acquisizione
A partire dalla versione 2026-08-01-preview dell'API, networkAccessMode determina l'ambiente di rete in cui viene eseguito l'indicizzatore generato per un'origine di conoscenza SharePoint indicizzata. Questa impostazione influisce solo sull'acquisizione e non modifica le richieste o le risposte di recupero della base di conoscenza.
networkAccessMode l'impostazione predefinita è public, che mantiene il comportamento di rete pubblica esistente. Quando networkAccessMode è private, l'indicizzatore generato viene eseguito nell'ambiente di esecuzione privata. Usa collegamenti privati condivisi approvati per accedere alle dipendenze di Azure supportate, ad esempio modelli di Azure OpenAI e risorse di Microsoft Foundry.
Importante
Per le fonti di conoscenza SharePoint indicizzate, la modalità privata si applica solo alle dipendenze di Azure supportate. SharePoint Online non è una destinazione di collegamento privato condivisa supportata, quindi la connessione di origine SharePoint rimane pubblica.
Per configurare e verificare l'accesso privato alle dipendenze Azure supportate:
Completare i prerequisiti della rete privata.
Impostare
networkAccessModesuprivatenella richiesta di creazione dell'origine dati della knowledge base. È possibile impostare questa proprietà solo durante la creazione. Per modificarla successivamente, eliminare e ricreare l'origine della conoscenza.La creazione può avere esito negativo se il livello di servizio o il runtime non supporta l'esecuzione privata o se non esiste un collegamento privato condiviso richiesto.
Verificare che l'indicizzatore
executionEnvironmentgenerato siaprivate.Verificare che ogni collegamento privato condiviso richiesto sia approvato e che sia destinato alla dipendenza corretta. La creazione con esito positivo non conferma l'approvazione o la destinazione del collegamento.
Monitorare lo stato dell'origine dati finché
lastSynchronizationState.endTimenon assume un valore. Verificare cheitemsUpdatesFailedsia0e quindi verificare il contenuto di origine specifico del connettore. La sincronizzazione non riesce se una dipendenza non è raggiungibile.
Usare analizzatori automatici per linguaggio
A partire dalla versione 2026-08-01-preview dell'API, sono disponibili analizzatori automatici specifici per lingua per le origini dati blob, OneLake indicizzato e SharePoint indicizzato della conoscenza. Se abilitata, Azure AI Search rileva la lingua di ogni documento di origine e applica automaticamente un analizzatore del linguaggio Microsoft corrispondente. Non viene specificato alcun analizzatore nella definizione dell'origine dati o in una query.
Per abilitare gli analizzatori automatici per lingua, impostare contentExtractionMode su minimal e configurare ingestionParameters.aiServices nella definizione dell'origine dati di conoscenza.
Per l'autenticazione senza chiave, omettere aiServices.apiKey e assegnare il ruolo utente di Servizi cognitivi nella risorsa Microsoft Foundry all'identità gestita del servizio di ricerca. Per l'autenticazione basata su chiave, impostare su aiServices.apiKey una chiave valida per la risorsa Foundry.
Sono supportate le lingue seguenti:
- Italiano
- Japanese
- Francese
- Spagnolo
- Tedesco
- Olandese
- Italian
- Portoghese brasiliano
- Portoghese europeo
- Cinese semplificato
- Cinese tradizionale
- Coreano
Per il contenuto multilingue, Azure AI Search seleziona un analizzatore in base alla lingua rilevata predominante. Usa l'analizzatore standard quando la lingua non è supportata o incerta.
Quando si abilitano gli analizzatori automatici per linguaggio, Azure AI Search aggiunge campi di contenuto specifici della lingua per ogni lingua supportata allo schema dell'indice generato, indipendentemente dal fatto che i dati contengano documenti in tali lingue. Durante l'inserimento, i documenti vengono indirizzati al campo specifico della lingua appropriato in base alla lingua rilevata.
I campi del linguaggio inutilizzati non contengono contenuto indicizzato e hanno un impatto minimo sull'archiviazione, ma rimangono parte dello schema dell'indice e contano per il limite dei campi dell'indice. Prendere in considerazione i campi aggiuntivi quando si pianificano i requisiti di progettazione, conteggio dei campi e archiviazione dell'indice. Per altre informazioni, vedere Limiti degli indici e Stimare e gestire la capacità di un servizio di ricerca.
Il rilevamento della lingua è soggetto a fatturazione dopo la quota gratuita per l'arricchimento AI. Per altre informazioni, vedere Arricchimenti gratuiti.
Controllare lo stato di inserimento
Eseguire il codice seguente per monitorare lo stato e l'integrità dell'inserimento, inclusi il tipo di origine delle informazioni e gli errori dettagliati di indicizzazione per le origini delle informazioni che generano una pipeline dell'indicizzatore e popolano un indice di ricerca.
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
Riferimento:Fonti di Conoscenza - Ottieni Stato
Una risposta per una richiesta che include parametri di inserimento e inserisce attivamente contenuto potrebbe essere simile all'esempio seguente.
{
"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
}
}
Nota
La proprietà kind e l'array currentSynchronizationState.errors[] con i dettagli degli errori a livello di documento sono disponibili a partire dalla versione API 2026-04-01. Per le versioni precedenti dell'API, questi campi non vengono restituiti. Il lastSynchronizationState.status campo è anche nuovo nel 2026-04-01.
Esaminare gli oggetti generati
Quando si crea questa origine conoscenze, Azure AI Search genera automaticamente un'origine dati, un set di competenze, un indicizzatore e un indice. La risposta di creazione elenca ogni oggetto in createdResources.
Questi oggetti vengono generati in base a un modello fisso e i relativi nomi si basano sul nome dell'origine conoscenze. Non è possibile modificare i nomi degli oggetti. Evitare di modificare direttamente questi oggetti, perché le modifiche possono introdurre errori o incompatibilità che interrompono la pipeline dell'indicizzatore.
È possibile usare il portale di Azure per convalidare la creazione di oggetti. Il flusso di lavoro è:
Controllare l'indicizzatore per i messaggi di esito positivo o negativo. Gli errori di connessione o quota vengono visualizzati qui.
Controllare l'origine dati per verificare la connessione all'archivio dati. La connessione utilizza una stringa di connessione o un'identità gestita, a seconda di come è stata configurata l'origine dati.
Controlla il set di competenze per vedere come i contenuti sono suddivisi in blocchi ed eventualmente vettorializzati.
Controllare l'indice per vedere in che modo il contenuto viene indicizzato ed esposto per il recupero, inclusi i campi ricercabili e filtrabili e quali campi archiviano vettori per la ricerca di somiglianza. Usa Esplora ricerca per eseguire delle query sull'indice generato.
Assegnare a una knowledge base
Se si è soddisfatti dell'origine delle informazioni, aggiungerla a una Knowledge Base.
Per qualsiasi knowledge base che specifica un'origine SharePoint di conoscenza indicizzata, assicurarsi di impostare includeReferenceSourceData su true. Questo passaggio è necessario per eseguire il pull dell'URL del documento di origine nella citazione.
Eseguire una query su una base di conoscenza
Dopo aver configurato la Knowledge Base, chiamare l'azione di recupero o l'endpoint MCP per eseguire una query sull'origine della knowledge base. Scegliere la configurazione corrispondente allo scenario.
Applicare le autorizzazioni a livello di documento
Per applicare le autorizzazioni a livello di documento, impostare ingestionPermissionOptions creando questa fonte di conoscenza, e quindi includere il token di accesso dell'utente nella richiesta di recupero. Per altre informazioni, vedere Applicare le autorizzazioni in fase di query (anteprima).
Per i risultati mancanti, imprevisti o non riusciti di una query di autorizzazione SharePoint indicizzata, vedere Risolvere i problemi relativi al filtro delle autorizzazioni SharePoint.
Immagini incorporate nei documenti di Surface
Per visualizzare nelle risposte di sintesi delle risposte le immagini incorporate nei documenti (ad esempio diagrammi o scansioni), configurare assetStore in questa origine di conoscenza e quindi abilitare la distribuzione delle immagini nella knowledge base. La gestione delle immagini non è supportata quando ingestionPermissionOptions è configurata. Per ulteriori informazioni, consultare Immagini incorporate nei documenti Surface nel recupero agentico (anteprima).
Eliminare una fonte di conoscenza
Prima di poter eliminare una fonte di conoscenza, è necessario eliminare qualsiasi base di conoscenza che vi faccia riferimento o aggiornare la definizione della base di conoscenza per rimuovere il riferimento. Per le fonti di conoscenza che generano una pipeline 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 attualmente in uso, l'azione fallisce e restituisce un elenco delle basi di conoscenza interessate.
Per eliminare una fonte di conoscenza:
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}"); }Reference:SearchIndexClient
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" } ] }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);Reference:SearchIndexClient
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 }Eliminare la Knowledge Base o, se si dispone di più origini informazioni, aggiornare la Knowledge Base per rimuovere l'origine. Questo esempio mostra l'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.");Reference:SearchIndexClient
Eliminare l'origine delle informazioni.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Reference:SearchIndexClient
Ottenere un elenco di tutte le knowledge base nel servizio di ricerca.
# 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
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" } ] }Ottenere una singola definizione della Knowledge Base per verificare la presenza di riferimenti all'origine della knowledge base.
# 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
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" } }Eliminare la Knowledge Base o, se si dispone di più origini informazioni, aggiornare la Knowledge Base per rimuovere l'origine. Questo esempio mostra l'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.")Reference:SearchIndexClient
Eliminare l'origine delle 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.")Reference:SearchIndexClient
Ottenere un elenco di tutte le knowledge base nel servizio di ricerca.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}Reference:Knowledge Bases - List
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" } ] }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-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Riferimento:Basi di conoscenza - Get
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" } }Eliminare la Knowledge Base o, se si dispone di più origini informazioni, aggiornare la Knowledge Base per rimuovere l'origine. Questo esempio mostra l'eliminazione.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Reference:Basi di conoscenza - Elimina
Eliminare l'origine delle informazioni.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Riferimento:Fonti di Conoscenza - Elimina
Errori noti
L'origine dati e l'indicizzatore SharePoint generati usano lo stesso comportamento di convalida e autenticazione del tenant Microsoft Entra degli indicizzatori di SharePoint configurati direttamente. Per gli errori correlati al tenant, esaminare lo stato e la cronologia di esecuzione dell'indicizzatore generato e quindi seguire la Invalid AAD tenant correzione.