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
Questa funzionalità agentic di recupero è generalmente disponibile nell'API REST versione 2026-04-01 tramite accesso programmatico. Il portale di Azure e il portale Foundry di Microsoft continueranno a fornire l'accesso in anteprima a tutte le funzionalità di recupero agentico. Per indicazioni sulla migrazione, vedere Eseguire la migrazione del codice di recupero agentico alla versione più recente.
Se si sceglie di usare un'API REST di anteprima, è possibile accedere alle funzionalità non ancora disponibili a livello generale per questa funzionalità. 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, vedere Condizioni supplementari per l'uso delle versioni di anteprima di Microsoft Azure.
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.
In Azure AI Search, una base knowledge è un oggetto di primo livello che orchestra agentic retrieval. Definisce le origini delle informazioni su cui eseguire query e il comportamento predefinito per le operazioni di recupero. In fase di query, il metodo retrieve è destinato alla Knowledge Base per eseguire la pipeline di recupero configurata.
È possibile creare una knowledge base in un carico di lavoro Foundry IQ nel portale di Microsoft Foundry (nuovo). È necessaria anche una Knowledge Base in tutte le soluzioni agentiche create usando le API di Azure AI Search.
Una Knowledge Base specifica:
Una o più origini di informazioni che puntano al contenuto ricercabile.
LLM facoltativo per la pianificazione delle query, la sintesi delle risposte o il riepilogo del contenuto Web. Le attività supportate variano in base alla versione dell'API e al tipo di origine delle informazioni.
Proprietà personalizzate che controllano il routing, la selezione dell'origine e la crittografia degli oggetti.
Supporto per l'utilizzo
| Portal di 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. Se si usa un'identità gestita per l'accesso basato sui ruoli ai modelli distribuiti, il servizio di ricerca deve trovarsi nel livello Basic o superiore.
Una o più fonti di conoscenza. Usare la versione dell'API 2026-05-01-preview per accedere alle fonti di conoscenza in anteprima o per usare un LLM con fonti di conoscenza non web. Usa la versione API 2026-04-01 per le fonti di conoscenza generalmente disponibili e il recupero estrattivo minimo.
(Condizionale) Azure OpenAI con una distribuzione LLM supportata. È necessario un LLM se la tua base di conoscenza include una fonte di conoscenza web. Per altre origini informazioni, un LLM è facoltativo nella versione dell'API 2026-05-01-preview e non è supportato nella versione API 2026-04-01.
Autorizzazioni per creare knowledge base. Configurare l'autenticazione senza chiave con il ruolo Collaboratore servizio di ricerca assegnato all'account utente (scelta consigliata) o usare una chiave API.
Se la Knowledge Base specifica un LLM, il servizio di ricerca deve avere un'identità gestita con autorizzazioni utente di Servizi cognitivi per la risorsa Microsoft Foundry.
Pacchetto
Azure.Search.Documentsobbligatorio:Per le funzionalità in anteprima del 1° maggio 2026, l'ultimo pacchetto di anteprima:
dotnet add package Azure.Search.Documents --prereleasePer le funzionalità 2026-04-01, il pacchetto stabile più recente:
dotnet add package Azure.Search.Documents
Pacchetto
azure-search-documentsobbligatorio:Per le funzionalità in anteprima del 1° maggio 2026, l'ultimo pacchetto di anteprima:
pip install --pre azure-search-documentsPer le funzionalità 2026-04-01, il pacchetto stabile più recente:
pip install azure-search-documents
Versione dell'API REST necessaria:
Per le funzionalità di anteprima: Servizio di ricerca 2026-05-01-preview
Per le funzionalità disponibili a livello generale: Servizio di ricerca 2026-04-01
Modelli supportati
Usare uno dei seguenti LLMs da Azure OpenAI nei modelli Foundry. Azure OpenAI determina la disponibilità a livello di area per la distribuzione selezionata. Per le istruzioni di distribuzione, vedere Distribuire i modelli di Microsoft Foundry nel portale Foundry.
| Modello | Versioni dell'API supportate |
|---|---|
gpt-4o |
2025-11-01-preview, 2026-05-01-preview |
gpt-4o-mini |
2025-11-01-preview, 2026-05-01-preview |
gpt-4.1 |
2025-11-01-preview, 2026-05-01-preview |
gpt-4.1-mini |
2025-11-01-preview, 2026-05-01-preview |
gpt-4.1-nano |
2025-11-01-preview, 2026-05-01-preview |
gpt-5 |
2025-11-01-preview, 2026-05-01-preview |
gpt-5-mini |
2025-11-01-preview, 2026-05-01-preview |
gpt-5-nano |
2025-11-01-preview, 2026-05-01-preview |
gpt-5.1 |
2026-05-01-anteprima |
gpt-5.2 |
2026-05-01-anteprima |
gpt-5.4 |
2026-05-01-anteprima |
gpt-5.4-mini |
2026-05-01-anteprima |
gpt-5.4-nano |
2026-05-01-anteprima |
Configurare l'accesso
Azure AI Search deve accedere all'LLM da Azure OpenAI in Modelli di Fonderia. È consigliabile Microsoft Entra ID per l'autenticazione e l'accesso basato sui ruoli per l'autorizzazione. Per assegnare i ruoli, è necessario essere proprietario o amministratore accesso utenti. Se non è possibile usare i ruoli, usare invece l'autenticazione basata su chiave.
Abilitare il controllo degli accessi in base al ruolo in Azure AI Search.
Configurare Azure AI Search per l'uso di un'identità gestita.
Nel tuo fornitore di modelli, assegna Utente dei Servizi cognitivi all'identità gestita del tuo servizio di ricerca. Se si esegue il test in locale, assegnare lo stesso ruolo all'account utente.
Per i test locali, seguire la procedura descritta in Avvio rapido: Connettersi senza chiavi per accedere a una sottoscrizione e a un tenant specifici. Usare
DefaultAzureCredentialanzichéAzureKeyCredentialin ogni richiesta, che dovrebbe essere simile all'esempio seguente:// Authenticate using roles using Azure.Search.Documents.Indexes; using Azure.Identity; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
Abilitare il controllo degli accessi in base al ruolo in Azure AI Search.
Configurare Azure AI Search per l'uso di un'identità gestita.
Nel tuo fornitore di modelli, assegna Utente dei Servizi cognitivi all'identità gestita del tuo servizio di ricerca. Se si esegue il test in locale, assegnare lo stesso ruolo all'account utente.
Per i test locali, seguire la procedura descritta in Avvio rapido: Connettersi senza chiavi per accedere a una sottoscrizione e a un tenant specifici. Usare
DefaultAzureCredentialanzichéAzureKeyCredentialin ogni richiesta, che dovrebbe essere simile all'esempio seguente:# Authenticate using roles from azure.identity import DefaultAzureCredential index_client = SearchIndexClient(endpoint = "search_url", credential = DefaultAzureCredential())
Abilitare il controllo degli accessi in base al ruolo in Azure AI Search.
Configurare Azure AI Search per l'uso di un'identità gestita.
Nel tuo fornitore di modelli, assegna Utente dei Servizi cognitivi all'identità gestita del tuo servizio di ricerca. Se si esegue il test in locale, assegnare lo stesso ruolo all'account utente.
Per i test locali, seguire la procedura descritta in Avvio rapido: Connettersi senza chiavi per ottenere un token di accesso personale per una sottoscrizione e un tenant specifici. Specificare il token di accesso in ogni richiesta, che dovrebbe essere simile all'esempio seguente:
# List indexes using roles GET https://{{search-url}}/indexes?api-version=2026-04-01 Content-Type: application/json Authorization: Bearer {{access-token}}
Importante
I frammenti di codice in questo articolo usano le chiavi API. Se si usa l'autenticazione basata su ruoli, aggiornare ogni richiesta di conseguenza. In una richiesta che specifica entrambi gli approcci, la chiave API ha la precedenza.
Verificare la presenza di knowledge base esistenti
Una knowledge base è un oggetto riutilizzabile di primo livello. Conoscere le knowledge base esistenti è utile per riutilizzare o denominare nuovi oggetti.
Eseguire il codice seguente per elencare le knowledge base esistenti in base al nome. L'elenco include tutte le knowledge base nel servizio di ricerca, indipendentemente dalla versione dell'API usata per crearle.
// List knowledge bases by name
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
# List knowledge bases by name
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
for kb in index_client.list_knowledge_bases():
print(f" - {kb.name}")
Reference:SearchIndexClient
# List knowledge bases
GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
Content-Type: application/json
api-key: {{search-api-key}}
Reference:Knowledge Bases - List
È anche possibile restituire una singola Knowledge Base 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 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
# Get a knowledge base 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"))
kb = index_client.get_knowledge_base("knowledge_base_name")
print(json.dumps(kb.as_dict(), indent = 2))
Reference:SearchIndexClient
# Get knowledge base
GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Content-Type: application/json
api-key: {{search-api-key}}
Riferimento:Basi di conoscenza - Get
Il codice JSON seguente è una risposta di esempio per una knowledge base.
{
"name": "my-kb",
"description": "A sample knowledge base.",
"retrievalInstructions": null,
"answerInstructions": null,
"outputMode": null,
"knowledgeSources": [
{
"name": "my-blob-ks"
}
],
"models": [],
"encryptionKey": null,
"retrievalReasoningEffort": {
"kind": "low"
}
}
Nota
Lo schema di risposta riflette la versione dell'API usata per creare la Knowledge Base. Una knowledge base creata con la versione api 2026-04-01 disponibile a livello generale restituisce una definizione più stretta rispetto alla versione 2026-05-01-preview. Per altre informazioni sulle proprietà supportate da ogni versione, vedere la sezione successiva.
Creare una base di conoscenza
Importante
La versione dell'API 2026-04-01 accetta solo tipi di origine di conoscenza generalmente disponibili e supporta il recupero minimale ed estrattivo. Le funzionalità di sola anteprima, ad esempio la pianificazione delle query, la sintesi delle risposte e il ragionamento configurabile, non sono supportate. Per la funzionalità completa, usare 2026-05-01-preview.
Una base di conoscenza connette una o più origini di informazioni (contenuti ricercabili) a un LLM facoltativo da Azure OpenAI nei modelli Foundry. Le proprietà impostate stabiliscono le impostazioni predefinite per l'esecuzione delle query e la risposta di recupero.
Dopo aver creato una knowledge base, è possibile aggiornarne le proprietà in qualsiasi momento. Se la Knowledge Base è in uso, gli aggiornamenti hanno effetto sul recupero successivo.
// Create a knowledge base
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 aoaiParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiGptDeployment,
ModelName = aoaiGptModel,
ApiKey = aoaiApiKey
};
var knowledgeBase = new KnowledgeBase(
name: "my-kb",
knowledgeSources: new KnowledgeSourceReference[]
{
new KnowledgeSourceReference("hotels-ks"),
new KnowledgeSourceReference("earth-at-night-ks")
}
)
{
Description = "This knowledge base handles questions directed at two unrelated sample indexes.",
RetrievalInstructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
AnswerInstructions = "Provide a two-sentence, concise, and informative answer based on the retrieved documents.",
OutputMode = KnowledgeRetrievalOutputMode.AnswerSynthesis,
Models = { new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: aoaiParams) },
RetrievalReasoningEffort = new KnowledgeRetrievalLowReasoningEffort()
};
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Console.WriteLine($"Knowledge base '{knowledgeBase.Name}' created or updated successfully.");
Reference:SearchIndexClient, KnowledgeBase
# Create a knowledge base
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
KnowledgeBase,
KnowledgeBaseAzureOpenAIModel,
KnowledgeSourceReference,
)
from azure.search.documents.knowledgebases.models import KnowledgeRetrievalLowReasoningEffort
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
aoai_params = AzureOpenAIVectorizerParameters(
resource_url = "aoai_endpoint",
api_key="aoai_api_key",
deployment_name = "aoai_gpt_deployment",
model_name = "aoai_gpt_model",
)
knowledge_base = KnowledgeBase(
name = "my-kb",
description = "This knowledge base handles questions directed at two unrelated sample indexes.",
retrieval_instructions = "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
answer_instructions = "Provide a two-sentence, concise, and informative answer based on the retrieved documents.",
output_mode = "answerSynthesis",
knowledge_sources = [
KnowledgeSourceReference(name = "hotels-ks"),
KnowledgeSourceReference(name = "earth-at-night-ks"),
],
models = [KnowledgeBaseAzureOpenAIModel(azure_open_ai_parameters = aoai_params)],
encryption_key = None,
retrieval_reasoning_effort = KnowledgeRetrievalLowReasoningEffort(),
)
index_client.create_or_update_knowledge_base(knowledge_base)
print(f"Knowledge base '{knowledge_base.name}' created or updated successfully.")
Reference:SearchIndexClient, KnowledgeBase
# Create a knowledge base
PUT {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version=2026-05-01-preview
Content-Type: application/json
api-key: {{search-api-key}}
{
"name" : "my-kb",
"description": "This knowledge base handles questions directed at two unrelated sample indexes.",
"retrievalInstructions": "Use the hotels knowledge source for queries about where to stay, otherwise use the earth at night knowledge source.",
"answerInstructions": null,
"outputMode": "answerSynthesis",
"knowledgeSources": [
{
"name": "hotels-ks"
},
{
"name": "earth-at-night-ks"
}
],
"models" : [
{
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{model-provider-url}}",
"apiKey": "{{model-api-key}}",
"deploymentId": "gpt-5.4-mini",
"modelName": "gpt-5.4-mini"
}
}
],
"encryptionKey": null,
"retrievalReasoningEffort": {
"kind": "low"
}
}
Reference:Knowledge Bases - Creare o aggiornare
Configurare CORS per le chiamate di recupero basate su browser (anteprima)
Importante
È possibile usare l'anteprima 2026-05-01-preview per abilitare la condivisione di risorse tra le origini (CORS), che consente alle applicazioni basate su browser di richiedere i dati direttamente dal servizio. A seconda della configurazione CORS, le pagine Web esterne potrebbero essere in grado di accedere o richiamare il servizio e i relativi dati usando il contesto del browser dell'utente, nonché creare altre minacce alla sicurezza. L'abilitazione di CORS è a proprio rischio.
Nella versione dell'API 2026-05-01-preview, una Knowledge Base può definire corsOptions per le applicazioni basate su browser che chiamano l'azione di recupero direttamente da JavaScript. I criteri CORS identificano le origini del browser che possono inviare richieste di recupero alla Knowledge Base.
Quando si omette corsOptions, la Knowledge Base non dispone di criteri CORS e i browser bloccano le richieste di recupero tra le origini.
Nell'esempio seguente viene creata una Knowledge Base che consente di recuperare le richieste da un'origine del browser.
using Azure;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
var knowledgeBase = new KnowledgeBase(
name: "browser-chat-kb",
knowledgeSources: new[] { new KnowledgeSourceReference("product-docs-ks") }
)
{
Description = "A knowledge base that allows one browser app origin.",
CorsOptions = new CorsOptions(new[] { "https://myapp.example.com" })
{
MaxAgeInSeconds = 300
}
};
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Reference:CorsOptions, KnowledgeBase
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
CorsOptions,
KnowledgeBase,
KnowledgeSourceReference,
)
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
knowledge_base = KnowledgeBase(
name="browser-chat-kb",
description="A knowledge base that allows one browser app origin.",
knowledge_sources=[KnowledgeSourceReference(name="product-docs-ks")],
cors_options=CorsOptions(
allowed_origins=["https://myapp.example.com"],
max_age_in_seconds=300,
),
)
index_client.create_or_update_knowledge_base(knowledge_base)
Reference:CorsOptions, KnowledgeBase
PUT {{search-url}}/knowledgebases/browser-chat-kb?api-version=2026-05-01-preview
Content-Type: application/json
api-key: {{search-api-key}}
{
"name": "browser-chat-kb",
"description": "A knowledge base that allows one browser app origin.",
"knowledgeSources": [
{
"name": "product-docs-ks"
}
],
"corsOptions": {
"allowedOrigins": [
"https://myapp.example.com"
],
"maxAgeInSeconds": 300
}
}
Effettuare query su una base di conoscenza
Dopo aver creato una base di conoscenza, chiamare l'azione retrieve o l'endpoint MCP per interrogarla.
Eliminare una base di conoscenza
Se la Knowledge Base non è più necessaria o è necessario ricompilarla nel servizio di ricerca, eseguire il codice seguente per eliminare l'oggetto.
// Delete a knowledge base
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
# 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
# Delete a knowledge base
DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
api-key: {{search-api-key}}
Reference:Basi di conoscenza - Elimina