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.
Importante
Queste funzionalità e funzionalità fanno parte dell'API REST 2026-05-01-preview. L'anteprima 2026-05-01-preview è concessa in licenza all'utente come parte della sottoscrizione Azure ed è soggetta ai termini applicabili alle "Anteprime" nei Microsoft Product Terms, nel Microsoft Products and Services Data Protection Addendum ("DPA") e nei Supplemental Terms of Use for Microsoft Azure Previews.
La versione 2026-05-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.
È 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 Azure SQL indicizzata (anteprima) importa righe da database SQL di Azure o Istanza gestita di SQL di Azure 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.
A differenza delle origini dati basate su file, come Archiviazione BLOB di Azure e OneLake, ogni riga SQL è considerata un documento logico. Lo schema dell'indice viene gestito dal cliente tramite mapping espliciti di colonne anziché uno schema di documento fisso.
Quando si crea un'origine della conoscenza Azure SQL indicizzata, si specificano un'origine dati SQL, mappature facoltative delle colonne e modelli facoltativi per generare automaticamente i seguenti oggetti di Azure AI Search:
- Un'origine dati che rappresenta la tabella o la vista SQL.
- Un indice i cui campi derivano dalle mappature delle tue colonne.
- Set di competenze che genera incorporamenti. Il servizio crea un set di competenze solo quando si specifica
embeddingColumns. - Indicizzatore che usa gli oggetti precedenti per guidare la pipeline di inserimento.
L'indicizzatore generato è conforme all'indicizzatore Azure SQL, i cui prerequisiti, i criteri di rilevamento delle modifiche e le limitazioni si applicano anche alle origini conoscenze indicizzate Azure SQL. Per altre informazioni, vedere la documentazione dell'indicizzatore Azure SQL.
Supporto per l'utilizzo
| Portale di Azure | Portale di 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 Azure SQL, tra cui:
Un database SQL di Azure o Istanza gestita di SQL di Azure con una tabella o una vista da inserire.
Una chiave primaria a valore singolo nella tabella o nella vista di origine.
Per i valori, una colonna adatta al rilevamento delle variazioni del livello massimo raggiunto. È consigliabile usare una
rowversioncolonna.
Autorizzazioni 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.
Se si specifica
embeddingColumns, il servizio di ricerca deve disporre di un'identità gestita con autorizzazioni Cognitive Services User sulla risorsa Microsoft Foundry che ospita il modello di embedding.
- Pacchetto di anteprima
Azure.Search.Documentspiù recente:dotnet add package Azure.Search.Documents --prerelease
- Pacchetto di anteprima
azure-search-documentspiù recente:pip install --pre azure-search-documents
- Versione 2026-05-01-preview delle API REST del servizio di ricerca.
Limitazioni e considerazioni
- Una fonte di dati può attingere dati da una sola tabella o da una sola vista.
- La tabella o la vista di origine deve avere una chiave primaria a valore singolo. Le chiavi composite non sono supportate.
- La chiave primaria viene individuata automaticamente e non può essere sottoposta a override.
-
contentExtractionModesupporta solo"minimal". - L'estrazione di immagini e la verbalizzazione delle immagini non sono supportate.
- La sincronizzazione in tempo reale non è supportata. L'indicizzatore generato è basato sulla pianificazione.
- Il recupero SQL in tempo reale non è supportato. La fonte di conoscenza è indicizzata, non è remota.
Preparare l'indicizzatore generato
Un'origine dati di conoscenza Azure SQL indicizzata crea automaticamente un indicizzatore per gestire l'ingestione. Esaminare i dettagli seguenti prima di creare l'origine delle informazioni.
Rilevamento delle modifiche
L'indicizzatore generato usa il rilevamento delle modifiche standard dell'indicizzatore di Azure SQL:
Tabelle: Il servizio applica automaticamente il rilevamento delle modifiche integrato di SQL . Abilitare il rilevamento delle modifiche SQL nella tabella di origine prima di creare l'origine delle informazioni.
Visualizzazioni: Il servizio utilizza il metodo rilevamento delle modifiche tramite high-water-mark. Specificare la colonna da usare in
highWaterMarkColumn. Unarowversioncolonna è fortemente consigliata. Per rilevare le eliminazioni in una vista, includere nella vista una colonna marcatrice di eliminazione temporanea, come descritto nella Politica di rilevamento delle eliminazioni delle colonne di eliminazione temporanea.
Authentication
L'indicizzatore generato supporta due opzioni di autenticazione:
SQL authentication: Specificare un nome utente e una password nel stringa di connessione.
Autenticazione tramite identità gestita: Usa un'identità gestita assegnata dal sistema o assegnata dall'utente che dispone di Azure RBAC e di ruoli a livello di database sulla risorsa SQL.
Per i formati stringa di connessione, i requisiti dei ruoli e i passaggi di configurazione, vedere i prerequisiti dell'indicizzatore Azure SQL e Connettersi tramite un'identità gestita.
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
api-key: {{api-key}}
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}}
api-key: {{api-key}}
Reference:Fonti di Conoscenza - Ottieni
Il seguente JSON è una risposta di esempio per un'origine della conoscenza di Azure SQL indicizzata.
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Sample indexed Azure SQL knowledge source.",
"encryptionKey": null,
"indexedSqlParameters": {
"connectionString": "<SQL database connection string>",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<Foundry resource endpoint URI>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
},
"createdResources": {
"datasource": "indexedsqlks-datasource",
"indexer": "indexedsqlks-indexer",
"skillset": "indexedsqlks-skillset",
"index": "indexedsqlks-index"
}
}
}
}
Creare una fonte di conoscenza
Esegui il codice seguente per creare un'origine dati di Azure SQL indicizzata.
using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel,
ApiKey = aoaiKey
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
ContentExtractionMode = "minimal",
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var sqlParams = new IndexedSqlKnowledgeSourceParameters(
connectionString: sqlConnectionString,
tableOrView: "dbo.tbl_hotels")
{
ContentColumns =
{
new ContentColumnMapping("hotelName", "HotelName", "Edm.String"),
new ContentColumnMapping("description", "Description", "Edm.String")
},
EmbeddingColumns =
{
new EmbeddingColumnMapping("descriptionVector", "Description")
},
IngestionParameters = ingestionParams
};
var knowledgeSource = new IndexedSqlKnowledgeSource(
name: "indexedsqlks",
indexedSqlParameters: sqlParams)
{
Description = "Indexed Azure SQL knowledge source."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Reference:SearchIndexClient, IndexedSqlKnowledgeSource
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
ContentColumnMapping,
EmbeddingColumnMapping,
IndexedSqlKnowledgeSource,
IndexedSqlKnowledgeSourceParameters,
)
from azure.search.documents.knowledgebases.models import (
KnowledgeSourceAzureOpenAIVectorizer,
KnowledgeSourceIngestionParameters,
)
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
embedding_params = AzureOpenAIVectorizerParameters(
resource_url="aoai_endpoint",
deployment_name="aoai_embedding_deployment",
model_name="aoai_embedding_model",
api_key="aoai_key",
)
ingestion_params = KnowledgeSourceIngestionParameters(
content_extraction_mode="minimal",
embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=embedding_params
),
)
knowledge_source = IndexedSqlKnowledgeSource(
name="indexedsqlks",
description="Indexed Azure SQL knowledge source.",
indexed_sql_parameters=IndexedSqlKnowledgeSourceParameters(
connection_string="Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
table_or_view="dbo.tbl_hotels",
content_columns=[
ContentColumnMapping(
name="hotelName",
source_field="HotelName",
search_field_type="Edm.String",
),
ContentColumnMapping(
name="description",
source_field="Description",
search_field_type="Edm.String",
),
],
embedding_columns=[
EmbeddingColumnMapping(
name="descriptionVector",
source_field="Description",
)
],
ingestion_parameters=ingestion_params,
),
)
index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Reference:SearchIndexClient
### Create an indexed Azure SQL knowledge source
PUT {{search-url}}/knowledgesources/indexedsqlks?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/json
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Indexed Azure SQL knowledge source.",
"indexedSqlParameters": {
"connectionString": "Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}",
"apiKey": "{{aoai-key}}"
}
}
}
}
}
Riferimento:Fonti di conoscenza - Crea o Aggiorna
Proprietà specifiche dell'origine
Le proprietà seguenti si applicano alle origini dati di Azure SQL indicizzate.
| Proprietà | Description | Type | Modificabile | Obbligatorio |
|---|---|---|---|---|
name |
Il nome dell'origine della conoscenza. Il nome deve essere univoco all'interno della raccolta di origini dati e rispettare le linee guida per la denominazione degli oggetti in Azure AI Search. | string | Sì | Sì |
kind |
Il tipo di origine delle conoscenze, che in questo caso è indexedSql . |
string | No | Sì |
description |
Descrizione dell'origine delle informazioni. | string | Sì | No |
encryptionKey |
Chiave gestita dal cliente per crittografare le informazioni riservate sia nell'origine delle informazioni che negli oggetti generati. | oggetto | Sì | No |
indexedSqlParameters |
Parametri specifici delle fonti di conoscenza indicizzate di Azure SQL, descritti nella sezione seguente. | oggetto | Sì |
indexedSqlParameters proprietà
Le proprietà seguenti sono specifiche dell'oggetto indexedSqlParameters di un'origine dati Azure SQL per una knowledge base indicizzata.
| Proprietà | Description | Type | Modificabile | Obbligatorio |
|---|---|---|---|---|
connectionString |
Una stringa di connessione con autenticazione SQL o identità gestita per database SQL di Azure o Istanza gestita di SQL di Azure. Per i formati di credenziali supportati, vedere i prerequisiti dell'indicizzatore Azure SQL. | string | No | Sì |
tableOrView |
Nome completo della tabella o della vista SQL da inserire, specificato nel schema.objectName formato . Una fonte di dati attinge dati da una sola tabella o da una sola vista. |
string | No | Sì |
highWaterMarkColumn |
Obbligatorio quando tableOrView fa riferimento a una visualizzazione. Il nome della colonna utilizzata per il rilevamento delle variazioni rispetto al valore massimo. È consigliabile usare una rowversion colonna. Per ulteriori informazioni, consultare Politica di rilevamento delle modifiche al limite massimo. |
string | No | Condizionale |
contentColumns |
Un array di mappature di colonna che definisce quali colonne SQL vengono trattate come contenuto di testo ricercabile nell'indice generato. Ogni mappatura deve usare Edm.String come searchFieldType. |
Array | No | No |
embeddingColumns |
Un array di mappature di embedding che definisce quali colonne SQL vengono utilizzate per generare campi vettore. | Array | No | No |
ingestionParameters |
Un sottoinsieme dei parametri di acquisizione dell'origine di conoscenza standard. | oggetto | No |
Mappatura delle colonne
contentColumns utilizza il seguente schema di mappatura delle colonne.
| Proprietà | Description | Type | Modificabile | Obbligatorio |
|---|---|---|---|---|
name |
Nome del campo visualizzato nell'indice Azure AI Search generato. | string | No | Sì |
sourceField |
Colonna SQL il cui valore popola il campo di destinazione. | string | No | Sì |
searchFieldType |
Tipo di campo Azure AI Search per il campo generato. Per contentColumns, deve essere Edm.String. |
string | No | Sì |
Mappatura incorporata
embeddingColumns utilizza la seguente forma della mappatura di embedding.
| Proprietà | Description | Type | Modificabile | Obbligatorio |
|---|---|---|---|---|
name |
Nome del campo vettore di destinazione creato dal servizio nell'indice generato. Ad esempio, potrebbe essere descriptionVector. |
string | No | Sì |
sourceField |
Colonna SQL il cui contenuto di testo viene inviato al modello di incorporamento. | string | No | Sì |
ingestionParameters proprietà
Per le fonti di conoscenza indicizzate di Azure SQL, lo schema ingestionParameters esistente rimane invariato, ma si applicano solo le seguenti proprietà.
| Proprietà | Description | Type | Modificabile | Obbligatorio |
|---|---|---|---|---|
contentExtractionMode |
Deve essere "minimal". Altre modalità non sono supportate perché Azure SQL'inserimento è basato su righe e non estrae contenuto da documenti binari. |
string | No | No |
embeddingModel |
Modello di incorporamento OpenAI Azure usato per vettorizzare le colonne elencate in embeddingColumns. Obbligatorio solo quando embeddingColumns viene specificato. |
oggetto | Solo apiKey e deploymentId sono modificabili |
Condizionale |
identity |
Identità gestita assegnata dall'utente facoltativa usata per l'autenticazione per Azure SQL e Azure OpenAI. | oggetto | Sì | No |
ingestionSchedule |
Pianificazione facoltativa che controlla la frequenza con cui viene eseguito l'indicizzatore generato. | oggetto | Sì | No |
L'estrazione di immagini e la verbalizzazione delle immagini non sono supportate per le origini delle informazioni indicizzate Azure SQL, pertanto chatCompletionModel, assetStore, aiServices e le impostazioni correlate all'immagine non hanno alcun effetto.
Regole di impostazione dei valori predefiniti e di convalida
Le seguenti impostazioni predefinite si applicano quando si crea un'origine dati di conoscenza di Azure SQL indicizzata.
Se si omette
contentColumns, il servizio esegue automaticamente il mapping delle colonne SQL che possono essere rappresentate in modo sicuro come testo nei campi nell'indice generato, usando un mapping 1:1 in cuiEdm.Stringènameuguale asourceField.Se si omette
embeddingColumns, il servizio non crea campi vettoriali e non configura una competenza di incorporamento.embeddingColumnsè indipendente dacontentColumns. Per fare in modo che i vettori corrispondano al testo recuperabile, includere la stessa colonna SQL in entrambe le matrici.La chiave primaria della tabella o della vista di origine viene individuata automaticamente. Le sostituzioni esplicite non sono supportate e l'origine deve avere una chiave primaria a valore singolo.
Controllare lo stato dell'ingestione
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}}
api-key: {{api-key}}
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
}
}
Annotazioni
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, in base a come è stata configurata l'origine delle informazioni.
Controlla il set di competenze per vedere come il contenuto viene suddiviso in blocchi ed eventualmente vettorializzato.
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 Search Explorer per eseguire query sull'indice generato.
Assegnare a una knowledge base
Se sei soddisfatto della fonte di conoscenza, aggiungila a una base di conoscenza.
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.
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 un indice e una pipeline di indicizzazione, 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 api-key: {{api-key}}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}} api-key: {{api-key}}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}} api-key: {{api-key}}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}} api-key: {{api-key}}Riferimento:Fonti di Conoscenza - Elimina