Membuat sumber pengetahuan OneLake terindeks

Catatan

Fitur pengambilan berbasis agen ini tersedia secara umum di REST API 2026-04-01 melalui akses terprogram. Portal Azure dan portal Microsoft Foundry terus menyediakan akses khusus pratinjau ke semua fitur pengambilan agenik. Untuk panduan migrasi, lihat Memigrasikan kode pengambilan agenik ke versi terbaru.

Jika Anda memilih untuk menggunakan PRATINJAU REST API, Anda dapat mengakses kemampuan yang belum tersedia secara umum untuk fitur ini. Fitur pratinjau disediakan tanpa perjanjian tingkat layanan dan tidak disarankan untuk beban kerja produksi. Untuk informasi lebih lanjut, lihat Supplemental Terms of Use for Microsoft Azure Previews.

Important

Fitur dan fungsionalitas ini adalah bagian dari REST API pratinjau 2026-05-01. Pratinjau 2026-05-01 dilisensikan kepada Anda sebagai bagian dari langganan Azure Anda dan tunduk pada persyaratan yang berlaku untuk "Pratinjau" dalam Ketentuan Produk Microsoft, Adendum Perlindungan Data Produk dan Layanan Microsoft ("DPA"), dan Ketentuan Penggunaan Supplemental untuk Pratinjau Microsoft Azure.

Versi pratinjau 2026-05-01 mendukung koneksi ke layanan Microsoft dan layanan pihak ketiga. Penggunaan layanan ini tunduk pada persyaratan masing-masing dan dapat mengakibatkan pemrosesan data atau penyimpanan di luar batas kepatuhan Azure, serta data yang mengalir ke batas kepatuhan Azure.

2026-05-01-preview tidak dapat mengubah izin akses yang ditetapkan di luar 2026-05-01-preview. Jika Anda menggunakan pratinjau 2026-05-01 dengan konten yang dibatasi akses atau izin, jeda waktu akan terjadi sebelum pratinjau 2026-05-01 mengenali perubahan pada pembatasan akses atau izin tersebut.

Anda bertanggung jawab untuk mengelola apakah data Anda akan mengalir di luar batas kepatuhan dan geografis organisasi Anda dan implikasi terkait, dan bahwa izin, batas, dan persetujuan yang sesuai disediakan.

Anda bertanggung jawab untuk meninjau dan menguji aplikasi yang Anda buat dengan cermat dalam konteks kasus penggunaan spesifik Anda dan membuat semua keputusan dan penyesuaian yang sesuai. Ini termasuk menerapkan mitigasi AI Anda sendiri yang bertanggung jawab, seperti metaprompts, filter konten, atau sistem keamanan lainnya, dan memastikan aplikasi Anda memenuhi standar kualitas, keandalan, keamanan, dan kepercayaan yang sesuai. Untuk informasi selengkapnya, lihat Catatan Transparansi Pencarian Azure AI.

Sumber pengetahuan OneLake yang terindeks memasukkan file Microsoft OneLake ke dalam alur pengambilan agentik di Pencarian Azure AI. Sumber pengetahuan dibuat secara independen, direferensikan dalam pangkalan pengetahuan, dan digunakan sebagai data dasar ketika pangkalan pengetahuan dikueri saat runtime.

Saat Membuat sumber pengetahuan OneLake terindeks, Anda menentukan sumber data eksternal, model, dan properti untuk menghasilkan objek Pencarian Azure AI berikut secara otomatis:

  • Sumber data yang mewakili lakehouse.
  • Kemampuan yang memotong dan secara opsional mem-vektorisasi konten multimodal dari lakehouse.
  • Indeks yang menyimpan konten yang diperkaya dan memenuhi kriteria untuk pengambilan agenik.
  • Pengindeks yang menggunakan objek sebelumnya untuk mendorong alur pengindeksan dan pengayaan.

Pengindeks yang dihasilkan sesuai dengan pengindeks OneLake, yang prasyaratnya, tugas yang didukung, format dokumen yang didukung, pintasan yang didukung, dan batasan juga berlaku untuk sumber pengetahuan OneLake. Untuk informasi selengkapnya, lihat dokumentasi pengindeks OneLake.

Dukungan penggunaan

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

Prasyarat

  • Paket Azure.Search.Documents yang diperlukan:

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

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

  • Paket azure-search-documents yang diperlukan:

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

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

Periksa sumber pengetahuan yang ada

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

Jalankan kode berikut untuk mencantumkan sumber pengetahuan menurut nama dan jenis.

// List knowledge sources by name and type
using Azure.Search.Documents.Indexes;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
var knowledgeSources = indexClient.GetKnowledgeSourcesAsync();

Console.WriteLine("Knowledge Sources:");

await foreach (var ks in knowledgeSources)
{
    Console.WriteLine($"  Name: {ks.Name}, Type: {ks.GetType().Name}");
}

Referensi:SearchIndexClient

# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

for ks in index_client.list_knowledge_sources():
    print(f"  - {ks.name} ({ks.kind})")

Referensi:SearchIndexClient

### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
api-key: {{api-key}}

Referensi:Sumber Pengetahuan - Daftar

Anda juga dapat mengembalikan satu sumber 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 source name to retrieve
string ksNameToGet = "earth-knowledge-source";

// Get its definition
var knowledgeSourceResponse = await indexClient.GetKnowledgeSourceAsync(ksNameToGet);
var ks = knowledgeSourceResponse.Value;

// Serialize to JSON for display
var jsonOptions = new JsonSerializerOptions 
{ 
    WriteIndented = true,
    DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never
};
Console.WriteLine(JsonSerializer.Serialize(ks, ks.GetType(), jsonOptions));

Referensi:SearchIndexClient

# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))

Referensi:SearchIndexClient

### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
api-key: {{api-key}}

Referensi:Sumber Pengetahuan - Dapatkan

JSON berikut adalah contoh respons untuk sumber pengetahuan OneLake yang diindeks.

{
  "name": "my-onelake-ks",
  "kind": "indexedOneLake",
  "description": "A sample indexed OneLake knowledge source.",
  "encryptionKey": null,
  "indexedOneLakeParameters": {
    "fabricWorkspaceId": "<REDACTED>",
    "lakehouseId": "<REDACTED>",
    "targetPath": null,
    "ingestionParameters": {
      "disableImageVerbalization": false,
      "ingestionPermissionOptions": [],
      "contentExtractionMode": "standard",
      "identity": null,
      "embeddingModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<REDACTED>",
          "deploymentId": "text-embedding-3-large",
          "apiKey": "<REDACTED>",
          "modelName": "text-embedding-3-large"
        }
      },
      "chatCompletionModel": {
        "kind": "azureOpenAI",
        "azureOpenAIParameters": {
          "resourceUri": "<your-foundry-resource-endpoint>",
          "deploymentId": "gpt-5-mini",
          "apiKey": "<REDACTED>",
          "modelName": "gpt-5-mini"
        }
      },
      "ingestionSchedule": null,
      "aiServices": {
        "uri": "<your-foundry-resource-endpoint>",
        "apiKey": "<REDACTED>"
      }
    },
    "createdResources": {
    "datasource": "my-onelake-ks-datasource",
    "indexer": "my-onelake-ks-indexer",
    "skillset": "my-onelake-ks-skillset",
    "index": "my-onelake-ks-index"
    }
  }
}

Membuat sumber pengetahuan

Jalankan kode berikut untuk membuat sumber pengetahuan OneLake yang diindeks.

// Create an indexed OneLake knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;
using Azure;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

var chatCompletionParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiGptDeployment,
    ModelName = aoaiGptModel
};

var embeddingParams = new AzureOpenAIVectorizerParameters
{
    ResourceUri = new Uri(aoaiEndpoint),
    DeploymentName = aoaiEmbeddingDeployment,
    ModelName = aoaiEmbeddingModel
};

var ingestionParams = new KnowledgeSourceIngestionParameters
{
    DisableImageVerbalization = false,
    ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
    EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
    {
        AzureOpenAIParameters = embeddingParams
    },
    IngestionPermissionOptions = new List<KnowledgeSourceIngestionPermissionOption>
    {
        KnowledgeSourceIngestionPermissionOption.UserIds,
        KnowledgeSourceIngestionPermissionOption.GroupIds
    }
};

var oneLakeParams = new IndexedOneLakeKnowledgeSourceParameters(
    fabricWorkspaceId: fabricWorkspaceId,
    lakehouseId: lakehouseId)
{
    IngestionParameters = ingestionParams
};

var knowledgeSource = new IndexedOneLakeKnowledgeSource(
    name: "my-onelake-ks",
    indexedOneLakeParameters: oneLakeParams)
{
    Description = "This knowledge source pulls content from a lakehouse."
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");

Referensi:SearchIndexClient, IndexedOneLakeKnowledgeSource

# Create an indexed OneLake knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import IndexedOneLakeKnowledgeSource, IndexedOneLakeKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters

index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))

knowledge_source = IndexedOneLakeKnowledgeSource(
    name = "my-onelake-ks",
    description= "This knowledge source pulls content from a lakehouse.",
    encryption_key = None,
    indexed_one_lake_parameters = IndexedOneLakeKnowledgeSourceParameters(
        fabric_workspace_id = "fabric_workspace_id",
        lakehouse_id = "lakehouse_id",
        target_path = None,
        ingestion_parameters = KnowledgeSourceIngestionParameters(
            identity = None,
            disable_image_verbalization = False,
            chat_completion_model = KnowledgeBaseAzureOpenAIModel(
                azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
                    resource_url = "aoai_endpoint",
                    deployment_name = "aoai_gpt_deployment",
                    model_name = "aoai_gpt_model",
                    api_key = "aoai_api_key"
                )
            ),
            embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
                azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
                    resource_url = "aoai_endpoint",
                    deployment_name = "aoai_embedding_deployment",
                    model_name = "aoai_embedding_model",
                    api_key = "aoai_api_key"
                )
            ),
            content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
            ingestion_schedule = None,
            ingestion_permission_options = ["user_ids", "group_ids"]
        )
    )
)

index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")

Referensi:SearchIndexClient

### Create an indexed OneLake knowledge source
PUT {{search-url}}/knowledgesources/my-onelake-ks?api-version=2026-05-01-preview
api-key: {{api-key}}
Content-Type: application/json

{
    "name": "my-onelake-ks",
    "kind": "indexedOneLake",
    "description": "This knowledge source pulls content from a lakehouse.",
    "indexedOneLakeParameters": {
      "fabricWorkspaceId": "<YOUR FABRIC WORKSPACE GUID>",
      "lakehouseId": "<YOUR LAKEHOUSE GUID>",
      "targetPath": null,
      "ingestionParameters": {
        "identity": null,
        "disableImageVerbalization": null,
        "chatCompletionModel": {
            "kind": "azureOpenAI",
            "azureOpenAIParameters": {
                "resourceUri": "{{aoai-endpoint}}",
                "deploymentId": "{{aoai-gpt-deployment}}",
                "modelName": "{{aoai-gpt-model}}",
                "apiKey": "{{aoai-key}}"
            }
        },
        "embeddingModel": {
            "kind": "azureOpenAI",
            "azureOpenAIParameters": {
                "resourceUri": "{{aoai-endpoint}}",
                "deploymentId": "{{aoai-embedding-deployment}}",
                "modelName": "{{aoai-embedding-model}}",
                "apiKey": "{{aoai-key}}"
            }
        },
        "contentExtractionMode": "minimal",
        "ingestionSchedule": null,
        "ingestionPermissionOptions": ["userIds", "groupIds"]
    }
  }
}

Referensi:Sumber Pengetahuan - Buat atau Perbarui

Catatan

Penegakan izin di tingkat dokumen menggunakan ingestionPermissionOptions memerlukan versi API 2026-05-01-preview. 2026-04-01 tidak mendukung fitur ini.

Properti khusus sumber

Properti berikut berlaku untuk sumber pengetahuan OneLake yang diindeks.

Nama Deskripsi Jenis Dapat Diedit Diperlukan
Name Nama sumber pengetahuan, yang harus unik dalam koleksi sumber pengetahuan dan mengikuti panduan naming untuk objek dalam Pencarian Azure AI. String Tidak Ya
Description Deskripsi sumber pengetahuan. String Ya Tidak
EncryptionKey Kunci yang dikelola pelanggan untuk mengenkripsi informasi sensitif di sumber pengetahuan dan objek yang dihasilkan. Objek Ya Tidak
IndexedOneLakeKnowledgeSourceParameters Parameter khusus untuk sumber pengetahuan OneLake: FabricWorkspaceId, , LakehouseIddan TargetPath. Objek Ya
FabricWorkspaceId GUID ruang kerja yang berisi lakehouse. String Tidak Ya
LakehouseId GUID dari lakehouse. String Tidak Ya
TargetPath Folder atau pintasan di dalam lakehouse tersebut. Ketika tidak ditentukan, seluruh lakehouse diindeks. String Tidak Tidak
Nama Deskripsi Jenis Dapat Diedit Diperlukan
name Nama sumber pengetahuan, yang harus unik dalam koleksi sumber pengetahuan dan mengikuti panduan naming untuk objek dalam Pencarian Azure AI. String Tidak Ya
description Deskripsi sumber pengetahuan. String Ya Tidak
encryption_key Kunci yang dikelola pelanggan untuk mengenkripsi informasi sensitif di sumber pengetahuan dan objek yang dihasilkan. Objek Ya Tidak
indexed_one_lake_parameters Parameter khusus untuk sumber pengetahuan OneLake: fabric_workspace_id, , lakehouse_iddan target_path. Objek Ya
fabric_workspace_id GUID ruang kerja yang berisi lakehouse. String Tidak Ya
lakehouse_id GUID dari lakehouse. String Tidak Ya
target_path Folder atau pintasan di dalam lakehouse tersebut. Ketika tidak ditentukan, seluruh lakehouse diindeks. String Tidak Tidak
Nama Deskripsi Jenis Dapat Diedit Diperlukan
name Nama sumber pengetahuan, yang harus unik dalam koleksi sumber pengetahuan dan mengikuti panduan naming untuk objek dalam Pencarian Azure AI. String Tidak Ya
kind Jenis sumber pengetahuan, yang pada indexedOneLake kasus ini. String Tidak Ya
description Deskripsi sumber pengetahuan. String Ya Tidak
encryptionKey Kunci yang dikelola pelanggan untuk mengenkripsi informasi sensitif di sumber pengetahuan dan objek yang dihasilkan. Objek Ya Tidak
indexedOneLakeParameters Parameter khusus untuk sumber pengetahuan OneLake: fabricWorkspaceId, , lakehouseIddan targetPath. Objek Ya
fabricWorkspaceId GUID ruang kerja yang berisi lakehouse. String Tidak Ya
lakehouseId GUID dari lakehouse. String Tidak Ya
targetPath Folder atau pintasan di dalam lakehouse tersebut. Ketika tidak ditentukan, seluruh lakehouse diindeks. String Tidak Tidak

Properti parameter penyerapan

Hanya untuk sumber pengetahuan terindeks, Anda dapat meneruskan properti berikut ingestionParameters untuk mengontrol bagaimana konten diserap dan diproses.

Nama Deskripsi Jenis Dapat Diedit Diperlukan
Identity Identitas terkelola untuk digunakan dalam pengindeks yang dihasilkan. Objek Ya Tidak
DisableImageVerbalization Mengaktifkan atau menonaktifkan penggunaan verbalisasi gambar. Defaultnya adalah False, yang memungkinkan verbalisasi gambar. Atur ke True untuk menonaktifkan verbalisasi gambar. Boolean Tidak Tidak
ChatCompletionModel Model penyelesaian percakapan yang mengubah gambar menjadi kata-kata atau mengekstrak konten. Model yang didukung adalah gpt-4o, , gpt-4o-minigpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini, dan gpt-5-nano. Keterampilan GenAI Prompt disertakan dalam set keterampilan yang dihasilkan. Mengatur parameter ini juga mengharuskan yang DisableImageVerbalization diatur ke False. Ketika ContentExtractionMode diatur ke standard, ChatCompletionModel.AzureOpenAIParameters.ResourceUri harus sama dengan AiServices.Uri, dan kedua parameter harus menunjuk ke sumber daya Microsoft Foundry yang sama pada services.ai.azure.com. Objek Hanya ApiKey dan DeploymentName dapat diedit Tidak
EmbeddingModel Model penyematan teks yang mem-vektorisasi konten teks dan gambar selama pengindeksan dan pada waktu kueri. Model yang didukung adalah text-embedding-ada-002, text-embedding-3-small, dan text-embedding-3-large. Keterampilan Embedding Azure OpenAI disertakan dalam skillset yang dihasilkan, dan vektoriser Azure OpenAI disertakan dalam indeks yang dihasilkan. Objek Hanya ApiKey dan DeploymentName dapat diedit Tidak
ContentExtractionMode Mengontrol bagaimana konten diekstrak dari file. Defaultnya adalah minimal, yang menggunakan metode ekstraksi konten dasar untuk teks dan gambar. Atur ke standard untuk pemrosesan dan pembagian dokumen tingkat lanjut menggunakan kemampuan Pemahaman Konten Azure, yang disertakan dalam rangkaian kemampuan yang dihasilkan. Hanya untuk standard, parameter AiServices dapat ditentukan, dan ChatCompletionModel.AzureOpenAIParameters.ResourceUri harus sama dengan AiServices.Uri. Untuk informasi selengkapnya, lihat baris ChatCompletionModel. String Tidak Tidak
AiServices Sumber daya Foundry untuk mengakses pemahaman konten Azure di Foundry Tools. Mengatur parameter ini mengharuskan yang ContentExtractionMode diatur ke standard. Untuk informasi selengkapnya, lihat baris ChatCompletionModel. Objek Hanya ApiKey dapat diedit Tidak
IngestionSchedule Menambahkan informasi penjadwalan ke pengindeks yang dihasilkan. Anda juga dapat menambahkan jadwal nanti untuk mengotomatiskan refresh data. Objek Ya Tidak
IngestionPermissionOptions Izin tingkat dokumen untuk diserap bersama konten. Tentukan UserIds, GroupIds, atau RbacScope untuk menyimpan metadata izin dalam indeks. Anda juga dapat menentukan SensitivityLabel untuk menyertakan metadata label sensitivitas Microsoft Purview untuk sumber pengetahuan blob, OneLake yang diindeks, dan SharePoint yang diindeks. Untuk panduan RBAC khusus untuk sumber data, lihat Mengimpor izin RBAC dari Blob Storage dan Mengimpor ACL dari ADLS Gen2. Untuk menerapkan izin ini pada waktu kueri, lihat Menerapkan izin pada waktu kueri (pratinjau). Array Tidak Tidak
AssetStore (hanya pratinjau 2026-05-01) Wadah blob yang digunakan untuk menyimpan secara persisten gambar yang diekstrak dari dokumen sumber. Diperlukan untuk mengaktifkan penyajian gambar (pratinjau) untuk pangkalan pengetahuan. Mengatur parameter ini menyediakan penyimpanan pengetahuan bersama sumber pengetahuan untuk menyimpan artefak gambar. Anda dapat memeriksa dan mengelola penyimpanan pengetahuan ini seperti yang lain. Akun penyimpanan harus tetap dapat diakses oleh layanan pencarian selama masa pakai pangkalan pengetahuan. Objek Tidak Tidak
Nama Deskripsi Jenis Dapat Diedit Diperlukan
identity Identitas terkelola untuk digunakan dalam pengindeks yang dihasilkan. Objek Ya Tidak
disable_image_verbalization Mengaktifkan atau menonaktifkan penggunaan verbalisasi gambar. Defaultnya adalah False, yang memungkinkan verbalisasi gambar. Atur ke True untuk menonaktifkan verbalisasi gambar. Boolean Tidak Tidak
chat_completion_model Model penyelesaian percakapan yang mengubah gambar menjadi kata-kata atau mengekstrak konten. Model yang didukung adalah gpt-4o, , gpt-4o-minigpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini, dan gpt-5-nano. Keterampilan GenAI Prompt disertakan dalam set keterampilan yang dihasilkan. Mengatur parameter ini juga mengharuskan yang disable_image_verbalization diatur ke False. Ketika content_extraction_mode diatur ke standard, chat_completion_model.azure_open_ai_parameters.resource_url harus sama dengan ai_services.uri, dan kedua parameter harus menunjuk ke sumber daya Microsoft Foundry yang sama pada services.ai.azure.com. Objek Hanya api_key dan deployment_name dapat diedit Tidak
embedding_model Model penyematan teks yang mem-vektorisasi konten teks dan gambar selama pengindeksan dan pada waktu kueri. Model yang didukung adalah text-embedding-ada-002, text-embedding-3-small, dan text-embedding-3-large. Keterampilan Embedding Azure OpenAI disertakan dalam skillset yang dihasilkan, dan vektoriser Azure OpenAI disertakan dalam indeks yang dihasilkan. Objek Hanya api_key dan deployment_name dapat diedit Tidak
content_extraction_mode Mengontrol bagaimana konten diekstrak dari file. Defaultnya adalah minimal, yang menggunakan metode ekstraksi konten dasar untuk teks dan gambar. Atur ke standard untuk pemrosesan dan pembagian dokumen tingkat lanjut menggunakan kemampuan Pemahaman Konten Azure, yang disertakan dalam rangkaian kemampuan yang dihasilkan. Hanya untuk standard, parameter ai_services dapat ditentukan, dan chat_completion_model.azure_open_ai_parameters.resource_url harus sama dengan ai_services.uri. Untuk informasi selengkapnya, lihat baris chat_completion_model. String Tidak Tidak
ai_services Sumber daya Foundry untuk mengakses Azure Content Understanding di alat Foundry. Mengatur parameter ini mengharuskan yang content_extraction_mode diatur ke standard. Untuk informasi selengkapnya, lihat baris chat_completion_model. Objek Hanya api_key dapat diedit Tidak
ingestion_schedule Menambahkan informasi penjadwalan ke pengindeks yang dihasilkan. Anda juga dapat menambahkan jadwal nanti untuk mengotomatiskan refresh data. Objek Ya Tidak
ingestion_permission_options Izin tingkat dokumen untuk diserap bersama konten. Tentukan user_ids, group_ids, atau rbac_scope untuk menyimpan metadata izin dalam indeks. Anda juga dapat menentukan sensitivity_label untuk menyertakan metadata label sensitivitas Microsoft Purview untuk sumber pengetahuan blob, OneLake yang diindeks, dan SharePoint yang diindeks. Untuk panduan RBAC khusus untuk sumber data, lihat Mengimpor izin RBAC dari Blob Storage dan Mengimpor ACL dari ADLS Gen2. Untuk menerapkan izin ini pada waktu kueri, lihat Menerapkan izin pada waktu kueri (pratinjau). Array Tidak Tidak
asset_store (hanya pratinjau 2026-05-01) Wadah blob yang digunakan untuk menyimpan secara persisten gambar yang diekstrak dari dokumen sumber. Diperlukan untuk mengaktifkan penyajian gambar (pratinjau) untuk pangkalan pengetahuan. Mengatur parameter ini menyediakan penyimpanan pengetahuan bersama sumber pengetahuan untuk menyimpan artefak gambar. Anda dapat memeriksa dan mengelola penyimpanan pengetahuan ini seperti yang lain. Akun penyimpanan harus tetap dapat diakses oleh layanan pencarian selama masa pakai pangkalan pengetahuan. Objek Tidak Tidak
Nama Deskripsi Jenis Dapat Diedit Diperlukan
identity Identitas terkelola untuk digunakan dalam pengindeks yang dihasilkan. Objek Ya Tidak
disableImageVerbalization Mengaktifkan atau menonaktifkan penggunaan verbalisasi gambar. Defaultnya adalah false, yang memungkinkan verbalisasi gambar. Atur ke true untuk menonaktifkan verbalisasi gambar. Boolean Tidak Tidak
chatCompletionModel Model penyelesaian percakapan yang mengubah gambar menjadi kata-kata atau mengekstrak konten. Model yang didukung adalah gpt-4o, , gpt-4o-minigpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini, dan gpt-5-nano. Keterampilan GenAI Prompt disertakan dalam set keterampilan yang dihasilkan. Mengatur parameter ini juga mengharuskan yang disableImageVerbalization diatur ke false. Ketika contentExtractionMode diatur ke standard, chatCompletionModel.azureOpenAIParameters.resourceUri harus sama dengan aiServices.uri, dan kedua parameter harus menunjuk ke sumber daya Microsoft Foundry yang sama pada services.ai.azure.com. Objek Hanya apiKey dan deploymentId dapat diedit Tidak
embeddingModel Model penyematan teks yang mem-vektorisasi konten teks dan gambar selama pengindeksan dan pada waktu kueri. Model yang didukung adalah text-embedding-ada-002, text-embedding-3-small, dan text-embedding-3-large. Keterampilan Embedding Azure OpenAI disertakan dalam skillset yang dihasilkan, dan vektoriser Azure OpenAI disertakan dalam indeks yang dihasilkan. Objek Hanya apiKey dan deploymentId dapat diedit Tidak
contentExtractionMode Mengontrol bagaimana konten diekstrak dari file. Defaultnya adalah minimal, yang menggunakan metode ekstraksi konten dasar untuk teks dan gambar. Atur ke standard untuk pemrosesan dan pembagian dokumen tingkat lanjut menggunakan kemampuan Pemahaman Konten Azure, yang disertakan dalam rangkaian kemampuan yang dihasilkan. Hanya untuk standard, parameter ai_services dapat ditentukan, dan chatCompletionModel.azureOpenAIParameters.resourceUri harus sama dengan aiServices.uri. Untuk informasi selengkapnya, lihat baris chatCompletionModel. String Tidak Tidak
aiServices Sumber daya Foundry untuk mengakses Azure Content Understanding di alat Foundry. Mengatur parameter ini mengharuskan yang contentExtractionMode diatur ke standard. Untuk informasi selengkapnya, lihat baris chatCompletionModel. Objek Hanya apiKey dapat diedit Tidak
ingestionSchedule Menambahkan informasi penjadwalan ke pengindeks yang dihasilkan. Anda juga dapat menambahkan jadwal nanti untuk mengotomatiskan refresh data. Objek Ya Tidak
ingestionPermissionOptions Izin tingkat dokumen untuk diserap bersama konten. Tentukan userIds, groupIds, atau rbacScope untuk menyimpan metadata izin dalam indeks. Anda juga dapat menentukan sensitivityLabel untuk menyertakan metadata label sensitivitas Microsoft Purview untuk sumber pengetahuan blob, OneLake yang diindeks, dan SharePoint yang diindeks. Untuk panduan RBAC khusus untuk sumber data, lihat Mengimpor izin RBAC dari Blob Storage dan Mengimpor ACL dari ADLS Gen2. Untuk menerapkan izin ini pada waktu kueri, lihat Menerapkan izin pada waktu kueri (pratinjau). Array Tidak Tidak
assetStore (hanya pratinjau 2026-05-01) Wadah blob yang digunakan untuk menyimpan secara persisten gambar yang diekstrak dari dokumen sumber. Diperlukan untuk mengaktifkan penyajian gambar (pratinjau) untuk pangkalan pengetahuan. Mengatur parameter ini menyediakan penyimpanan pengetahuan bersama sumber pengetahuan untuk menyimpan artefak gambar. Anda dapat memeriksa dan mengelola penyimpanan pengetahuan ini seperti yang lain. Akun penyimpanan harus tetap dapat diakses oleh layanan pencarian selama masa pakai pangkalan pengetahuan. Objek Tidak Tidak

Periksa status penyerapan

Jalankan kode berikut untuk memantau kemajuan dan kesehatan penyerapan, termasuk jenis sumber pengetahuan dan kesalahan pengindeksan terperinci untuk sumber pengetahuan yang menghasilkan alur pengindeks dan mengisi indeks pencarian.

using Azure.Search.Documents.Indexes;
using System.Text.Json;

var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));

// Get knowledge source ingestion status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;

// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);

Referensi:SearchIndexClient

# Check knowledge source ingestion status
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json

index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))

status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))

Referensi:SearchIndexClient

### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
api-key: {{api-key}}
Content-Type: application/json 

Referensi:Sumber Pengetahuan - Dapatkan Status

Respons untuk permintaan yang menyertakan parameter penyerapan dan secara aktif menyerap konten mungkin terlihat seperti contoh berikut.

{
  "kind": "azureBlob",
  "synchronizationStatus": "active",
  "synchronizationInterval": "1d",
  "currentSynchronizationState": {
    "startTime": "2026-04-10T19:30:00Z",
    "itemUpdatesProcessed": 1100,
    "itemsUpdatesFailed": 100,
    "itemsSkipped": 1100,
    "errors": [
      {
        "key": "Item id 1",
        "docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
        "statusCode": 400,
        "componentName": "DocumentExtraction.AzureBlob.MyDataSource",
        "errorMessage": "Could not read the value of column 'foo' at index '0'.",
        "details": "The file could not be parsed.",
        "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
      }
    ]
  },
  "lastSynchronizationState": {
    "status": "partialSuccess",
    "startTime": "2026-04-09T19:30:00Z",
    "endTime": "2026-04-09T19:40:01Z",
    "itemUpdatesProcessed": 1100,
    "itemsUpdatesFailed": 100,
    "itemsSkipped": 1100,
    "errors": null
  },
  "statistics": {
    "totalSynchronizations": 25,
    "averageSynchronizationDuration": "00:15:20",
    "averageItemsProcessedPerSynchronization": 500
  }
}

Catatan

Properti kind dan currentSynchronizationState.errors[] array yang berisi detail kesalahan pada tingkat dokumen, tersedia mulai versi API 2026-04-01. Untuk versi API sebelumnya, bidang ini tidak dikembalikan. Bidang lastSynchronizationState.status ini juga baru di 2026-04-01.

Meninjau objek yang dihasilkan

Saat Anda membuat sumber pengetahuan ini, Pencarian Azure AI secara otomatis menghasilkan sumber data, set keterampilan, pengindeks, dan indeks. Respons pembuatan mencantumkan setiap objek di bawah createdResources.

Objek-objek ini dihasilkan sesuai dengan templat tetap, dan namanya didasarkan pada nama sumber pengetahuan. Anda tidak dapat mengubah nama objek. Hindari mengedit objek ini secara langsung, karena perubahan dapat menimbulkan kesalahan atau ketidaksesuaian yang merusak alur pengindeks.

Anda dapat menggunakan portal Azure untuk memvalidasi pembuatan objek. Alur kerjanya adalah:

  1. Periksa pengindeks untuk pesan keberhasilan atau kegagalan. Kesalahan koneksi atau kuota muncul di sini.

  2. Periksa sumber data untuk memverifikasi koneksi ke penyimpanan data Anda. Koneksi menggunakan string koneksi atau identitas terkelola, tergantung pada cara Anda mengonfigurasi sumber pengetahuan.

  3. Periksa kumpulan keterampilan untuk melihat bagaimana konten Anda dibagi menjadi beberapa bagian dan, secara opsional, diubah menjadi vektor.

  4. Periksa indeks untuk melihat bagaimana konten Anda diindeks dan diekspos untuk pengambilan, termasuk bidang mana yang dapat dicari dan dapat difilter dan bidang mana yang menyimpan vektor untuk pencarian kesamaan. Gunakan Search Explorer untuk menjalankan kueri terhadap indeks yang dihasilkan.

Tetapkan ke basis pengetahuan

Jika Anda puas dengan sumber pengetahuan, tambahkan ke pangkalan pengetahuan.

Untuk pangkalan pengetahuan apa pun yang menentukan sumber pengetahuan OneLake terindeks, pastikan untuk mengatur includeReferenceSourceData ke true. Langkah ini diperlukan untuk menarik URL dokumen sumber ke dalam kutipan.

Meminta pangkalan pengetahuan

Setelah pangkalan pengetahuan dikonfigurasi, panggil tindakan ambil atau titik akhir MCP untuk mengkueri sumber pengetahuan. Sumber pengetahuan ini mendukung konfigurasi opsional untuk penerapan izin tingkat dokumen dan penampilan gambar yang disematkan dalam dokumen.

Terapkan izin tingkat dokumen (pratinjau)

Untuk menerapkan izin tingkat dokumen, atur ingestionPermissionOptions saat Anda membuat sumber pengetahuan ini, lalu sertakan token akses pengguna dalam permintaan pengambilan. Untuk informasi selengkapnya, lihat Menerapkan izin pada waktu kueri (pratinjau).

Tampilkan gambar yang disematkan dalam dokumen (pratinjau)

Untuk menampilkan gambar yang disematkan dokumen (seperti diagram atau pemindaian) dalam respons sintesis jawaban, konfigurasikan assetStore pada sumber pengetahuan ini, lalu aktifkan penyajian gambar di pangkalan pengetahuan. Untuk informasi selengkapnya, lihat Menampilkan gambar yang disematkan dalam dokumen dalam pengambilan agentik (pratinjau).

Menghapus sumber pengetahuan

Sebelum dapat menghapus sumber pengetahuan, Anda harus menghapus pangkalan pengetahuan apa pun yang mereferensikannya atau memperbarui definisi pangkalan pengetahuan untuk menghapus referensi. Untuk sumber pengetahuan yang menghasilkan indeks dan alur pengindeks, semua objek yang dihasilkan juga dihapus. Namun, jika Anda menggunakan indeks yang ada untuk membuat sumber pengetahuan, indeks Anda tidak dihapus.

Jika Anda mencoba menghapus sumber pengetahuan yang sedang digunakan, tindakan gagal dan mengembalikan daftar pangkalan pengetahuan yang terpengaruh.

Untuk menghapus sumber pengetahuan:

  1. Dapatkan daftar semua pangkalan pengetahuan di layanan pencarian Anda.

    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

    Contoh respons mungkin terlihat seperti berikut ini:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Dapatkan definisi pangkalan pengetahuan individual untuk memeriksa referensi sumber pengetahuan.

    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

    Contoh respons mungkin terlihat seperti berikut ini:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Hapus pangkalan pengetahuan atau, jika Anda memiliki beberapa sumber pengetahuan, perbarui pangkalan pengetahuan untuk menghapus sumbernya. Contoh ini menunjukkan penghapusan.

    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

  4. Hapus sumber pengetahuan.

    await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName);
    System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
    

    Referensi:SearchIndexClient

  1. Dapatkan daftar semua pangkalan pengetahuan di layanan pencarian Anda.

    # Get knowledge bases
    from azure.core.credentials import AzureKeyCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    
    print("Knowledge Bases:")
    for kb in index_client.list_knowledge_bases():
        print(f"  - {kb.name}")
    

    Referensi:SearchIndexClient

    Contoh respons mungkin terlihat seperti berikut ini:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Dapatkan definisi pangkalan pengetahuan individual untuk memeriksa referensi sumber pengetahuan.

    # Get a knowledge base definition
    from azure.core.credentials import AzureKeyCredential
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    kb = index_client.get_knowledge_base("knowledge_base_name")
    print(kb)
    

    Referensi:SearchIndexClient

    Contoh respons mungkin terlihat seperti berikut ini:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Hapus pangkalan pengetahuan atau, jika Anda memiliki beberapa sumber pengetahuan, perbarui pangkalan pengetahuan untuk menghapus sumbernya. Contoh ini menunjukkan penghapusan.

    # 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.")
    

    Referensi:SearchIndexClient

  4. Hapus sumber pengetahuan.

    # Delete a knowledge source
    from azure.core.credentials import AzureKeyCredential 
    from azure.search.documents.indexes import SearchIndexClient
    
    index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
    index_client.delete_knowledge_source("knowledge_source_name")
    print(f"Knowledge source deleted successfully.")
    

    Referensi:SearchIndexClient

  1. Dapatkan daftar semua pangkalan pengetahuan di layanan pencarian Anda.

    ### Get knowledge bases
    GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name
    api-key: {{api-key}}
    

    Referensi:Pangkalan Pengetahuan - Daftar

    Contoh respons mungkin terlihat seperti berikut ini:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Dapatkan definisi pangkalan pengetahuan individual untuk memeriksa referensi sumber pengetahuan.

    ### Get a knowledge base definition
    GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    api-key: {{api-key}}
    

    Referensi:Pangkalan Pengetahuan - Dapatkan

    Contoh respons mungkin terlihat seperti berikut ini:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks",
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Hapus pangkalan pengetahuan atau, jika Anda memiliki beberapa sumber pengetahuan, perbarui pangkalan pengetahuan untuk menghapus sumbernya. Contoh ini menunjukkan penghapusan.

    ### Delete a knowledge base
    DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}}
    api-key: {{api-key}}
    

    Referensi:Pangkalan Pengetahuan - Hapus

  4. Hapus sumber pengetahuan.

    ### Delete a knowledge source
    DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
    api-key: {{api-key}}
    

    Referensi:Sumber Pengetahuan - Hapus

Kesalahan yang diketahui

Saat Anda membuat sumber pengetahuan ini dengan contentExtractionMode disetel ke standard, Anda mungkin mengalami kesalahan berikut.

Failed to create custom analyzer 'azs_tmp': BadRequest - {"error":{"code":"InvalidRequest","message":"Invalid request.","innererror":{"code":"DefaultsNotSet","message":"Defaults have not yet been set. Call 'PATCH /contentunderstanding/defaults' first."}}}

Untuk mengatasi kesalahan, tentukan nilai default seperti yang diinstruksikan dalam prasyarat Pemahaman Konten. Setelah itu, Anda dapat melanjutkan dengan membuat sumber pengetahuan.