Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Wyszukiwanie AI platformy Azure jest dostępna za pośrednictwem portalu Azure, interfejsów API REST i Azure SDKs. Jest także podstawą Foundry IQ — zarządzanej warstwy wiedzy, która przekształca treści przedsiębiorstwa w bazy wiedzy wielokrotnego użytku z uwzględnieniem uprawnień dla agentów w portalu Microsoft Foundry.
Ważne
Funkcje, możliwości lub właściwości oznaczone (wersja zapoznawcza) nie są objęte umową dotyczącą poziomu usług, nie są zalecane w przypadku obciążeń produkcyjnych i mogą ulec zmianie lub ograniczeniu, zanim staną się one ogólnie dostępne. Warunki Wyszukiwanie AI platformy Azure wersji zapoznawczej mają zastosowanie do wszystkich funkcji w wersji zapoznawczej, niezależnie od tego, czy jest ona autonomiczna, czy częścią ogólnie dostępnej funkcji.
W Wyszukiwanie AI platformy Azure baza wiedzy jest obiektem najwyższego poziomu, który organizuje agentowy proces pobierania. Definiuje źródła wiedzy do wykonywania zapytań i domyślne zachowanie operacji pobierania. W momencie wykonywania zapytania metoda retrieve kieruje się do bazy wiedzy, aby uruchomić skonfigurowany potok pobierania.
Baza wiedzy określa:
Co najmniej jedno źródło wiedzy wskazujące zawartość z możliwością wyszukiwania.
Opcjonalna funkcja LLM do planowania zapytań, syntezy odpowiedzi lub podsumowania zawartości internetowej. Obsługiwane zadania różnią się w zależności od wersji interfejsu API i typu źródła wiedzy.
Właściwości niestandardowe kontrolujące routing, wybór źródła i szyfrowanie obiektów.
Wsparcie użytkowania
| portal Azure | portal Microsoft Foundry | zestaw SDK .NET | SDK języka Python | SDK Java | JavaScript SDK | API REST |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Wymagania wstępne
Wyszukiwanie AI platformy Azure w dowolnym regionie, który zapewnia agentyczne wyszukiwanie. Jeśli używasz tożsamości zarządzanej na potrzeby dostępu opartego na rolach do wdrożonych modeli, usługa wyszukiwania musi znajdować się w warstwie Podstawowa lub wyższej.
Co najmniej jedno źródło wiedzy. Użyj wersji interfejsu
2026-08-01-previewAPI, aby uzyskać dostęp do źródeł wiedzy w wersji zapoznawczej lub użyć programu LLM ze źródłami wiedzy spoza sieci Web. Użyj wersji interfejsu API2026-04-01dla ogólnie dostępnych źródeł wiedzy i minimalnego wyszukiwania ekstrakcyjnego.(Warunkowe) Azure OpenAI z wdrożeniem obsługującym LLM. Usługa LLM jest wymagana, jeśli baza wiedzy zawiera internetowe źródło wiedzy. W przypadku innych źródeł wiedzy usługa LLM jest opcjonalna w wersji interfejsu
2026-08-01-previewAPI i nieobsługiwana w wersji interfejsu2026-04-01API.Uprawnienie do tworzenia baz wiedzy. Skonfiguruj uwierzytelnianie bez klucza przy użyciu roli Współautor usługi wyszukiwania przypisanej do konta użytkownika (zalecane) lub użyj klucza interfejsu API administratora.
Jeśli baza wiedzy określa LLM, usługa wyszukiwania musi mieć tożsamość zarządzaną z uprawnieniami użytkownika usług Cognitive Services w zasobie Microsoft Foundry.
Wymagany pakiet
Azure.Search.Documents:Dla funkcji
2026-08-01-previewnajnowszy pakiet w wersji zapoznawczej:dotnet add package Azure.Search.Documents --prereleaseDla funkcji
2026-04-01, najnowszy stabilny pakiet:dotnet add package Azure.Search.Documents
W przypadku uwierzytelniania bezkluczowego pakiet
Azure.Identity:dotnet add package Azure.Identity
Wymagany pakiet
azure-search-documents:Dla funkcji
2026-08-01-previewnajnowszy pakiet w wersji zapoznawczej:pip install --pre azure-search-documentsDla funkcji
2026-04-01, najnowszy stabilny pakiet:pip install azure-search-documents
W przypadku uwierzytelniania bezkluczowego pakiet
azure-identity:pip install azure-identity
Wymagana wersja interfejsu API REST usługi wyszukiwania:
W przypadku funkcji w wersji zapoznawczej: 2026-08-01-preview
Funkcje ogólnie dostępne: 2026-04-01
W przypadku uwierzytelniania bez klucza dołącz token Microsoft Entra ID w nagłówku
Authorizationkażdego żądania HTTP.
Obsługiwane modele
Użyj jednego z następujących modułów LLM z Azure OpenAI w modelach foundry. Azure OpenAI określa dostępność regionalną wybranego wdrożenia. Aby uzyskać instrukcje dotyczące wdrażania, zobacz Deploy Microsoft Foundry Models w portalu Foundry.
Rodzina GPT-4 jest przestarzała. Aby uzyskać informacje dotyczące cyklu życia modeli, dat wycofania i aktualnego stanu, zobacz Wycofanie i wycofywanie modeli oraz Harmonogram wycofania modeli — Microsoft Foundry.
| Model | Obsługiwane wersje interfejsu API |
|---|---|
gpt-4o (przestarzałe) |
2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview |
gpt-4o-mini (przestarzałe) |
2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview |
gpt-4.1 (przestarzałe) |
2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview |
gpt-4.1-mini (przestarzałe) |
2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview |
gpt-4.1-nano (przestarzałe) |
2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview |
gpt-5 |
2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview |
gpt-5-mini |
2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview |
gpt-5-nano |
2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview |
gpt-5.1 |
2026-05-01-preview, 2026-08-01-preview |
gpt-5.2 |
2026-05-01-preview, 2026-08-01-preview |
gpt-5.4 |
2026-05-01-preview, 2026-08-01-preview |
gpt-5.4-mini |
2026-05-01-preview, 2026-08-01-preview |
gpt-5.4-nano |
2026-05-01-preview, 2026-08-01-preview |
gpt-5.5 |
2026-08-01-preview |
gpt-5.6-sol |
2026-08-01-preview |
gpt-5.6-terra |
2026-08-01-preview |
gpt-5.6-luna |
2026-08-01-preview |
Konfigurowanie dostępu
Wyszukiwanie AI platformy Azure potrzebuje dostępu do modelu LLM z Azure OpenAI w modelach Foundry. Zalecamy Microsoft Entra ID na potrzeby uwierzytelniania i dostępu opartego na rolach na potrzeby autoryzacji. Aby przypisać role, musisz być właścicielem lub administratorem dostępu użytkowników. Jeśli nie możesz używać ról, zamiast tego użyj uwierzytelniania opartego na kluczach.
Włącz kontrolę dostępu opartą na rolach na Wyszukiwanie AI platformy Azure.
Konfiguruj Wyszukiwanie AI platformy Azure do używania tożsamości zarządzanej.
U dostawcy modelu przypisz użytkownika usług Cognitive Services do tożsamości zarządzanej usługi wyszukiwania. Jeśli testujesz lokalnie, przypisz tę samą rolę do konta użytkownika.
Aby przeprowadzić testowanie lokalne, wykonaj kroki opisane w przewodniku Szybki start: połączenie bez kluczy, aby zalogować się do określonej subskrypcji i dzierżawcy. Użyj
DefaultAzureCredentialzamiastAzureKeyCredentialw każdym żądaniu, które powinno być podobne do poniższego przykładu.// Authenticate using roles using Azure.Search.Documents.Indexes; using Azure.Identity; var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
Włącz kontrolę dostępu opartą na rolach na Wyszukiwanie AI platformy Azure.
Konfiguruj Wyszukiwanie AI platformy Azure do używania tożsamości zarządzanej.
U dostawcy modelu przypisz użytkownika usług Cognitive Services do tożsamości zarządzanej usługi wyszukiwania. Jeśli testujesz lokalnie, przypisz tę samą rolę do konta użytkownika.
Aby przeprowadzić testowanie lokalne, wykonaj kroki opisane w przewodniku Szybki start: połączenie bez kluczy, aby zalogować się do określonej subskrypcji i dzierżawcy. Użyj
DefaultAzureCredentialzamiastAzureKeyCredentialw każdym żądaniu, które powinno być podobne do poniższego przykładu.# Authenticate using roles from azure.identity import DefaultAzureCredential index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
Włącz kontrolę dostępu opartą na rolach na Wyszukiwanie AI platformy Azure.
Konfiguruj Wyszukiwanie AI platformy Azure do używania tożsamości zarządzanej.
U dostawcy modelu przypisz użytkownika usług Cognitive Services do tożsamości zarządzanej usługi wyszukiwania. Jeśli testujesz lokalnie, przypisz tę samą rolę do konta użytkownika.
W przypadku testowania lokalnego wykonaj kroki opisane w przewodniku Szybki start: nawiązywanie połączenia bez kluczy w celu uzyskania osobistego tokenu dostępu dla określonej subskrypcji i dzierżawy. Określ token dostępu w każdym żądaniu, który powinien być podobny do poniższego przykładu.
# List indexes using roles GET {{search-endpoint}}/indexes?api-version=2026-04-01 Content-Type: application/json Authorization: Bearer {{search-access-token}}
Ważne
Fragmenty kodu w tym artykule używają uwierzytelniania bez klucza. Aby zamiast tego użyć klucza interfejsu API, należy odpowiednio zaktualizować każde żądanie. W żądaniu określającym obie metody klucz interfejsu API ma pierwszeństwo.
Sprawdzanie istniejących baz wiedzy
Baza wiedzy jest obiektem najwyższego poziomu wielokrotnego użytku. Znajomość istniejących baz wiedzy jest przydatna do ponownego użycia lub nazewnictwa nowych obiektów.
Uruchom następujący kod, aby wyświetlić listę istniejących baz wiedzy według nazwy. Lista zawiera wszystkie bazy wiedzy w usłudze wyszukiwania, niezależnie od wersji interfejsu API użytej do ich utworzenia.
// 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.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
for kb in index_client.list_knowledge_bases():
print(f" - {kb.name}")
Reference:SearchIndexClient
# List knowledge bases
GET {{search-endpoint}}/knowledgebases?api-version={{api-version}}&$select=name
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
Dokumentacja:Bazy wiedzy — lista
Możesz również zwrócić jedną bazę wiedzy według nazwy, aby przejrzeć jego definicję 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.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
kb = index_client.get_knowledge_base("<knowledge-base-name>")
print(json.dumps(kb.as_dict(), indent = 2))
Reference:SearchIndexClient
# Get knowledge base
GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
Dokumentacja:Bazy wiedzy — pobieranie
Poniższy kod JSON to przykładowa odpowiedź dla bazy wiedzy.
{
"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"
}
}
Uwaga
Schemat odpowiedzi odzwierciedla wersję interfejsu API użytą do utworzenia bazy wiedzy. Baza wiedzy utworzona przy użyciu ogólnie dostępnej 2026-04-01 wersji interfejsu API zwraca węższą definicję niż 2026-08-01-preview. Aby uzyskać więcej informacji na temat właściwości, które obsługuje każda wersja, zobacz Tworzenie bazy wiedzy.
Tworzenie bazy wiedzy
Ważne
Wersja 2026-04-01 interfejsu API akceptuje tylko ogólnie dostępne typy źródeł wiedzy i obsługuje minimalne, wyodrębnione pobieranie. Nie obsługuje funkcji dostępnych wyłącznie w wersji zapoznawczej, takich jak planowanie zapytań, synteza odpowiedzi i konfigurowalny poziom wnioskowania. Aby uzyskać pełną funkcjonalność, użyj polecenia 2026-08-01-preview.
Baza wiedzy łączy co najmniej jedno źródło wiedzy (zawartość z możliwością wyszukiwania) z opcjonalnym LLM z Azure OpenAI w Foundry Models. Ustawione właściwości określają wartości domyślne dla wykonywania zapytań i odpowiedzi na pobieranie.
Po utworzeniu bazy wiedzy możesz zaktualizować jej właściwości w dowolnym momencie. Jeśli baza wiedzy jest używana, aktualizacje będą obowiązywać podczas następnego pobierania.
// Create a knowledge base
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure.Identity;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var 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 = "Answer in two concise sentences.",
OutputMode = KnowledgeRetrievalOutputMode.AnswerSynthesis,
Models = { new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: aoaiParams) },
RetrievalReasoningEffort = new KnowledgeRetrievalAutoReasoningEffort()
};
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Console.WriteLine($"Knowledge base '{knowledgeBase.Name}' created or updated successfully.");
Reference:SearchIndexClient, KnowledgeBase
# Create a knowledge base
from azure.identity import DefaultAzureCredential
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 (
KnowledgeRetrievalAutoReasoningEffort,
KnowledgeRetrievalOutputMode,
)
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
aoai_params = AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
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 = "Answer in two concise sentences.",
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 = KnowledgeRetrievalAutoReasoningEffort(),
)
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-endpoint}}/knowledgebases/my-kb?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
{
"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": "Answer in two concise sentences.",
"outputMode": "answerSynthesis",
"knowledgeSources": [
{
"name": "hotels-ks"
},
{
"name": "earth-at-night-ks"
}
],
"models" : [
{
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "gpt-5.4-mini",
"modelName": "gpt-5.4-mini"
}
}
],
"encryptionKey": null,
"retrievalReasoningEffort": {
"kind": "auto"
}
}
Dokumentacja:Bazy wiedzy — tworzenie lub aktualizowanie
Konfigurowanie domyślnych limitów pobierania (wersja zapoznawcza)
Począwszy od wersji interfejsu 2026-08-01-preview API, można użyć opcjonalnego retrieveDefaults obiektu do przechowywania wartości domyślnych dotyczących całego żądania w bazie wiedzy. Każda przechowywana właściwość ma zastosowanie tylko wtedy, gdy żądanie pobierania pomija odpowiednie pole żądania:
| Właściwość składowana | Pobierz pole żądania |
|---|---|
maxRuntimeInSeconds |
maxRuntimeInSeconds |
maxOutputDocuments |
maxOutputDocuments |
maxOutputSizeInTokens |
maxOutputSize |
Budżet tokenów wyjściowych ma różne nazwy właściwości podczas zapisywania i nadpisywania. Ustaw wartość maxOutputSizeInTokens w retrieveDefaults i użyj maxOutputSize w żądaniu pobrania.
Efektywna wartość dla każdej właściwości jest określana niezależnie w następującej kolejności:
- Odpowiadająca wartość w żądaniu pobrania.
- Wartość w obiekcie bazy
retrieveDefaultswiedzy. - Wartość domyślna usługi, gdy właściwość jest nieobecna na obu poziomach.
W poniższym przykładzie użyto istniejącego źródła wiedzy indeksu wyszukiwania o nazwie your-knowledge-source. Przechowuje limit czasu działania wynoszący 45 sekund, maksymalnie osiem dokumentów wyjściowych oraz limit wyjściowy wynoszący 12 000 tokenów.
using System;
using Azure.Identity;
using Azure.Search.Documents;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;
string searchEndpoint = "<search-endpoint>";
var options = new SearchClientOptions(
SearchClientOptions.ServiceVersion.V2026_08_01_Preview);
var indexClient = new SearchIndexClient(
new Uri(searchEndpoint),
new DefaultAzureCredential(),
options);
var knowledgeBase = new KnowledgeBase(
"your-knowledge-base",
new[] { new KnowledgeSourceReference("your-knowledge-source") })
{
Description = "A knowledge base for product support content.",
RetrieveDefaults = new KnowledgeBaseRetrieveDefaults
{
MaxRuntimeInSeconds = 45,
MaxOutputDocuments = 8,
MaxOutputSizeInTokens = 12000
}
};
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Reference:SearchIndexClient, SearchClientOptions.ServiceVersion, KnowledgeBase
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
KnowledgeBase,
KnowledgeBaseRetrieveDefaults,
KnowledgeSourceReference,
)
search_endpoint = "<search-endpoint>"
index_client = SearchIndexClient(
endpoint=search_endpoint,
credential=DefaultAzureCredential(),
api_version="2026-08-01-preview",
)
knowledge_base = KnowledgeBase(
name="your-knowledge-base",
description="A knowledge base for product support content.",
knowledge_sources=[
KnowledgeSourceReference(name="your-knowledge-source"),
],
retrieve_defaults=KnowledgeBaseRetrieveDefaults(
max_runtime_in_seconds=45,
max_output_documents=8,
max_output_size_in_tokens=12000,
),
)
index_client.create_or_update_knowledge_base(knowledge_base)
Reference:SearchIndexClient, KnowledgeBase
PUT {{search-endpoint}}/knowledgebases/your-knowledge-base?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
{
"name": "your-knowledge-base",
"description": "A knowledge base for product support content.",
"knowledgeSources": [
{
"name": "your-knowledge-source"
}
],
"retrieveDefaults": {
"maxRuntimeInSeconds": 45,
"maxOutputDocuments": 8,
"maxOutputSizeInTokens": 12000
}
}
Dokumentacja:Bazy wiedzy — tworzenie lub aktualizowanie
Aby zastąpić te przechowywane wartości 20 sekund, jeden dokument i 5000 tokenów dla jednego żądania, zobacz Weryfikowanie wartości domyślnych pobierania bazy wiedzy.
Konfigurowanie mechanizmu CORS dla wywołań pobierania opartych na przeglądarce (wersja zapoznawcza)
Ważne
Współużytkowanie zasobów między źródłami (CORS) umożliwia aplikacjom opartym na przeglądarce żądanie danych bezpośrednio z usługi. W zależności od konfiguracji mechanizmu CORS zewnętrzne strony internetowe mogą uzyskiwać dostęp do usługi i jej danych lub wywoływać je przy użyciu kontekstu przeglądarki użytkownika. Ten dostęp może tworzyć zagrożenia bezpieczeństwa. Włączenie CORS odbywa się na własne ryzyko.
Od wersji interfejsu API 2026-05-01-preview baza wiedzy może definiować corsOptions dla aplikacji przeglądarkowych, które wywołują akcję retrieve bezpośrednio w języku JavaScript. Zasady MECHANIZMU CORS identyfikują, które źródła przeglądarki mogą wysyłać żądania pobierania do bazy wiedzy.
Po pominięciu corsOptions baza wiedzy nie ma polityki CORS, a przeglądarki blokują żądania pobierania między źródłami.
Poniższy przykład tworzy bazę wiedzy, która umożliwia pobieranie żądań z jednego źródła przeglądarki.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
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.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
CorsOptions,
KnowledgeBase,
KnowledgeSourceReference,
)
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
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-endpoint}}/knowledgebases/browser-chat-kb?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
{
"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
}
}
Wykonywanie zapytań względem bazy wiedzy
Po utworzeniu bazy wiedzy wywołaj akcję pobierania lub punkt końcowy MCP , aby wykonać zapytanie.
Usuwanie bazy wiedzy
Jeśli nie potrzebujesz już bazy wiedzy lub musisz ją ponownie skompilować w usłudze wyszukiwania, uruchom następujący kod, aby usunąć obiekt.
// 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.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
index_client.delete_knowledge_base("<knowledge-base-name>")
print(f"Knowledge base deleted successfully.")
Reference:SearchIndexClient
# Delete a knowledge base
DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Authorization: Bearer {{search-access-token}}
Dokumentacja:Bazy wiedzy — usuwanie