Fabric Veri Aracısı bilgi kaynağı oluşturma (önizleme)

Note

Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.

Important

(önizleme) olarak işaretlenen özellikler, özellikler veya özellikler hizmet düzeyi sözleşmesi kapsamında değildir, üretim iş yükleri için önerilmez ve genel kullanıma sunulmadan önce değişebilir veya kısıtlanabilir. Azure Yapay Zeka Arama önizleme terimleri, tek başına veya genel kullanıma sunulan bir özelliğin parçası olsun, tüm önizleme işlevleri için geçerlidir.

Fabric IQ'ya bağlandığınızda maliyetler doğurabilir ve veriler Azure uyumluluk sınırının dışına gönderilebilir ve geçerli hizmet koşullarına ve veri işleme ilkelerine göre işlenebilir.

Fabric Data Agent bilgi kaynağı (önizleme), Microsoft Fabric Data Agent’inizi Azure Yapay Zeka Arama’teki aracı tabanlı alma işlem hattına bağlar. Bilgi kaynakları bağımsız olarak oluşturulur, bilgi bankasında başvurulur ve çalışma zamanında bilgi bankası sorgulandığında temel veri olarak kullanılır.

Veri aracısı, doğal dil yanıtlarını, tablolarını ve grafiklerini döndürmek için Microsoft Fabric verilerinizde sorgular oluşturup çalıştırarak sanal analist görevi görür. Bu, Fabric Veri Aracısı bilgi kaynaklarını yüksek değişim sıklığına sahip veriler ve analitik sorgular için kullanışlı hale getirir.

Dizine alınan bilgi kaynaklarından farklı olarak Fabric Veri Aracısı bilgi kaynakları canlı verileri alma zamanında doğrudan sorgular. Alım işlem hattı gerekmez. Sorgular, alma altyapısının son kullanıcı adına Fabric Veri Aracısı'nı sorgulamak için kullandığı bir son kullanıcı erişim belirteci gerektirir.

Kullanım desteği

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

Prerequisites

  • Azure Yapay Zeka Arama hizmetinin her hangi bir bölgesinde özerk bilgi edinimini sağlayan.

  • data aracısı içeren Microsoft Fabric çalışma alanı.

  • Arama hizmetiniz ve çalışma alanınız aynı Microsoft Entra ID kiracısında olmalıdır.

  • Bilgi kaynakları oluşturma izni. Kullanıcı hesabınıza atanan Arama Hizmeti Katkıda Bulunanı rolüyle anahtarsız kimlik doğrulamasını yapılandırın (önerilir) veya bir yönetici API anahtarı kullanın.

  • En son Azure.Search.Documents önizleme paketi: dotnet add package Azure.Search.Documents --prerelease

  • Anahtarsız kimlik doğrulaması için Azure.Identity paket: dotnet add package Azure.Identity

Veri idaresi ve uyumluluk

Fabric IQ, çalışma alanınızın bölgesi için Microsoft Fabric uyumluluk sınırı içindeki istekleri işler. Temsilci sorgularını Fabric IQ üzerinden yönlendirdiğinizde aşağıdaki taahhütler geçerlidir.

Veri yerleşimi

Fabric IQ, Microsoft Fabric çalışma alanınızın bulunduğu bölgedeki verileri alır ve işler. Sorgu yürütme sırasında veriler bölgesel sınırları aşmaz. Geçerli bölge ve uyumluluk kapsamı çalışma alanı konumunuza göre belirlenir. Desteklenen bölgelerin listesi ve her bölgenin uygun olduğu uyumluluk çerçeveleri için bkz. Microsoft Fabric bölge kullanılabilirliği.

Note

Azure Yapay Zeka Arama hizmetiniz Fabric çalışma alanınızdan farklı bir Azure bölgesindeyse, sorgu sonuçları bölgeler arası döndürülür. Farklı bir bölgedeki Fabric çalışma alanını bağlamadan önce Microsoft Fabric bölge kullanılabilirliği ve kuruluşunuzun veri yerleşimi gereksinimlerini gözden geçirin.

Uyumluluk sertifikasyonları

Fabric IQ, çalışma alanı bölgesi için Microsoft Fabric uyumluluk sertifikalarını devralır. Uyumluluk belgeleri, denetim raporları ve her bölge için geçerli çerçeveler için bkz. Microsoft Fabric bölge kullanılabilirliği.

Mevcut bilgi kaynaklarını denetleme

Bilgi kaynağı üst düzey, yeniden kullanılabilir bir nesnedir. Mevcut bilgi kaynakları hakkında bilgi edinmek, yeni nesneleri yeniden kullanmak veya adlandırmak için yararlıdır.

Bilgi kaynaklarını ada ve türe göre listelemek için aşağıdaki kodu çalıştırın.

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

Başvuru: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})")

Başvuru:SearchIndexClient

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

Başvuru:Bilgi Kaynakları - Liste

JSON tanımını gözden geçirmek için, ismiyle tek bir bilgi kaynağını da döndürebilirsiniz.

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

Başvuru: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))

Başvuru:SearchIndexClient

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

Başvuru:Bilgi Kaynakları - Get

Aşağıdaki JSON, Fabric Veri Aracısı bilgi kaynağı için örnek bir yanıttır.

{
  "name": "my-fabric-data-agent-ks",
  "kind": "fabricDataAgent",
  "description": "A Fabric Data Agent knowledge source.",
  "encryptionKey": null,
  "fabricDataAgentParameters": {
    "workspaceId": "00000000-0000-0000-0000-000000000000",
    "dataAgentId": "00000000-0000-0000-0000-000000000001"
  }
}

Bilgi kaynağı oluşturma

Fabric Veri Aracısı bilgi kaynağı oluşturmak için aşağıdaki kodu çalıştırın.

using Azure.Identity;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;

Uri searchEndpoint = new Uri("<search-endpoint>");
DefaultAzureCredential credential = new DefaultAzureCredential();
var indexClient = new SearchIndexClient(searchEndpoint, credential);

var fabricDataAgent = new FabricDataAgentKnowledgeSource(
    "<knowledge-source-name>",
    new FabricDataAgentKnowledgeSourceParameters("<fabric-workspace-id>", "<fabric-data-agent-id>"))
{
    Description = "A Fabric Data Agent knowledge source."
};

await indexClient.CreateOrUpdateKnowledgeSourceAsync(fabricDataAgent);

Başvuru:SearchIndexClient

from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
    FabricDataAgentKnowledgeSource,
    FabricDataAgentKnowledgeSourceParameters,
)

index_client = SearchIndexClient(
    endpoint="<search-endpoint>",
    credential=DefaultAzureCredential()
)

knowledge_source = FabricDataAgentKnowledgeSource(
    name="<knowledge-source-name>",
    description="A Fabric Data Agent knowledge source.",
    fabric_data_agent_parameters=FabricDataAgentKnowledgeSourceParameters(
        workspace_id="<fabric-workspace-id>",
        data_agent_id="<fabric-data-agent-id>"
    )
)

index_client.create_or_update_knowledge_source(knowledge_source)

Başvuru:SearchIndexClient

### Create a Fabric Data Agent knowledge source
PUT {{search-endpoint}}/knowledgesources/my-fabric-data-agent-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json

{
  "name": "my-fabric-data-agent-ks",
  "kind": "fabricDataAgent",
  "description": "A Fabric Data Agent knowledge source.",
  "fabricDataAgentParameters": {
    "workspaceId": "{fabric-workspace-id}",
    "dataAgentId": "{fabric-data-agent-id}"
  }
}

Başvuru:Bilgi Kaynakları - Oluşturma veya Güncelleştirme

Bilgi bankasına atama

Bilgi kaynağından memnunsanız bunu bir bilgi bankasına ekleyin.

Important

Fabric Veri Aracısı bilgi kaynakları, minimalalma tabanlı akıl yürütme çabasını desteklemez. Bunun yerine low veya medium kullanın.

Bilgi bankasına sorgu yapma

Bilgi bankası yapılandırıldıktan sonra Fabric Veri Aracısı içeriğini sorgulamak için alma eylemini veya MCP uç noktasını çağırın. Bu bilgi kaynağının, sorgu sırasında izinlerin uygulanması ve yanıt davranışı açısından kendine özgü özellikleri vardır.

Sorgu zamanında izinleri uygula

Fabric Veri Aracısı’nın bilgi kaynakları, başkası adına (OBO) belirteç akışı kullanır. Son kullanıcı erişim belirtecini alma isteğindeki x-ms-query-source-authorization üstbilgisinde iletirsiniz. Belirtecin kapsamı Azure Yapay Zeka Arama hedef kitlesi (https://search.azure.com/.default) olarak belirlenmiş olmalıdır. Alma motoru, bu belirteci Microsoft Fabric kapsamındaki bir belirteçle değiştirir ve bunu son kullanıcı adına Fabric Veri Aracısı'nı sorgulamak için kullanır.

Alma isteğinde standart Azure Yapay Zeka Arama kimlik doğrulaması da gereklidir. Belirteç x-ms-query-source-authorization ayrı olarak geçirilir ve hizmet kimlik doğrulamasının yerini almaz.

Belirtecin iletilmesine ilişkin yönergeler için bkz. Sorgu zamanında izinleri zorlama (önizleme).

Fabric Data Agent'e özgü yanıt alanları

Fabric Veri Aracısı bilgi kaynakları, sonuçları sourceData dizisindeki her references girdisinin ve sorgu tanılamasının activity nesnesinde döndürür. sourceData Içerir:

  • fabricAnswer: Veri aracısının doğal dil yanıtı.
  • fabricEmbeddedResources: Sorgu yapılandırılmış çıktı ürettiğinde, tablolar ve grafikler gibi tüm gömülü kaynaklar.

Aşağıdaki örnekte Fabric Veri Aracısı bilgi kaynağı başvurusu ve buna karşılık gelen etkinlik kaydını içeren bir alma yanıtı gösterilmektedir. Getirme yanıtlarını yorumlamaya ilişkin daha kapsamlı yönergeler için bkz. Yanıtı gözden geçirme.

Tavsiye

Referansları almak için, retrieve isteğinde sourceData içindeki bilgi kaynağı girdisinde includeReferenceSourceData değerini true olarak ayarlayın knowledgeSourceParams.

{
  "response": [
      // ... Response omitted for brevity
  ],
  "activity": [
    {
      "type": "fabricDataAgent",
      "id": 1,
      "knowledgeSourceName": "my-fabric-data-agent-ks",
      "queryTime": "2026-05-11T19:37:11.600Z",
      "count": 1,
      "fabricDataAgentArguments": {
        "search": "my query"
      }
    },
    {
      // ... Additional activity records omitted for brevity
    }
  ],
  "references": [
    {
      "type": "fabricDataAgent",
      "id": "0",
      "activitySource": 1,
      "rerankerScore": 2.57,
      "workspaceId": "00000000-0000-0000-0000-000000000000",
      "dataAgentId": "00000000-0000-0000-0000-000000000001",
      "sourceData": {
        "fabricAnswer": "There were 47 airline delays in Q1 2026. The majority occurred on transcontinental routes.",
        "fabricEmbeddedResources": [
          {
            "title": "Q1 2026 Airline Operations Report",
            "mimeType": "text/csv",
            "content": "Route | Delays | Avg. Delay (min)\n--- | --- | ---\nJFK–LAX | 18 | 42\nORD–MIA | 12 | 31"
          }
        ]
      }
    },
    {
      // ... Additional references omitted for brevity
    }
  ]
}

Bilgi kaynağını silme

Bilgi kaynağını silebilmeniz için önce, buna başvuran bilgi bankalarını silmeniz veya başvuruyu kaldırmak için bilgi bankası tanımını güncelleştirmeniz gerekir. Dizin ve dizin oluşturucu işlem hattı oluşturan bilgi kaynakları için , oluşturulan tüm nesneler de silinir. Ancak, bilgi kaynağı oluşturmak için mevcut bir dizini kullandıysanız dizininiz silinmez.

Kullanımda olan bir bilgi kaynağını silmeye çalışırsanız, eylem başarısız olur ve etkilenen bilgi bankalarının listesini döndürür.

Bilgi kaynağını silmek için:

  1. Arama hizmetinizdeki tüm bilgi bankalarının listesini alın.

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

    Başvuru:SearchIndexClient

    Örnek bir yanıt aşağıdaki gibi görünebilir:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Bilgi kaynağı başvurularını denetlemek için tek bir bilgi bankası tanımı alın.

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

    Başvuru:SearchIndexClient

    Örnek bir yanıt aşağıdaki gibi görünebilir:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Bilgi bankasını silin veya birden çok bilgi kaynağınız varsa, kaynağı kaldırmak için bilgi bankasını güncelleştirin. Bu örnekte silme işlemi gösterilmektedir.

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

    Başvuru:SearchIndexClient

  4. Bilgi kaynağını silin.

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

    Başvuru:SearchIndexClient

  1. Arama hizmetinizdeki tüm bilgi bankalarının listesini alın.

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

    Başvuru:SearchIndexClient

    Örnek bir yanıt aşağıdaki gibi görünebilir:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Bilgi kaynağı başvurularını denetlemek için tek bir bilgi bankası tanımı alın.

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

    Başvuru:SearchIndexClient

    Örnek bir yanıt aşağıdaki gibi görünebilir:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Bilgi bankasını silin veya birden çok bilgi kaynağınız varsa, kaynağı kaldırmak için bilgi bankasını güncelleştirin. Bu örnekte silme işlemi gösterilmektedir.

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

    Başvuru:SearchIndexClient

  4. Bilgi kaynağını silin.

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

    Başvuru:SearchIndexClient

  1. Arama hizmetinizdeki tüm bilgi bankalarının listesini alın.

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

    Başvuru:Bilgi Bankaları - Liste

    Örnek bir yanıt aşağıdaki gibi görünebilir:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Bilgi kaynağı başvurularını denetlemek için tek bir bilgi bankası tanımı alın.

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

    Başvuru:Bilgi Bankaları - Get

    Örnek bir yanıt aşağıdaki gibi görünebilir:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Bilgi bankasını silin veya birden çok bilgi kaynağınız varsa, kaynağı kaldırmak için bilgi bankasını güncelleştirin. Bu örnekte silme işlemi gösterilmektedir.

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

    Başvuru:Bilgi Tabanları - Sil

  4. Bilgi kaynağını silin.

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

    Başvuru:Bilgi Kaynakları - Sil