Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Observera
Den här agentiska hämtningsfunktionen är allmänt tillgänglig i REST API-versionen 2026-04-01 via programmatisk åtkomst. Portalen Azure och Microsoft Foundry fortsätter att ge förhandsversionsåtkomst till alla funktioner för agentisk hämtning. Information om migrering finns i Migrera agentisk hämtningskod till den senaste versionen.
Om du väljer att använda en REST API-version för förhandsversion kan du komma åt funktioner som ännu inte är allmänt tillgängliga för den här funktionen. Förhandsversionsfunktioner tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
I Azure AI-sökning är ett knowledge base ett objekt på den översta nivån som orkestrerar agentisk hämtning. Den definierar vilka kunskapskällor som ska frågas och standardbeteendet för hämtningsåtgärder. Vid frågetillfället riktar sig metoden retrieve mot kunskapsbasen för att köra den konfigurerade hämtningspipelinen.
Du kan skapa en kunskapsbas i en Foundry IQ workload i den nya Microsoft Foundry-portalen. Du behöver också en kunskapsbas i alla agentlösningar som du skapar med hjälp av Azure AI-sökning API:er.
En kunskapsbas anger:
- En eller flera kunskapskällor som pekar på sökbart innehåll.
- En valfri LLM för frågeplanering, svarssyntes eller sammanfattning av webbinnehåll. Aktiviteter som stöds varierar beroende på API-version och typ av kunskapskälla.
- Anpassade egenskaper som styr routning, källval och objektkryptering.
Användningsstöd
| Azure Portal | Microsoft Foundry-portalen | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Förutsättningar
Azure AI-sökning i valfri region som tillhandahåller agentisk hämtning. Om du använder en hanterad identitet för rollbaserad åtkomst till distribuerade modeller måste din söktjänst ligga på prisnivån Basic eller högre.
En eller flera kunskapskällor. Om du planerar att använda API-versionen 2026-04-01 för att skapa din kunskapsbas måste dina kunskapskällor vara allmänt tillgängliga. Annars kan du använda förhandsgranskning av kunskapskälltyper.
(Villkorsstyrd) Azure OpenAI med en support för LLM distribution. För både API-versionerna 2025-11-01 och 2026-04-01 krävs LLM om kunskapsbasen innehåller en webbkunskapskälla. Endast för förhandsversionen 2025-11-01 är LLM valfritt för alla andra typer av kunskapskällor. 2026-04-01 stöder inte en LLM för icke-webbkunskapskällor.
Behörighet att skapa och använda objekt på Azure AI-sökning. Vi rekommenderar rollbaserad åtkomst. Search Service-deltagare kan skapa och hantera en kunskapsbas. Search Index Data Reader kan köra frågor. Du kan också använda API-nycklar om en rolltilldelning inte är möjlig. Mer information finns i Ansluta till en söktjänst.
Krävs Azure. Search.Documents paket:
För funktionerna i förhandsversionen 2025-11-01 är det senaste förhandsversionspaketet:
dotnet add package Azure.Search.Documents --prereleaseFör funktionerna den 1 april 2026 är det senaste stabila paketet:
dotnet add package Azure.Search.Documents
Obligatoriskt azure-search-documents-paket:
För funktionerna i förhandsversionen 2025-11-01 är det senaste förhandsversionspaketet:
pip install azure-search-documents --preFör funktionerna den 1 april 2026 är det senaste stabila paketet:
pip install azure-search-documents
Nödvändig REST API-version:
För förhandsversionsfunktioner: Search Service 2025-11-01-preview
För allmänt tillgängliga funktioner: Search Service 2026-04-01
Modeller som stöds
Använd någon av följande LLM:er från Azure OpenAI i Foundry Models. Distributionsinstruktioner finns i Deploy Microsoft Foundry Models i Foundry Portal.
gpt-4ogpt-4o-minigpt-4.1gpt-4.1-minigpt-4.1-nanogpt-5gpt-5-minigpt-5-nanogpt-5.1gpt-5.2gpt-5.4gpt-5.4-minigpt-5.4-nano
Konfigurera åtkomst
Azure AI-sökning behöver åtkomst till LLM från Azure OpenAI i Foundry Models. Vi rekommenderar Microsoft Entra ID för autentisering och rollbaserad åtkomst för auktorisering. Om du vill tilldela roller måste du vara ägare eller administratör för användaråtkomst. Om du inte kan använda roller använder du nyckelbaserad autentisering i stället.
Konfigurera Azure AI-sökning att använda en hanterad identitet.
Tilldela Cognitive Services-användare till den hanterade identiteten för din söktjänst hos modellleverantören. Om du testar lokalt tilldelar du samma roll till ditt användarkonto.
För lokal testning följer du stegen i Snabbstart: Anslut utan nycklar för att logga in på en specifik prenumeration och klientorganisation. Använd
DefaultAzureCredentiali stället förAzureKeyCredentiali varje begäran, vilket bör se ut ungefär som i följande exempel:// Authenticate using roles using Azure.Search.Documents.Indexes; using Azure.Identity; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
Konfigurera Azure AI-sökning att använda en hanterad identitet.
Tilldela Cognitive Services-användare till den hanterade identiteten för din söktjänst hos modellleverantören. Om du testar lokalt tilldelar du samma roll till ditt användarkonto.
För lokal testning följer du stegen i Snabbstart: Anslut utan nycklar för att logga in på en specifik prenumeration och klientorganisation. Använd
DefaultAzureCredentiali stället förAzureKeyCredentiali varje begäran, vilket bör se ut ungefär som i följande exempel:# Authenticate using roles from azure.identity import DefaultAzureCredential index_client = SearchIndexClient(endpoint = "search_url", credential = DefaultAzureCredential())
Konfigurera Azure AI-sökning att använda en hanterad identitet.
Tilldela Cognitive Services-användare till den hanterade identiteten för din söktjänst hos modellleverantören. Om du testar lokalt tilldelar du samma roll till ditt användarkonto.
För lokal testning följer du stegen i Snabbstart: Anslut utan nycklar för att få en personlig åtkomsttoken för en specifik prenumeration och klientorganisation. Ange din åtkomsttoken i varje begäran, vilket bör se ut ungefär som i följande exempel:
# List indexes using roles GET https://{{search-url}}/indexes?api-version=2026-04-01 Content-Type: application/json Authorization: Bearer {{access-token}}
Viktigt
Kodfragment i den här artikeln använder API-nycklar. Om du använder rollbaserad autentisering uppdaterar du varje begäran i enlighet med detta. I en begäran som anger båda metoderna har API-nyckeln företräde.
Sök efter befintliga kunskapsbaser
En kunskapsbas är ett återanvändbart objekt på toppnivå. Att känna till befintliga kunskapsbaser är användbart för återanvändning eller namngivning av nya objekt.
Kör följande kod för att lista befintliga kunskapsbaser efter namn. Listan innehåller alla kunskapsbaser i söktjänsten, oavsett vilken API-version du använde för att skapa dem.
// 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}");
}
Referens: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}")
Referens:SearchIndexClient
# List knowledge bases
GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
Content-Type: application/json
api-key: {{search-api-key}}
Referens:Kunskapsbaser – lista
Du kan också returnera en enda kunskapsbas efter namn för att granska dess JSON-definition.
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);
Referens: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))
Referens:SearchIndexClient
# Get knowledge base
GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Content-Type: application/json
api-key: {{search-api-key}}
Referens:Kunskapsbaser – Hämta
Följande JSON är ett exempelsvar för en kunskapsbas.
{
"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"
}
}
Observera
Svarsschemat återspeglar den API-version som du använde för att skapa kunskapsbasen. En kunskapsbas som skapats med den allmänt tillgängliga API-versionen 2026-04-01 returnerar en smalare definition än 2025-11-01-preview. Mer information om vilka egenskaper varje version stöder finns i nästa avsnitt.
Skapa en kunskapsbas
En kunskapsbas ansluter en eller flera kunskapskällor (sökbart innehåll) till en valfri LLM från Azure OpenAI i Foundry Models. De egenskaper som du anger fastställer standardvärden för frågekörning och svar vid hämtning.
När du har skapat en kunskapsbas kan du uppdatera dess egenskaper när som helst. Om kunskapsbasen används träder uppdateringarna i kraft vid nästa hämtning.
// 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
};
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.");
Referens: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 KnowledgeBase, KnowledgeBaseAzureOpenAIModel, KnowledgeSourceReference, AzureOpenAIVectorizerParameters, KnowledgeRetrievalOutputMode, 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 = KnowledgeRetrievalOutputMode.ANSWER_SYNTHESIS,
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.")
Referens:SearchIndexClient, KnowledgeBase
# Create a knowledge base
PUT {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-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-4.1-mini",
"modelName": "gpt-4.1-mini"
}
}
],
"encryptionKey": null,
"retrievalReasoningEffort": {
"kind": "low"
}
}
Viktigt
API-versionen 2026-04-01 accepterar endast allmänt tillgängliga typer av kunskapskällor och stöder minimal, extraherande hämtning. Funktioner endast för förhandsversioner, till exempel frågeplanering, svarssyntes och konfigurerbara resonemang, stöds inte. För fullständig funktionalitet använder du förhandsversionen 2025-11-01.
Egenskaper för kunskapsbas
Skicka följande egenskaper för att skapa en kunskapsbas.
| Namn | Beskrivning | Typ | Krävs |
|---|---|---|---|
Name |
Namnet på kunskapsbasen. Den måste vara unik i kunskapsbassamlingen och följa riktlinjerna för naming för objekt i Azure AI-sökning. | Sträng | Ja |
KnowledgeSources |
En eller flera kunskapskällor som stöds. | Array | Ja |
Description |
En beskrivning av kunskapsbasen. LLM använder beskrivningen som underlag för frågeplaneringen. | Sträng | Nej |
RetrievalInstructions |
En uppmaning till LLM att avgöra om en kunskapskälla ska finnas i omfånget för en fråga. Inkludera den här uppmaningen när du har flera kunskapskällor. Det här fältet påverkar både val av kunskapskälla och frågeformulering. Instruktioner kan till exempel lägga till information eller prioritera en kunskapskälla. Instruktioner skickas direkt till LLM, vilket innebär att det är möjligt att tillhandahålla instruktioner som bryter frågeplaneringen, till exempel instruktioner som resulterar i att kringgå en viktig kunskapskälla. | Sträng | Nej |
AnswerInstructions |
Anpassade instruktioner för att forma syntetiserade svar. Standardvärdet är null. Mer information finns i Använda svarssyntes för källhänvisningsbaserade svar. | Sträng | Nej |
OutputMode |
Giltiga värden är AnswerSynthesis för ett LLM-formulerat svar eller ExtractedData för fullständiga sökresultat som du kan skicka till en LLM som ett nedströmssteg. |
Sträng | Nej |
Models |
Krävs för webbkunskapskällor. Valfritt för andra typer av kunskapskällor. Anger en LLM som stöds för frågeplanering eller svarssyntes. Hämta anslutningsinformation från Microsoft Foundry-portalen eller en kommandoradsbegäran och ange dem sedan med hjälp av klassen KnowledgeBaseAzureOpenAIModel. Du kan använda rollbaserad åtkomstkontroll i stället för API-nycklar för Azure AI-sökning anslutning till modellen. | Array | Nej |
RetrievalReasoningEffort |
Avgör nivån för LLM-relaterad frågebearbetning. Giltiga värden är minimal, low (standard) och medium. Mer information finns i Ange hämtningsskäl. |
Objekt | Nej |
| Namn | Beskrivning | Typ | Krävs |
|---|---|---|---|
name |
Namnet på kunskapsbasen. Den måste vara unik i kunskapsbassamlingen och följa riktlinjerna för naming för objekt i Azure AI-sökning. | Sträng | Ja |
description |
En beskrivning av kunskapsbasen. LLM använder beskrivningen som underlag för frågeplaneringen. | Sträng | Nej |
retrieval_instructions |
En uppmaning till LLM att avgöra om en kunskapskälla ska finnas i omfånget för en fråga. Inkludera den här uppmaningen när du har flera kunskapskällor. Det här fältet påverkar både val av kunskapskälla och frågeformulering. Instruktioner kan till exempel lägga till information eller prioritera en kunskapskälla. Skicka instruktioner direkt till LLM. Det går att ge instruktioner som bryter frågeplaneringen, till exempel instruktioner som resulterar i att en viktig kunskapskälla kringgås. | Sträng | Nej |
answer_instructions |
Anpassade instruktioner för att forma syntetiserade svar. Standardvärdet är null. Mer information finns i Använda svarssyntes för källhänvisningsbaserade svar. | Sträng | Nej |
output_mode |
Giltiga värden är answer_synthesis för ett LLM-formulerat svar eller extracted_data för fullständiga sökresultat som du kan skicka till en LLM som ett nedströmssteg. |
Sträng | Nej |
knowledge_sources |
En eller flera kunskapskällor som stöds. | Array | Ja |
models |
Krävs för webbkunskapskällor. Valfritt för andra typer av kunskapskällor. Anger en LLM som stöds för frågeplanering eller svarssyntes. Hämta anslutningsinformation från Microsoft Foundry-portalen eller en kommandoradsbegäran. Du kan använda rollbaserad åtkomstkontroll i stället för API-nycklar för Azure AI-sökning anslutning till modellen. | Array | Nej |
encryption_key |
En kundhanterad nyckel för att kryptera känslig information i både kunskapsbasen och de genererade objekten. | Objekt | Nej |
retrieval_reasoning_effort |
Avgör nivån för LLM-relaterad frågebearbetning. Giltiga värden är minimal, low (standard) och medium. Mer information finns i Ange hämtningsskäl. |
Objekt | Nej |
| Namn | Beskrivning | Typ | Krävs |
|---|---|---|---|
name |
Namnet på kunskapsbasen. Den måste vara unik i kunskapsbassamlingen och följa riktlinjerna för naming för objekt i Azure AI-sökning. | Sträng | Ja |
description |
En beskrivning av kunskapsbasen. LLM använder beskrivningen som underlag för frågeplaneringen. | Sträng | Nej |
retrievalInstructions |
En uppmaning till LLM att avgöra om en kunskapskälla ska finnas i omfånget för en fråga. Inkludera den här uppmaningen när du har flera kunskapskällor. Det här fältet påverkar både val av kunskapskälla och frågeformulering. Instruktioner kan till exempel lägga till information eller prioritera en kunskapskälla. Du skickar instruktioner direkt till LLM, vilket innebär att det är möjligt att tillhandahålla instruktioner som bryter frågeplaneringen, till exempel instruktioner som resulterar i att kringgå en viktig kunskapskälla. | Sträng | Nej |
answerInstructions |
Anpassade instruktioner för att forma syntetiserade svar. Standardvärdet är null. Mer information finns i Använda svarssyntes för källhänvisningsbaserade svar. | Sträng | Nej |
outputMode |
Giltiga värden är answerSynthesis för ett LLM-formulerat svar eller extractedData för fullständiga sökresultat som du kan skicka till en LLM som ett nedströmssteg. |
Sträng | Nej |
knowledgeSources |
En eller flera kunskapskällor som stöds. | Array | Ja |
models |
Krävs för webbkunskapskällor. Valfritt för andra typer av kunskapskällor. Anger en LLM som stöds för frågeplanering eller svarssyntes. Hämta anslutningsinformation från Microsoft Foundry-portalen eller en kommandoradsbegäran. Du kan använda rollbaserad åtkomstkontroll i stället för API-nycklar för Azure AI-sökning anslutning till modellen. | Array | Nej |
encryptionKey |
En kundhanterad nyckel för att kryptera känslig information i både kunskapsbasen och de genererade objekten. | Objekt | Nej |
retrievalReasoningEffort.kind |
Avgör nivån för LLM-relaterad frågebearbetning. Giltiga värden är minimal, low (standard) och medium. Mer information finns i Ange hämtningsskäl. |
Objekt | Nej |
Sök i en kunskapsbas
När du har skapat en kunskapsbas använder du åtgärden hämta för att fråga den och verifiera LLM-anslutningen.
Ta bort en kunskapsbas
Om du inte längre behöver kunskapsbasen eller behöver återskapa den i söktjänsten kör du följande kod för att ta bort objektet.
// 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.");
Referens: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.")
Referens:SearchIndexClient
# Delete a knowledge base
DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
api-key: {{search-api-key}}
Referens:Kunskapsbaser – Ta bort