Создание источника знаний агента данных Fabric (предварительная версия)

Note

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

Important

Функции, возможности или свойства, помеченные (предварительная версия), не охватываются соглашением об уровне обслуживания, не рекомендуются для рабочих нагрузок и могут изменяться или ограничиваться до того, как они становятся общедоступными. Условия предварительной версии Поиск с использованием ИИ Azure применяются ко всем функциям предварительной версии, независимо от того, является ли он автономным или частью общедоступной функции.

При подключении к Fabric IQ могут потребоваться затраты, а данные могут отправляться за пределы границы соответствия Azure и обрабатываться в соответствии с применимыми условиями обслуживания и политиками обработки данных.

Источник знаний Fabric Data Agent (предварительная версия) подключает ваш Microsoft Fabric Data Agent к агентному конвейеру извлечения в Поиск с использованием ИИ Azure. Источники знаний создаются независимо, ссылаются в базе знаний и используются в качестве базирования данных при запросе базы знаний во время выполнения.

Агент данных выступает в качестве виртуального аналитика, создания и выполнения запросов к данным Microsoft Fabric для возврата ответов на естественном языке, таблиц и диаграмм. Это делает источники знаний агента данных Fabric полезными для быстро меняющихся данных и аналитических запросов.

В отличие от индексированных источников знаний, источники знаний агента данных Fabric запрашивают оперативные данные напрямую в момент извлечения. Конвейер приема не требуется. Для запросов требуется токен доступа конечного пользователя, который модуль извлечения использует для выполнения запросов к агенту данных Fabric от имени конечного пользователя.

Поддержка использования

Портал Azure Портал Microsoft Foundry Пакет SDK для .NET Пакет SDK для Python SDK для Java Пакет SDK для JavaScript REST API
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Необходимые условия

  • Последний пакет предварительной версии Azure.Search.Documents: dotnet add package Azure.Search.Documents --prerelease

  • Для аутентификации без использования ключа пакет Azure.Identity: dotnet add package Azure.Identity

  • Последний пакет предварительной версии azure-search-documents: pip install --pre azure-search-documents

  • Для аутентификации без использования ключа пакет azure-identity: pip install azure-identity

  • 2026-08-01-preview — версия REST API службы поиска.

  • Для проверки подлинности без ключа добавьте маркер Microsoft Entra ID в Authorization заголовок каждого HTTP-запроса.

Управление данными и соответствие требованиям

Fabric IQ обрабатывает запросы в пределах границы соответствия Microsoft Fabric для региона рабочей области. Следующие обязательства применяются при маршрутизации запросов агента через Fabric IQ.

Место расположения данных

Fabric IQ извлекает и обрабатывает данные в том регионе, где расположена рабочая область Microsoft Fabric. Данные не пересекают региональные границы во время выполнения запроса. Применимый регион и область соответствия определяются расположением рабочей области. Список поддерживаемых регионов и стандартов соответствия, которым отвечает каждый регион, см. в разделе Доступность регионов Microsoft Fabric.

Note

Если служба Поиск с использованием ИИ Azure находится в другом регионе Azure, отличном от рабочей области Fabric, результаты запроса возвращаются между регионами. Проверьте региональную доступность Microsoft Fabric и требования вашей организации к размещению данных, прежде чем подключать рабочую область Fabric, расположенную в другом регионе.

Сертификаты соответствия

Fabric IQ наследует сертификаты соответствия Microsoft Fabric для региона рабочей области. Сведения о документации по соответствию, отчетах аудита и системах соответствия, применимых в каждом регионе, см. в статье Доступность Microsoft Fabric по регионам.

Проверка существующих источников знаний

Источник знаний — это объект верхнего уровня, который можно использовать повторно. Знание существующих источников знаний полезно для повторного использования или именования новых объектов.

Выполните следующий код, чтобы перечислить источники знаний по имени и типу.

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

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

Reference:SearchIndexClient

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

Справочник:Источники знаний — список

Вы также можете вернуть один источник знаний по имени, чтобы просмотреть его определение JSON.

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

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

Reference:SearchIndexClient

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

Reference:Источники знаний — получить

Следующий код JSON является примером ответа для источника знаний агента данных Fabric.

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

Создание источника знаний

Выполните следующий код, чтобы создать источник знаний агента данных Fabric.

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

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

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

Справочник:Источники знаний — создание или обновление

Назначение базе знаний

Если вы удовлетворены источником знаний, добавьте его в базу знаний.

Important

Источники знаний агента данных Fabric не поддерживают minimalрежим извлечения и рассуждения. Вместо этого используются типы low или medium.

Запрос к базе знаний

После настройки базы знаний, вызовите действие retrieve или конечную точку MCP, чтобы запросить содержимое агента данных Fabric. У этого источника знаний есть уникальные особенности проверки прав доступа во время выполнения запроса и характеристики ответа.

Принудительное применение разрешений в момент выполнения запроса

Источники знаний агента данных Fabric используют поток токенов on-behalf-of (OBO). Вы передаёте токен доступа конечного пользователя в заголовке x-ms-query-source-authorization при запросе на получение. Токен должен быть предназначен для аудитории Поиск с использованием ИИ Azure (https://search.azure.com/.default). Механизм извлечения обменивает этот токен на токен с областью действия Microsoft Fabric и использует его для отправки запросов агенту данных Fabric от имени конечного пользователя.

Для запроса на извлечение также требуется стандартная аутентификация Поиск с использованием ИИ Azure. Маркер x-ms-query-source-authorization передается отдельно и не заменяет проверку подлинности службы.

Инструкции по передаче токена см. в разделе Проверка разрешений во время выполнения запроса (предварительная версия).

Поля ответа, специфичные для агента данных Fabric

Источники знаний агента данных Fabric возвращают результаты в объекте sourceData каждой записи references, а диагностику запросов — в массиве activity. sourceData Содержит:

  • fabricAnswer: ответ агента данных на естественном языке.
  • fabricEmbeddedResources: все внедренные ресурсы, такие как таблицы и диаграммы, когда запрос создает структурированные выходные данные.

В следующем примере показан ответ на запрос извлечения, содержащий ссылку на источник знаний Fabric Data Agent и соответствующую запись об активности. Более подробные рекомендации по интерпретации ответов операции retrieve см. в разделе «Просмотр ответа».

Tip

Чтобы получить sourceData для ссылок, задайте для includeReferenceSourceData значение true в записи источника знаний в 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
    }
  ]
}

Удаление источника знаний

Прежде чем удалить источник знаний, необходимо удалить любую базу знаний, которая ссылается на нее или обновить определение базы знаний, чтобы удалить ссылку. Для источников знаний, генерирующих индекс и конвейер индексатора, все созданные объекты также удаляются. Однако если вы использовали существующий индекс для создания источника знаний, индекс не удаляется.

Если вы пытаетесь удалить используемый источник знаний, действие завершается ошибкой и возвращает список затронутых баз знаний.

Удаление источника знаний:

  1. Получите список всех баз знаний в службе поиска.

    using Azure.Search.Documents.Indexes;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    var knowledgeBases = indexClient.GetKnowledgeBasesAsync();
    
    Console.WriteLine("Knowledge Bases:");
    
    await foreach (var kb in knowledgeBases)
    {
        Console.WriteLine($"  - {kb.Name}");
    }
    

    Reference:SearchIndexClient

    Пример ответа может выглядеть следующим образом:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Получите отдельное определение базы знаний для проверки ссылок на источники знаний.

    using Azure.Search.Documents.Indexes;
    using System.Text.Json;
    
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    // Specify the knowledge base name to retrieve
    string kbNameToGet = "earth-knowledge-base";
    
    // Get a specific knowledge base definition
    var knowledgeBaseResponse = await indexClient.GetKnowledgeBaseAsync(kbNameToGet);
    var kb = knowledgeBaseResponse.Value;
    
    // Serialize to JSON for display
    string json = JsonSerializer.Serialize(kb, new JsonSerializerOptions { WriteIndented = true });
    Console.WriteLine(json);
    

    Reference:SearchIndexClient

    Пример ответа может выглядеть следующим образом:

     {
       "Name": "earth-knowledge-base",
       "KnowledgeSources": [
         {
           "Name": "earth-knowledge-source"
         }
       ],
       "Models": [
         {}
       ],
       "RetrievalReasoningEffort": {},
       "OutputMode": {},
       "ETag": "\u00220x8DE278629D782B3\u0022",
       "EncryptionKey": null,
       "Description": null,
       "RetrievalInstructions": null,
       "AnswerInstructions": null
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

    using Azure.Search.Documents.Indexes;
    var indexClient = new SearchIndexClient(new Uri(searchEndpoint), credential);
    
    await indexClient.DeleteKnowledgeBaseAsync(knowledgeBaseName);
    System.Console.WriteLine($"Knowledge base '{knowledgeBaseName}' deleted successfully.");
    

    Reference:SearchIndexClient

  4. Удалите источник знаний.

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

    Reference:SearchIndexClient

  1. Получите список всех баз знаний в службе поиска.

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

    Reference:SearchIndexClient

    Пример ответа может выглядеть следующим образом:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Получите отдельное определение базы знаний для проверки ссылок на источники знаний.

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

    Reference:SearchIndexClient

    Пример ответа может выглядеть следующим образом:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

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

    Reference:SearchIndexClient

  4. Удалите источник знаний.

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

    Reference:SearchIndexClient

  1. Получите список всех баз знаний в службе поиска.

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

    Справочник:Базы знаний — список

    Пример ответа может выглядеть следующим образом:

     {
         "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)",
         "value": [
         {
             "name": "my-kb"
         },
         {
             "name": "my-kb-2"
         }
         ]
     }
    
  2. Получите отдельное определение базы знаний для проверки ссылок на источники знаний.

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

    Справочник:Базы знаний — получение

    Пример ответа может выглядеть следующим образом:

     {
       "name": "my-kb",
       "description": null,
       "retrievalInstructions": null,
       "answerInstructions": null,
       "outputMode": null,
       "knowledgeSources": [
         {
           "name": "my-blob-ks"
         }
       ],
       "models": [],
       "encryptionKey": null,
       "retrievalReasoningEffort": {
         "kind": "low"
       }
     }
    
  3. Удалите базу знаний или, если у вас несколько источников знаний, обновите базу знаний, чтобы удалить источник. В этом примере показано удаление.

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

    Справочник:Базы знаний — удаление

  4. Удалите источник знаний.

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

    Справочник:Источники знаний — удаление