Membuat pangkalan pengetahuan di Pencarian Azure AI

Catatan

Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.

Penting

Fitur, kemampuan, atau properti yang ditandai (pratinjau) tidak tercakup dalam perjanjian tingkat layanan, tidak disarankan untuk beban kerja produksi, dan mungkin berubah atau dibatasi sebelum tersedia secara umum. Ketentuan pratinjau Pencarian Azure AI berlaku untuk semua fungsionalitas pratinjau, baik itu mandiri atau bagian dari fitur yang tersedia secara umum.

Dalam Pencarian Azure AI, knowledge base adalah objek tingkat atas yang mengelola pengambilan bertingkat agen. Ini menentukan sumber pengetahuan mana yang akan dikueri dan perilaku default untuk operasi pengambilan. Pada waktu kueri, metode ambil menargetkan pangkalan pengetahuan untuk menjalankan alur pengambilan yang dikonfigurasi.

Pangkalan pengetahuan menentukan:

  • Satu atau beberapa sumber pengetahuan yang menunjuk ke konten yang dapat dicari.

  • LLM opsional untuk perencanaan kueri, sintesis jawaban, atau ringkasan konten web. Tugas yang didukung bervariasi menurut versi API dan jenis sumber pengetahuan.

  • Properti kustom yang mengontrol perutean, pemilihan sumber, dan enkripsi objek.

Dukungan penggunaan

portal Azure portal Microsoft Foundry .NET SDK Python SDK Java SDK JavaScript SDK REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Prasyarat

  • Pencarian Azure AI dalam region apa pun yang menyediakan pengambilan agenik. Jika Anda menggunakan identitas terkelola untuk akses berbasis peran ke model yang disebarkan, layanan pencarian Anda harus berada di tingkat Dasar atau yang lebih tinggi.

  • Satu atau beberapa sumber pengetahuan. 2026-08-01-preview Gunakan versi API untuk mengakses sumber pengetahuan pratinjau atau untuk menggunakan LLM dengan sumber pengetahuan non-web. Gunakan versi API 2026-04-01 untuk sumber pengetahuan yang sudah tersedia secara umum dan pengambilan ekstraktif minimal.

  • (Bersyarat) Azure OpenAI dengan penyebaran LLM yang didukung. LLM diperlukan jika pangkalan pengetahuan Anda menyertakan sumber pengetahuan web. Untuk sumber pengetahuan lainnya, LLM bersifat opsional dalam 2026-08-01-preview versi API dan tidak didukung dalam 2026-04-01 versi API.

  • Izin untuk membuat pangkalan pengetahuan. Konfigurasikan autentikasi tanpa kunci dengan peran Kontributor Layanan Pencarian yang ditetapkan ke akun pengguna Anda (disarankan) atau gunakan kunci API admin.

  • Jika basis pengetahuan menentukan LLM, layanan pencarian harus memiliki identitas terkelola dengan izin Cognitive Services User pada sumber daya Microsoft Foundry.

  • Paket Azure.Search.Documents yang diperlukan:

    • Untuk fitur 2026-08-01-preview, paket pratinjau terbaru: dotnet add package Azure.Search.Documents --prerelease

    • Untuk fitur 2026-04-01, paket stabil terbaru: dotnet add package Azure.Search.Documents

  • Untuk autentikasi tanpa kunci, Azure.Identity paket: dotnet add package Azure.Identity

  • Paket azure-search-documents yang diperlukan:

    • Untuk fitur 2026-08-01-preview, paket pratinjau terbaru: pip install --pre azure-search-documents

    • Untuk fitur 2026-04-01, paket stabil terbaru: pip install azure-search-documents

  • Untuk autentikasi tanpa kunci, azure-identity paket: pip install azure-identity

Model yang didukung

Gunakan salah satu LLM berikut dari Azure OpenAI di Model Foundry. Azure OpenAI menentukan ketersediaan regional untuk penyebaran yang Anda pilih. Untuk petunjuk penyebaran, lihat Deploy Microsoft Foundry Models di portal Foundry.

Keluarga GPT-4 tidak digunakan lagi. Untuk panduan siklus hidup model, tanggal penghentian, dan status saat ini, lihat Penghentian dan penolakan penggunaan model serta Jadwal penghentian model - Microsoft Foundry.

Model Versi API yang didukung
gpt-4o (tidak digunakan lagi) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4o-mini (tidak digunakan lagi) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1 (tidak digunakan lagi) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-mini (tidak digunakan lagi) 2025-11-01-preview, 2026-05-01-preview, 2026-08-01-preview
gpt-4.1-nano (tidak digunakan lagi) 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

Mengonfigurasi akses

Pencarian Azure AI memerlukan akses ke LLM dari Azure OpenAI di Model Foundry. Kami merekomendasikan Microsoft Entra ID untuk otentikasi dan akses berbasis peran untuk otorisasi. Untuk menetapkan peran, Anda harus menjadi Pemilik atau Administrator Akses Pengguna. Jika Anda tidak dapat menggunakan peran, gunakan autentikasi berbasis kunci sebagai gantinya.

  1. Aktifkan kontrol akses berbasis peran pada Pencarian Azure AI.

  2. Konfigurasi Pencarian Azure AI untuk menggunakan identitas terkelola.

  3. Pada penyedia model Anda, tetapkan Pengguna Layanan Kognitif ke identitas terkelola pada layanan pencarian Anda. Jika Anda menguji secara lokal, tetapkan peran yang sama ke akun pengguna Anda.

  4. Untuk pengujian lokal, ikuti langkah-langkah di Panduan Awal: Terhubung tanpa kunci untuk masuk ke langganan serta tenant yang spesifik. Gunakan DefaultAzureCredential alih-alih AzureKeyCredential di setiap permintaan, yang harus mirip dengan contoh berikut.

    // Authenticate using roles
    using Azure.Search.Documents.Indexes;
    using Azure.Identity;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
    
  1. Aktifkan kontrol akses berbasis peran pada Pencarian Azure AI.

  2. Konfigurasi Pencarian Azure AI untuk menggunakan identitas terkelola.

  3. Pada penyedia model Anda, tetapkan Pengguna Layanan Kognitif ke identitas terkelola pada layanan pencarian Anda. Jika Anda menguji secara lokal, tetapkan peran yang sama ke akun pengguna Anda.

  4. Untuk pengujian lokal, ikuti langkah-langkah di Panduan Awal: Terhubung tanpa kunci untuk masuk ke langganan serta tenant yang spesifik. Gunakan DefaultAzureCredential alih-alih AzureKeyCredential di setiap permintaan, yang harus mirip dengan contoh berikut.

    # Authenticate using roles
    from azure.identity import DefaultAzureCredential
    index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
    
  1. Aktifkan kontrol akses berbasis peran pada Pencarian Azure AI.

  2. Konfigurasi Pencarian Azure AI untuk menggunakan identitas terkelola.

  3. Pada penyedia model Anda, tetapkan Pengguna Layanan Kognitif ke identitas terkelola pada layanan pencarian Anda. Jika Anda menguji secara lokal, tetapkan peran yang sama ke akun pengguna Anda.

  4. Untuk pengujian lokal, ikuti langkah-langkah di Mulai Cepat: Sambungkan tanpa kunci untuk mendapatkan token akses pribadi untuk langganan dan penyewa tertentu. Tentukan token akses Anda di setiap permintaan, yang harus mirip dengan contoh berikut.

    # List indexes using roles
    GET {{search-endpoint}}/indexes?api-version=2026-04-01
    Content-Type: application/json
    Authorization: Bearer {{search-access-token}}
    

Penting

Cuplikan kode dalam artikel ini menggunakan autentikasi tanpa kunci. Untuk menggunakan kunci API sebagai gantinya, perbarui setiap permintaan sebagaimana mestinya. Dalam permintaan yang menentukan kedua pendekatan, kunci API lebih diutamakan.

Periksa pangkalan pengetahuan yang ada

Pangkalan pengetahuan adalah objek tingkat atas yang dapat digunakan kembali. Mengetahui tentang pangkalan pengetahuan yang ada sangat membantu untuk menggunakan kembali atau memberi nama objek baru.

Jalankan kode berikut untuk mencantumkan pangkalan pengetahuan yang ada berdasarkan nama. Daftar ini mencakup semua pangkalan pengetahuan pada layanan pencarian Anda, terlepas dari versi API mana yang Anda gunakan untuk membuatnya.

// 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}");
}

Referensi: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}")

Referensi:SearchIndexClient

# List knowledge bases
GET {{search-endpoint}}/knowledgebases?api-version={{api-version}}&$select=name
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

Referensi:Pangkalan Pengetahuan - Daftar

Anda juga dapat mengembalikan satu pangkalan pengetahuan berdasarkan nama untuk meninjau definisi JSON-nya.

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);

Referensi: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))

Referensi:SearchIndexClient

# Get knowledge base
GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Content-Type: application/json
Authorization: Bearer {{search-access-token}}

Referensi:Pangkalan Pengetahuan - Dapatkan

JSON berikut adalah contoh respons untuk pangkalan pengetahuan.

{
  "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"
  }
}

Catatan

Skema respons mencerminkan versi API yang Anda gunakan untuk membuat pangkalan pengetahuan. Pangkalan pengetahuan yang dibuat dengan versi API yang tersedia 2026-04-01 secara umum mengembalikan definisi yang lebih sempit daripada 2026-08-01-preview. Untuk informasi selengkapnya tentang properti mana yang didukung setiap versi, lihat Membuat pangkalan pengetahuan.

Membuat pangkalan pengetahuan

Penting

Versi 2026-04-01 API hanya menerima jenis sumber pengetahuan yang tersedia secara umum dan mendukung pengambilan ekstraktif minimal. Ini tidak mendukung kemampuan khusus pratinjau, seperti perencanaan kueri, sintesis jawaban, dan upaya penalaran yang dapat dikonfigurasi. Untuk fungsionalitas penuh, gunakan 2026-08-01-preview.

Pangkalan pengetahuan menghubungkan satu atau beberapa sumber pengetahuan (konten yang dapat dicari) ke LLM opsional dari Azure OpenAI di Model Foundry. Properti yang Anda tetapkan menetapkan default untuk eksekusi kueri dan respons pengambilan data.

Setelah membuat pangkalan pengetahuan, Anda dapat memperbarui propertinya kapan saja. Jika pangkalan pengetahuan sedang digunakan, pembaruan akan berlaku pada pengambilan berikutnya.

// 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.");

Referensi: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.")

Referensi: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"
    }
}

Referensi:Pangkalan Pengetahuan - Buat atau Perbarui

Konfigurasikan batas default pengambilan (pratinjau)

Dimulai dengan 2026-08-01-preview versi API, Anda dapat menggunakan objek opsional retrieveDefaults untuk menyimpan default di seluruh permintaan pada pangkalan pengetahuan. Setiap properti yang disimpan hanya berlaku jika permintaan pengambilan tidak menyertakan kolom permintaan yang sesuai:

Properti yang disimpan Ambil bidang permintaan
maxRuntimeInSeconds maxRuntimeInSeconds
maxOutputDocuments maxOutputDocuments
maxOutputSizeInTokens maxOutputSize

Anggaran token output menggunakan nama properti yang berbeda saat disimpan dan saat diganti. Atur maxOutputSizeInTokens di retrieveDefaults, dan gunakan maxOutputSize dalam permintaan pengambilan.

Nilai efektif untuk setiap properti ditentukan secara independen dalam urutan ini:

  1. Nilai yang bersesuaian pada permintaan pengambilan.
  2. Nilai dalam objek basis pengetahuan retrieveDefaults.
  3. Layanan default ketika properti tidak ada di kedua tingkat.

Contoh berikut menggunakan sumber pengetahuan indeks pencarian yang sudah ada bernama your-knowledge-source. Ini menyimpan batas waktu proses 45 detik, maksimum delapan dokumen keluaran, dan batas keluaran 12.000 token.

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);

Referensi: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)

Referensi: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
  }
}

Referensi:Pangkalan Pengetahuan - Buat atau Perbarui

Untuk mengganti nilai yang tersimpan ini menjadi 20 detik, satu dokumen, dan 5.000 token untuk satu permintaan, lihat Memverifikasi nilai default pengambilan basis pengetahuan.

Konfigurasikan CORS untuk permintaan pengambilan berbasis browser (pratinjau)

Penting

Berbagi sumber daya lintas asal (CORS) memungkinkan aplikasi berbasis browser untuk meminta data langsung dari layanan. Bergantung pada konfigurasi CORS Anda, halaman web eksternal mungkin mengakses atau memanggil layanan dan datanya dengan menggunakan konteks browser pengguna. Akses ini dapat menciptakan ancaman keamanan. Mengaktifkan CORS adalah risiko Anda sendiri.

Mulai dari versi API 2026-05-01-preview, basis pengetahuan dapat menentukan corsOptions untuk aplikasi berbasis browser yang memanggil aksi retrieve langsung dari JavaScript. Kebijakan CORS mengidentifikasi asal browser mana yang dapat mengirim permintaan pengambilan ke pangkalan pengetahuan.

Saat Anda menghilangkan corsOptions, pangkalan pengetahuan tidak memiliki kebijakan CORS, dan browser memblokir permintaan pengambilan lintas asal.

Contoh berikut membuat pangkalan pengetahuan yang memungkinkan pengambilan permintaan dari satu asal browser.

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);

Referensi: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)

Referensi: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
  }
}

Mengkueri pangkalan pengetahuan

Setelah Anda membuat basis pengetahuan, panggil aksi retrieve atau endpoint MCP untuk membuat kueri ke basis pengetahuan tersebut.

Menghapus pangkalan pengetahuan

Jika Anda tidak lagi memerlukan pangkalan pengetahuan atau perlu membangunnya kembali di layanan pencarian Anda, jalankan kode berikut untuk menghapus objek.

// 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.");

Referensi: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.")

Referensi:SearchIndexClient

# Delete a knowledge base
DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
Authorization: Bearer {{search-access-token}}

Referensi:Pangkalan Pengetahuan - Hapus