Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Note
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.
Important
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.
sumber pengetahuan Azure SQL yang diindeks (pratinjau) memasukkan baris dari Azure SQL Database atau Azure SQL Managed Instance ke dalam pipeline 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.
Tidak seperti sumber pengetahuan berbasis file, seperti Azure Blob Storage dan OneLake, setiap baris SQL diperlakukan sebagai satu dokumen logis. Anda mendorong skema indeks melalui pemetaan kolom eksplisit daripada menggunakan skema dokumen tetap.
Saat Anda membuat sumber pengetahuan Azure SQL terindeks, Anda menentukan sumber data SQL, pemetaan kolom opsional, dan model opsional untuk menghasilkan objek Pencarian Azure AI berikut secara otomatis:
- Sumber data yang mewakili tabel atau tampilan SQL.
- Indeks yang bidangnya berasal dari pemetaan kolom Anda.
- Kumpulan keterampilan yang menghasilkan embedding. Layanan ini membuat set keterampilan hanya ketika Anda menentukan
embeddingColumns. - Pengindeks yang menggunakan objek sebelumnya untuk mendorong alur penyerapan.
Pengindeks yang dihasilkan sesuai dengan pengindeks Azure SQL, yang prasyaratnya, kebijakan deteksi perubahan, dan batasannya juga berlaku untuk sumber pengetahuan Azure SQL terindeks. Untuk informasi selengkapnya, lihat dokumentasi pengindeks Azure SQL.
Dukungan penggunaan
| Portal Azure | Microsoft Foundry portal | .NET SDK | Python SDK | Java SDK | JavaScript SDK | REST API |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Prerequisites
Layanan Pencarian Azure AI dalam wilayah mana pun yang menyediakan agentic retrieval.
Penyelesaian prasyarat pengindeks Azure SQL, termasuk:
Azure SQL Database atau Azure SQL Managed Instance dengan tabel atau tampilan untuk diserap.
Kunci primer bernilai tunggal pada tabel atau tampilan sumber.
Untuk tampilan, kolom yang cocok untuk deteksi perubahan tanda air tinggi. Kami sangat menyarankan kolom
rowversion.
Izin untuk membuat sumber pengetahuan. Konfigurasikan autentikasi tanpa kunci dengan peran Kontributor Layanan Pencarian dan Kontributor Data Indeks Pencarian yang ditetapkan ke akun pengguna Anda (disarankan) atau gunakan kunci API admin.
Jika Anda menentukan
embeddingColumns, layanan pencarian harus memiliki identitas terkelola dengan izin Pengguna Cognitive Services pada sumber daya Microsoft Foundry yang menghosting model penyematan.Jika Anda mengatur
networkAccessModekeprivate, selesaikan persyaratan berikut:Buat dan setujui tautan privat bersama ke server SQL dengan
sqlServerID grup. Untuk SQL Managed Instance, gunakanmanagedInstanceID grup.Gunakan autentikasi SQL atau autentikasi identitas terkelola. Untuk identitas terkelola, berikan identitas peran Azure dan database yang diperlukan, dan gunakan string koneksi dengan
Database=<database-name>dan ID sumber daya server SQL atau SQL Managed Instance. AturingestionParameters.identityhanya untuk identitas yang ditetapkan pengguna. Jika Anda menghilangkannya, pengindeks menggunakan identitas yang ditetapkan sistem layanan pencarian.Buat dan setujui tautan privat bersama untuk setiap titik akhir model yang dilindungi. Gunakan ID grup
openai_accountuntuk titik akhir Azure OpenAI danfoundry_accountuntuk titik akhir sumber daya Foundry.
Paket pratinjau terbaru
Azure.Search.Documents:dotnet add package Azure.Search.Documents --prereleaseUntuk autentikasi tanpa kunci,
Azure.Identitypaket:dotnet add package Azure.Identity
Paket pratinjau terbaru
azure-search-documents:pip install --pre azure-search-documentsUntuk autentikasi tanpa kunci,
azure-identitypaket:pip install azure-identity
Versi 2026-08-01-preview dari API REST Layanan Pencarian.
Untuk autentikasi tanpa kunci, sertakan token Microsoft Entra ID di
Authorizationheader setiap permintaan HTTP.
Batasan dan pertimbangan
- Sumber pengetahuan dapat menyerap dari tepat satu tabel atau satu tampilan.
- Tabel atau tampilan sumber harus memiliki kunci primer bernilai tunggal. Kunci komposit tidak didukung.
- Kunci primer terdeteksi secara otomatis dan tidak dapat diganti.
-
contentExtractionModehanya mendukung"minimal". - Ekstraksi gambar dan verbalisasi gambar tidak didukung.
- Sinkronisasi real time tidak didukung. Pengindeks yang dihasilkan berbasis jadwal.
- Pengambilan SQL real time tidak didukung. Sumber pengetahuan terindeks, bukan berasal dari sumber jarak jauh.
Menyiapkan pengindeks yang dihasilkan
Sumber pengetahuan Azure SQL terindeks secara otomatis membuat pengindeks untuk mendorong penyerapan. Tinjau detail berikut sebelum Anda membuat sumber pengetahuan.
Deteksi perubahan
Pengindeks yang dihasilkan menggunakan deteksi perubahan pengindeks Azure SQL standar:
Tabel: Layanan ini menerapkan pelacakan perubahan terintegrasi SQL secara otomatis. Aktifkan pelacakan perubahan SQL pada tabel sumber sebelum Anda membuat sumber pengetahuan.
Pemandangan: Layanan ini menerapkan deteksi perubahan tanda air tinggi. Tentukan kolom yang akan digunakan di
highWaterMarkColumn. Kolomrowversionsangat disarankan. Untuk mendeteksi penghapusan dalam tampilan, sertakan kolom penanda soft-delete dalam tampilan, seperti yang dijelaskan dalam Kebijakan deteksi penghapusan untuk kolom soft-delete.
Authentication
Pengindeks yang dihasilkan mendukung dua opsi autentikasi:
SQL authentication: Berikan nama pengguna dan kata sandi di string koneksi.
Autentikasi identitas terkelola: Gunakan identitas terkelola yang ditetapkan sistem atau pengguna yang memiliki Azure RBAC dan peran di tingkat database pada sumber daya SQL.
Untuk format string koneksi, persyaratan peran, dan langkah-langkah penyiapan, lihat prasyarat pengindeks Azure SQL dan Koneksi melalui identitas terkelola.
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
Authorization: Bearer {{token}}
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}}
Authorization: Bearer {{token}}
Referensi:Sumber Pengetahuan - Dapatkan
JSON berikut adalah contoh respons untuk sumber pengetahuan Azure SQL terindeks.
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Sample indexed Azure SQL knowledge source.",
"encryptionKey": null,
"indexedSqlParameters": {
"connectionString": "<sql-connection-string>",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<aoai-endpoint>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large"
}
},
"createdResources": {
"datasource": "indexedsqlks-datasource",
"indexer": "indexedsqlks-indexer",
"skillset": "indexedsqlks-skillset",
"index": "indexedsqlks-index"
}
}
}
}
Membuat sumber pengetahuan
Jalankan kode berikut untuk membuat sumber pengetahuan Azure SQL terindeks.
using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
var embeddingParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri(aoaiEndpoint),
DeploymentName = aoaiEmbeddingDeployment,
ModelName = aoaiEmbeddingModel
};
var ingestionParams = new KnowledgeSourceIngestionParameters
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
ContentExtractionMode = "minimal",
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
}
};
var sqlParams = new IndexedSqlKnowledgeSourceParameters(
connectionString: sqlConnectionString,
tableOrView: "dbo.tbl_hotels")
{
ContentColumns =
{
new ContentColumnMapping("hotelName", "HotelName", "Edm.String"),
new ContentColumnMapping("description", "Description", "Edm.String")
},
EmbeddingColumns =
{
new EmbeddingColumnMapping("descriptionVector", "Description")
},
IngestionParameters = ingestionParams
};
var knowledgeSource = new IndexedSqlKnowledgeSource(
name: "indexedsqlks",
indexedSqlParameters: sqlParams)
{
Description = "Indexed Azure SQL knowledge source."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Referensi:SearchIndexClient, IndexedSqlKnowledgeSource
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
ContentColumnMapping,
EmbeddingColumnMapping,
IndexedSqlKnowledgeSource,
IndexedSqlKnowledgeSourceParameters,
)
from azure.search.documents.knowledgebases.models import (
KnowledgeSourceAzureOpenAIVectorizer,
KnowledgeSourceIngestionParameters,
KnowledgeSourceNetworkAccessMode,
)
index_client = SearchIndexClient(endpoint="<search-endpoint>", credential=DefaultAzureCredential())
embedding_params = AzureOpenAIVectorizerParameters(
resource_url="<aoai-endpoint>",
deployment_name="<aoai-embedding-deployment>",
model_name="<aoai-embedding-model>",
)
ingestion_params = KnowledgeSourceIngestionParameters(
network_access_mode=KnowledgeSourceNetworkAccessMode.PUBLIC,
content_extraction_mode="minimal",
embedding_model=KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=embedding_params
),
)
knowledge_source = IndexedSqlKnowledgeSource(
name="indexedsqlks",
description="Indexed Azure SQL knowledge source.",
indexed_sql_parameters=IndexedSqlKnowledgeSourceParameters(
connection_string="Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
table_or_view="dbo.tbl_hotels",
content_columns=[
ContentColumnMapping(
name="hotelName",
source_field="HotelName",
search_field_type="Edm.String",
),
ContentColumnMapping(
name="description",
source_field="Description",
search_field_type="Edm.String",
),
],
embedding_columns=[
EmbeddingColumnMapping(
name="descriptionVector",
source_field="Description",
)
],
ingestion_parameters=ingestion_params,
),
)
index_client.create_or_update_knowledge_source(knowledge_source=knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Referensi:SearchIndexClient
### Create an indexed Azure SQL knowledge source
PUT {{search-endpoint}}/knowledgesources/indexedsqlks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "indexedsqlks",
"kind": "indexedSql",
"description": "Indexed Azure SQL knowledge source.",
"indexedSqlParameters": {
"connectionString": "Server=tcp:{server}.database.windows.net,1433;Database={db};...;",
"tableOrView": "dbo.tbl_hotels",
"contentColumns": [
{ "name": "hotelName", "sourceField": "HotelName", "searchFieldType": "Edm.String" },
{ "name": "description", "sourceField": "Description", "searchFieldType": "Edm.String" }
],
"embeddingColumns": [
{ "name": "descriptionVector", "sourceField": "Description" }
],
"ingestionParameters": {
"networkAccessMode": "public",
"contentExtractionMode": "minimal",
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
}
}
}
}
Referensi:Sumber Pengetahuan - Buat atau Perbarui
Gunakan indexedSqlParameters untuk mengidentifikasi tabel atau tampilan SQL untuk menyerap dan menentukan pemetaan kolom yang menjadi bidang dalam indeks yang dihasilkan. Untuk tampilan, tentukan kolom tanda air tinggi yang digunakan untuk deteksi perubahan.
Pemetaan kolom
Gunakan contentColumns untuk memetakan kolom teks SQL ke bidang yang dapat dicari dalam indeks Pencarian Azure AI yang dihasilkan. Setiap pemetaan kolom konten menamai bidang indeks target, kolom SQL sumber, dan jenis bidang Pencarian Azure AI. Untuk contentColumns, gunakan Edm.String.
Menyematkan pemetaan
Gunakan embeddingColumns untuk memetakan kolom teks SQL ke dalam bidang vektor yang dihasilkan. Tentukan model embedding di ingestionParameters saat Anda menggunakan kolom embedding.
Untuk sumber pengetahuan Azure SQL yang diindeks, contentExtractionMode harus "minimal" karena proses ingesti SQL berbasis baris dan tidak mengekstrak konten dari dokumen biner. Ekstraksi gambar dan verbalisasi gambar tidak didukung, sehingga chatCompletionModel, assetStore, aiServices, dan pengaturan terkait gambar tidak berpengaruh.
Aturan default dan validasi
Default berikut berlaku saat Anda membuat sumber pengetahuan Azure SQL terindeks.
Jika Anda menghilangkan
contentColumns, layanan secara otomatis memetakan kolom SQL yang dapat direpresentasikan dengan aman sebagai teks keEdm.Stringbidang dalam indeks yang dihasilkan, menggunakan pemetaan 1:1 di mananamesama dengansourceField.Jika Anda menghilangkan
embeddingColumns, layanan tidak membuat bidang vektor dan tidak mengonfigurasi keterampilan penyematan.embeddingColumnsindependen daricontentColumns. Untuk membuat vektor sesuai dengan teks yang dapat diambil, sertakan kolom SQL yang sama di kedua array.Kunci utama tabel atau tampilan sumber ditemukan secara otomatis. Penggantian eksplisit tidak didukung, dan sumber harus memiliki kunci primer dengan satu nilai.
Membatasi penyerapan ke jaringan privat
Mulai dari versi API 2026-08-01-preview, networkAccessMode mengatur lingkungan jaringan tempat pengindeks yang dihasilkan untuk sumber pengetahuan Azure SQL yang diindeks dijalankan. Pengaturan ini hanya memengaruhi penyerapan dan tidak mengubah permintaan atau respons pengambilan pangkalan pengetahuan.
networkAccessMode secara default menggunakan public, yang mempertahankan perilaku jaringan publik yang sudah ada. Ketika networkAccessMode adalah private, pengindeks yang dihasilkan berjalan di lingkungan eksekusi privat. Layanan ini menggunakan tautan privat bersama yang telah disetujui untuk mengakses koneksi sumber Azure SQL Database atau SQL Managed Instance serta dependensi Azure yang didukung, seperti model Azure OpenAI dan sumber daya Microsoft Foundry.
Untuk mengonfigurasi dan memverifikasi akses jaringan privat:
Selesaikan prasyarat jaringan privat.
Atur
networkAccessModekeprivatedalam permintaan pembuatan sumber pengetahuan. Anda hanya dapat mengatur properti ini selama pembuatan. Untuk mengubahnya nanti, hapus dan buat ulang sumber pengetahuan.Pembuatan dapat gagal jika tingkat layanan atau runtime tidak mendukung eksekusi privat atau jika tautan privat bersama yang diperlukan tidak ada.
Konfirmasikan bahwa pengindeks
executionEnvironmentyang dihasilkan adalahprivate.Pastikan bahwa setiap tautan privat bersama yang diperlukan telah disetujui dan mengarah ke dependensi yang tepat. Pembuatan yang berhasil saja tidak mengonfirmasi persetujuan tautan atau penargetan.
Periksa status sumber pengetahuan hingga
lastSynchronizationState.endTimememiliki nilai. Konfirmasikan bahwaitemsUpdatesFailedadalah0, lalu verifikasi konten sumber khusus konektor. Sinkronisasi gagal jika dependensi tidak dapat dijangkau.
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}}
Authorization: Bearer {{token}}
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
}
}
Note
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:
Periksa pengindeks untuk pesan keberhasilan atau kegagalan. Kesalahan koneksi atau kuota muncul di sini.
Periksa sumber data untuk memverifikasi koneksi ke penyimpanan data Anda. Koneksi menggunakan string koneksi atau identitas terkelola, tergantung pada cara Anda mengonfigurasi sumber pengetahuan.
Periksa kumpulan keterampilan untuk melihat bagaimana konten Anda dibagi menjadi beberapa bagian dan, secara opsional, diubah menjadi vektor.
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.
Mengaitkan ke basis pengetahuan
Jika Anda puas dengan sumber pengetahuan, tambahkan ke pangkalan pengetahuan.
Meminta pangkalan pengetahuan
Setelah pangkalan pengetahuan dikonfigurasi, panggil tindakan ambil atau titik akhir MCP untuk mengkueri sumber pengetahuan.
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:
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" } ] }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 }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
Hapus sumber pengetahuan.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Referensi:SearchIndexClient
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" } ] }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" } }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
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
Dapatkan daftar semua pangkalan pengetahuan di layanan pencarian Anda.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}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" } ] }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}} Authorization: Bearer {{token}}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" } }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}} Authorization: Bearer {{token}}Referensi:Pangkalan Pengetahuan - Hapus
Hapus sumber pengetahuan.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referensi:Sumber Pengetahuan - Hapus