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.
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.
Utilizzare una fonte delle informazioni BLOB per indicizzare ed eseguire query sul contenuto BLOB di Azure in una pipeline di recupero agentico. 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 un agente o un chatbot chiama un'azione di recupero in fase di query.
A differenza di una fonte di conoscenza dell'indice di ricerca, che specifica un indice esistente e qualificato, un'origine di conoscenza blob specifica un'origine dati esterna, modelli e proprietà per generare automaticamente i seguenti oggetti di Azure AI Search:
- Origine dati che rappresenta un contenitore BLOB.
- Insieme di competenze che suddivide e, facoltativamente, vettorizza il contenuto multimodale dal contenitore.
- 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.
Annotazioni
Se l'accesso utente viene specificato a livello di documento (BLOB) in Archiviazione di Azure, un'origine delle informazioni può inoltrare i metadati delle autorizzazioni al contenuto indicizzato in Azure AI Search. Per altre informazioni, vedere Metadati delle autorizzazioni di ADLS Gen2 o Ambiti del controllo degli accessi in base al ruolo BLOB.
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 che fornisce il recupero agentico. È necessario che sia abilitato il ranker semantico.
Un account Archiviazione BLOB di Azure o Azure Data Lake Storage (ADLS) Gen2.
Contenitore BLOB con tipi di contenuto supportati per il contenuto di testo. Per la verbalizzazione facoltativa delle immagini, il tipo di contenuto supportato dipende dal fatto che il modello di completamento della chat possa analizzare e descrivere il file di immagine.
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.
- Pacchetto di anteprima più recente
Azure.Search.Documents:dotnet add package Azure.Search.Documents --prerelease
- Pacchetto di anteprima
azure-search-documentspiù recente:pip install --pre azure-search-documents
- Versione 2025-11-01-preview delle API REST del servizio di ricerca.
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 delle informazioni BLOB.
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"disableImageVerbalization": false,
"ingestionPermissionOptions": [],
"contentExtractionMode": "standard",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "text-embedding-3-large",
"apiKey": "<REDACTED>",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-ks-index"
}
}
}
Annotazioni
Le informazioni sensibili sono state omesse. Le risorse generate vengono visualizzate alla fine della risposta.
Creare una fonte di informazioni
Eseguire il codice seguente per creare una sorgente di conoscenza BLOB.
// Create a blob knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
var chatCompletionParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiGptDeployment,
ModelName = aoaiGptModel
};
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var blobParams = new AzureBlobKnowledgeSourceParameters(
connectionString: connectionString,
containerName: containerName
)
{
IsAdlsGen2 = false,
IngestionParameters = ingestionParams
};
var knowledgeSource = new AzureBlobKnowledgeSource(
name: "my-blob-ks",
azureBlobParameters: blobParams
)
{
Description = "This knowledge source pulls from a blob storage container."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Esegui il codice seguente per creare una risorsa di conoscenza BLOB.
# Create a blob knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
knowledge_source = AzureBlobKnowledgeSource(
name = "my-blob-ks",
description = "This knowledge source pulls from a blob storage container.",
encryption_key = None,
azure_blob_parameters = AzureBlobKnowledgeSourceParameters(
connection_string = "blob_connection_string",
container_name = "blob_container_name",
folder_path = None,
is_adls_gen2 = False,
ingestion_parameters = KnowledgeSourceIngestionParameters(
identity = None,
disable_image_verbalization = False,
chat_completion_model = KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
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.")
Usare Knowledge Sources - Crea o Aggiorna (API REST) per creare una fonte di conoscenza blob.
PUT {{search-url}}/knowledgesources/my-blob-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<YOUR AZURE STORAGE CONNECTION STRING>",
"containerName": "<YOUR BLOB CONTAINER NAME>",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"identity": null,
"disableImageVerbalization": null,
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-gpt-deployment}}",
"modelName": "{{aoai-gpt-model}}",
"apiKey": "{{aoai-key}}"
}
},
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}",
"apiKey": "{{aoai-key}}"
}
},
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": []
}
}
}
Proprietà specifiche dell'origine
È possibile passare le proprietà seguenti per creare una fonte di conoscenza BLOB.
| Nome | Description | TIPO | Modificabili | Obbligatorio |
|---|---|---|---|---|
Name |
Il nome della fonte delle informazioni, che deve essere univoco all'interno della raccolta delle fonti delle informazioni e seguire le linee guida per la denominazione degli oggetti in Azure AI Search. | String | NO | Yes |
Description |
Descrizione dell'origine delle informazioni. | String | Yes | NO |
EncryptionKey |
Chiave gestita dal cliente per crittografare le informazioni riservate sia nell'origine delle informazioni che negli oggetti generati. | Oggetto | Yes | NO |
AzureBlobParameters |
Parametri specifici per le origini delle informazioni BLOB: ConnectionString, ContainerName, FolderPathe IsAdlsGen2. |
Oggetto | NO | |
ConnectionString |
Un stringa di connessione basato su chiave o, se si usa un'identità gestita, l'ID della risorsa. | String | NO | Yes |
ContainerName |
Nome del contenitore di archiviazione BLOB. | String | NO | Yes |
FolderPath |
Cartella all'interno del contenitore. | String | NO | NO |
IsAdlsGen2 |
Il valore predefinito è False. Impostare su True se si usa un account di archiviazione di ADLS Gen2. |
Boolean | NO | NO |
| Nome | Description | TIPO | Modificabili | Obbligatorio |
|---|---|---|---|---|
name |
Il nome della fonte delle informazioni, che deve essere univoco all'interno della raccolta delle fonti delle informazioni e seguire le linee guida per la denominazione degli oggetti in Azure AI Search. | String | NO | Yes |
description |
Descrizione dell'origine delle informazioni. | String | Yes | NO |
encryption_key |
Chiave gestita dal cliente per crittografare le informazioni riservate sia nell'origine delle informazioni che negli oggetti generati. | Oggetto | Yes | NO |
azure_blob_parameters |
Parametri specifici per le origini delle informazioni BLOB: connection_string, container_name, folder_pathe is_adls_gen2. |
Oggetto | NO | |
connection_string |
Un stringa di connessione basato su chiave o, se si utilizza un'identità gestita, l'ID della risorsa. | String | NO | Yes |
container_name |
Nome del contenitore di archiviazione BLOB. | String | NO | Yes |
folder_path |
Cartella all'interno del contenitore. | String | NO | NO |
is_adls_gen2 |
Il valore predefinito è False. Impostare su True se si usa un account di archiviazione di ADLS Gen2. |
Boolean | NO | NO |
| Nome | Description | TIPO | Modificabili | Obbligatorio |
|---|---|---|---|---|
name |
Il nome della fonte delle informazioni, che deve essere univoco all'interno della raccolta delle fonti delle informazioni e seguire le linee guida per la denominazione degli oggetti in Azure AI Search. | String | NO | Yes |
kind |
Il tipo di origine delle conoscenze, che in questo caso è azureBlob . |
String | NO | Yes |
description |
Descrizione dell'origine delle informazioni. | String | Yes | NO |
encryptionKey |
Chiave gestita dal cliente per crittografare le informazioni riservate sia nell'origine delle informazioni che negli oggetti generati. | Oggetto | Yes | NO |
azureBlobParameters |
Parametri specifici per le origini delle informazioni BLOB: connectionString, containerName, folderPathe isADLSGen2. |
Oggetto | NO | |
connectionString |
Un stringa di connessione basata su chiave o, se si usa un'identità gestita, l'ID risorsa. | String | NO | Yes |
containerName |
Nome del contenitore di archiviazione BLOB. | String | NO | Yes |
folderPath |
Cartella all'interno del contenitore. | String | NO | NO |
isADLSGen2 |
Il valore predefinito è false. Impostare su true se si usa un account di archiviazione di ADLS Gen2. |
Boolean | NO | NO |
Proprietà dei parametri di inserimento
Solo per le fonti di conoscenza indicizzate, è possibile passare le seguenti proprietà ingestionParameters per controllare il modo in cui il contenuto viene acquisito ed elaborato.
| Nome | Description | TIPO | Modificabili | Obbligatorio |
|---|---|---|---|---|
Identity |
Identità gestita da usare nell'indicizzatore generato. | Oggetto | Yes | NO |
DisableImageVerbalization |
Abilita o disabilita l'uso della verbalizzazione delle immagini. Il valore predefinito è False, che abilita la verbalizzazione delle immagini. Impostare True su disabilitare la verbalizzazione delle immagini. |
Boolean | NO | NO |
ChatCompletionModel |
Modello di completamento della chat che verbalizza le immagini o estrae il contenuto. I modelli supportati sono gpt-4o, gpt-4o-mini, gpt-4.1gpt-4.1-mini, gpt-4.1-nano, gpt-5, , gpt-5-minie gpt-5-nano. La competenza Prompt GenAI verrà inclusa nel set di competenze generato. L'impostazione di questo parametro richiede anche che DisableImageVerbalization sia impostato su False. |
Oggetto | Solo ApiKey e DeploymentName sono modificabili |
NO |
EmbeddingModel |
Modello di incorporamento di testo che vettorizza il contenuto di testo e immagine durante l'indicizzazione e in fase di query. I modelli supportati sono text-embedding-ada-002, text-embedding-3-smalle text-embedding-3-large. La competenza di embedding Azure OpenAI verrà inclusa nel set di competenze generato e il vettorizzatore Azure OpenAI verrà incluso nell'indice generato. |
Oggetto | Solo ApiKey e DeploymentName sono modificabili |
NO |
ContentExtractionMode |
Controlla la modalità di estrazione del contenuto dai file. Il valore predefinito è minimal, che usa l'estrazione di contenuto standard per testo e immagini. Impostare su standard per il cracking e la suddivisone in blocchi dei documenti usando la competenza Comprensione dei contenuti di Azure, che verrà incluso nel set di competenze generato. Solo per standard, i parametri AiServices e AssetStore sono specificabili. |
String | NO | NO |
AiServices |
Una risorsa Microsoft Foundry per accedere ad Azure Content Understanding nei Foundry Tools. L'impostazione di questo parametro richiede che ContentExtractionMode sia impostato su standard. |
Oggetto | Solo ApiKey modificabile |
Yes |
AssetStore |
Contenitore BLOB per archiviare le immagini estratte. L'impostazione di questo parametro richiede che ContentExtractionMode sia impostato su standard. |
Oggetto | NO | NO |
IngestionSchedule |
Aggiunge informazioni di pianificazione all'indicizzatore generato. È anche possibile aggiungere una pianificazione in un secondo momento per automatizzare l'aggiornamento dei dati. | Oggetto | Yes | NO |
IngestionPermissionOptions |
Autorizzazioni a livello di documento per l'inserimento insieme al contenuto. Specificare UserIds, GroupIds o RbacScope per archiviare i metadati delle autorizzazioni nell'indice. Per indicazioni specifiche per l'origine, vedere Ingerire le autorizzazioni RBAC da Blob storage e Ingerire ACL da ADLS Gen2. Per applicare queste autorizzazioni in fase di query, vedere Applicare le autorizzazioni in fase di query. |
Array | NO | NO |
Solo per le fonti di conoscenza indicizzate, è possibile passare le seguenti proprietà ingestionParameters per controllare il modo in cui il contenuto viene acquisito ed elaborato.
| Nome | Description | TIPO | Modificabili | Obbligatorio |
|---|---|---|---|---|
identity |
Identità gestita da usare nell'indicizzatore generato. | Oggetto | Yes | NO |
disable_image_verbalization |
Abilita o disabilita l'uso della verbalizzazione delle immagini. Il valore predefinito è False, che abilita la verbalizzazione delle immagini. Impostare True su disabilitare la verbalizzazione delle immagini. |
Boolean | NO | NO |
chat_completion_model |
Modello di completamento della chat che verbalizza le immagini o estrae il contenuto. I modelli supportati sono gpt-4o, gpt-4o-mini, gpt-4.1gpt-4.1-mini, gpt-4.1-nano, gpt-5, , gpt-5-minie gpt-5-nano. La competenza Prompt GenAI verrà inclusa nel set di competenze generato. L'impostazione di questo parametro richiede anche che disable_image_verbalization sia impostato su False. |
Oggetto | Solo api_key e deployment_name sono modificabili |
NO |
embedding_model |
Modello di incorporamento di testo che vettorizza il contenuto di testo e immagine durante l'indicizzazione e in fase di query. I modelli supportati sono text-embedding-ada-002, text-embedding-3-smalle text-embedding-3-large. La skill di embedding Azure OpenAI verrà inclusa nel set di skill generato e il vettorizzatore Azure OpenAI verrà incluso nell'indice generato. |
Oggetto | Solo api_key e deployment_name sono modificabili |
NO |
content_extraction_mode |
Controlla la modalità di estrazione del contenuto dai file. Il valore predefinito è minimal, che usa l'estrazione di contenuto standard per testo e immagini. Impostare su standard per il cracking e la suddivisone in blocchi dei documenti usando la competenza Comprensione dei contenuti di Azure, che verrà incluso nel set di competenze generato. Solo per standard, i parametri ai_services e asset_store sono specificabili. |
String | NO | NO |
ai_services |
Una risorsa di Microsoft Foundry per accedere ad Azure Content Understanding nei Foundry Tools. L'impostazione di questo parametro richiede che content_extraction_mode sia impostato su standard. |
Oggetto | Solo api_key modificabile |
Yes |
asset_store |
Contenitore BLOB per archiviare le immagini estratte. L'impostazione di questo parametro richiede che content_extraction_mode sia impostato su standard. |
Oggetto | NO | NO |
ingestion_schedule |
Aggiunge informazioni di pianificazione all'indicizzatore generato. È anche possibile aggiungere una pianificazione in un secondo momento per automatizzare l'aggiornamento dei dati. | Oggetto | Yes | NO |
ingestion_permission_options |
Autorizzazioni a livello di documento per l'inserimento insieme al contenuto. Specificare user_ids, group_ids o rbac_scope per archiviare i metadati delle autorizzazioni nell'indice. Per indicazioni specifiche per l'origine, vedere Ingerire le autorizzazioni RBAC da Blob storage e Ingerire ACL da ADLS Gen2. Per applicare queste autorizzazioni in fase di query, vedere Applicare le autorizzazioni in fase di query. |
Array | NO | NO |
Solo per le fonti di conoscenza indicizzate, è possibile passare le seguenti proprietà ingestionParameters per controllare il modo in cui il contenuto viene acquisito ed elaborato.
| Nome | Description | TIPO | Modificabili | Obbligatorio |
|---|---|---|---|---|
identity |
Identità gestita da usare nell'indicizzatore generato. | Oggetto | Yes | NO |
disableImageVerbalization |
Abilita o disabilita l'uso della verbalizzazione delle immagini. Il valore predefinito è false, che abilita la verbalizzazione delle immagini. Impostare true su disabilitare la verbalizzazione delle immagini. |
Boolean | NO | NO |
chatCompletionModel |
Modello di completamento della chat che verbalizza le immagini o estrae il contenuto. I modelli supportati sono gpt-4o, gpt-4o-mini, gpt-4.1gpt-4.1-mini, gpt-4.1-nano, gpt-5, , gpt-5-minie gpt-5-nano. La competenza Prompt GenAI verrà inclusa nel set di competenze generato. L'impostazione di questo parametro richiede anche che disableImageVerbalization sia impostato su false. |
Oggetto | Solo apiKey e deploymentId sono modificabili |
NO |
embeddingModel |
Modello di incorporamento di testo che vettorizza il contenuto di testo e immagine durante l'indicizzazione e in fase di query. I modelli supportati sono text-embedding-ada-002, text-embedding-3-smalle text-embedding-3-large. La skill di incorporamento Azure OpenAI verrà inclusa nel set di competenze generato e il vettorizzatore Azure OpenAI verrà incluso nell'indice generato. |
Oggetto | Solo apiKey e deploymentId sono modificabili |
NO |
contentExtractionMode |
Controlla la modalità di estrazione del contenuto dai file. Il valore predefinito è minimal, che usa l'estrazione di contenuto standard per testo e immagini. Impostare su standard per il cracking e la suddivisone in blocchi dei documenti usando la competenza Comprensione dei contenuti di Azure, che verrà incluso nel set di competenze generato. Solo per standard, i parametri aiServices e assetStore sono specificabili. |
String | NO | NO |
aiServices |
Una risorsa di Microsoft Foundry per accedere a Azure Content Understanding in Foundry Tools. L'impostazione di questo parametro richiede che contentExtractionMode sia impostato su standard. |
Oggetto | Solo apiKey modificabile |
Yes |
assetStore |
Contenitore BLOB per archiviare le immagini estratte. L'impostazione di questo parametro richiede che contentExtractionMode sia impostato su standard. |
Oggetto | NO | NO |
ingestionSchedule |
Aggiunge informazioni di pianificazione all'indicizzatore generato. È anche possibile aggiungere una pianificazione in un secondo momento per automatizzare l'aggiornamento dei dati. | Oggetto | Yes | NO |
ingestionPermissionOptions |
Autorizzazioni a livello di documento per l'inserimento insieme al contenuto. Specificare userIds, groupIds o rbacScope per archiviare i metadati delle autorizzazioni nell'indice. Per indicazioni specifiche per l'origine, vedere Ingerire le autorizzazioni RBAC da Blob storage e Ingerire ACL da ADLS Gen2. Per applicare queste autorizzazioni in fase di query, vedere Applicare le autorizzazioni in fase di query. |
Array | NO | NO |
Controllare lo stato dell'inserimento
Eseguire il codice seguente per monitorare l'avanzamento e l'integrità dell'inserimento, incluso lo stato dell'indicizzatore per le fonti di conoscenza che generano una pipeline dell'indicizzatore e popolano un indice di ricerca.
// 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);
Una risposta per una richiesta che include parametri di inserimento e inserisce attivamente contenuto potrebbe essere simile all'esempio seguente.
{
"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
}
}
Eseguire il codice seguente per monitorare lo stato e l'integrità dell'inserimento, incluso lo stato dell'indicizzatore per le sorgenti di conoscenza che generano una pipeline per l'indicizzatore e popolano un indice di ricerca.
# 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))
Una risposta per una richiesta che include parametri di inserimento e inserisce attivamente contenuto potrebbe essere simile all'esempio seguente.
{
"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
}
}
Usare Knowledge Sources - Status (API REST) per monitorare lo stato e l'integrità dell'inserimento, incluso lo stato dell'indicizzatore per le origini delle informazioni che generano una pipeline dell'indicizzatore e popolano un indice di ricerca.
### 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
Una risposta per una richiesta che include parametri di inserimento e inserisce attivamente contenuto potrebbe essere simile all'esempio seguente.
{
"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
}
}
Esaminare gli oggetti creati
Quando si crea una fonte delle informazioni BLOB, il servizio di ricerca crea anche un indicizzatore, un indice, un set di competenze e un'origine dati. Non è consigliabile modificare questi oggetti, perché l'introduzione di un errore o un'incompatibilità può interrompere la pipeline.
Dopo aver creato un'origine conoscenze, la risposta elenca gli oggetti creati. Questi oggetti vengono creati in base a un modello fisso e i relativi nomi sono basati sul nome dell'origine della conoscenza. Non è possibile modificare i nomi degli oggetti.
È consigliabile usare il portale di Azure per convalidare la creazione dell'output. Il flusso di lavoro è:
- Controllare l'indicizzatore per verificare la presenza di messaggi di esito positivo o negativo. Gli errori di connessione o quota vengono visualizzati qui.
- Controllare l'indice per i contenuti ricercabili. Utilizza Explorer di ricerca per eseguire query.
- Verificare le capacità per sapere come il contenuto viene suddiviso in parti e, facoltativamente, vettorializzato.
- Controllare l'origine dati per informazioni dettagliate sulla connessione. L'esempio usa le chiavi API per semplicità, ma è possibile usare Microsoft Entra ID per l'autenticazione e il controllo degli accessi in base al ruolo per l'autorizzazione.
Assegnare a una knowledge base
Se si è soddisfatti della fonte di conoscenza, continuare con il passaggio successivo: specificare la fonte nel knowledge base.
Dopo aver configurato la Knowledge Base, usare l'azione di recupero per eseguire query sull'origine della knowledge base.
Suggerimento
Per applicare le autorizzazioni a livello di documento, impostare IngestionPermissionOptions quando si crea questa sorgente di conoscenza e quindi includere il token di accesso dell'utente nella richiesta di recupero dati. Per altre informazioni, vedere Applicare le autorizzazioni in fase di query.
Suggerimento
Per applicare le autorizzazioni a livello di documento, impostare ingestion_permission_options quando si crea questa sorgente di conoscenza e quindi includere il token di accesso dell'utente nella richiesta di recupero dati. Per altre informazioni, vedere Applicare le autorizzazioni in fase di query.
Suggerimento
Per applicare le autorizzazioni a livello di documento, impostare ingestionPermissionOptions quando si crea questa sorgente di conoscenza e quindi includere il token di accesso dell'utente nella richiesta di recupero dati. Per altre informazioni, 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 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}"); }Una risposta di esempio potrebbe essere simile alla seguente:
Knowledge Bases: - earth-knowledge-base - hotels-sample-knowledge-base - my-demo-knowledge-baseOttenere 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 }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.");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 di conoscenza:
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" } ] }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" } }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.")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 di conoscenza:
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" } ] }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" } }Eliminare la Knowledge Base o aggiornare la Knowledge Base rimuovendo la fonte di conoscenza se sono presenti più fonti. 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}}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}}