Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Esse recurso está atualmente em versão prévia pública. Essa visualização é fornecida sem um contrato de nível de serviço e não é recomendada para utilização em produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.
Use uma fonte de conhecimento do OneLake para indexar e consultar arquivos do Microsoft OneLake em um pipeline de recuperação por meio de agentes. As fontes de conhecimento são criadas de forma independente, referenciadas em uma base de dados de conhecimento e usadas como dados de aterramento quando um agente ou chatbot chama uma ação de recuperação no momento da consulta.
Ao criar uma fonte de conhecimento do OneLake, especifique uma fonte de dados externa, modelos e propriedades para gerar automaticamente os seguintes objetos do Azure AI Search:
- Uma fonte de dados que representa um lakehouse.
- Um conjunto de habilidades que divide em partes e, opcionalmente, vetoriza conteúdo multimodal do lakehouse.
- Um índice que armazena conteúdo enriquecido e atende aos critérios de recuperação por agentes.
- Um indexador que usa os objetos anteriores para conduzir o pipeline de indexação e enriquecimento.
O indexador gerado está em conformidade com o indexador OneLake, cujos pré-requisitos, tarefas com suporte, formatos de documento com suporte, atalhos com suporte e limitações também se aplicam às fontes de conhecimento do OneLake. Para obter mais informações, consulte a documentação do indexador OneLake.
Pré-requisitos
Azure AI Search em qualquer região com recuperação por agente. Você deve ter o classificador semântico habilitado.
Conclusão dos pré-requisitos do indexador OneLake.
Conclusão da preparação de dados do indexador OneLake.
A versão prévia mais recente da
azure-search-documentsbiblioteca de clientes para C#.Permissão para criar e usar objetos no Azure AI Search. Recomendamos o acesso baseado em função, mas você pode usar chaves de API se uma atribuição de função não for viável. Para obter mais informações, consulte Conectar-se a um serviço de pesquisa.
Verificar se há fontes de conhecimento existentes
Uma fonte de conhecimento é um objeto reutilizável de nível superior. Saber sobre fontes de conhecimento existentes é útil para reutilizar ou nomear novos objetos.
Execute o código a seguir para listar fontes de conhecimento por nome e tipo.
// 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}");
}
Você também pode retornar uma única fonte de conhecimento por nome para revisar sua definição de 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));
O JSON a seguir é uma resposta de exemplo para uma fonte de conhecimento do OneLake.
{
"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": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini"
}
},
"ingestionSchedule": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-onelake-ks-datasource",
"indexer": "my-onelake-ks-indexer",
"skillset": "my-onelake-ks-skillset",
"index": "my-onelake-ks-index"
}
}
}
Observação
Informações confidenciais são rasuradas. Os recursos gerados aparecem no final da resposta.
Criar uma fonte de conhecimento
Execute o código a seguir para criar uma fonte de conhecimento do OneLake.
// Create an IndexedOneLake knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.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
}
};
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.");
Propriedades específicas da origem
Você pode passar as propriedades a seguir para criar uma fonte de conhecimento do OneLake.
| Nome | Description | Tipo | Editável | Obrigatório |
|---|---|---|---|---|
Name |
O nome da fonte de conhecimento, que deve ser exclusivo na coleção de fontes de conhecimento e seguir as diretrizes de nomenclatura para objetos no Azure AI Search. | String | Yes | Yes |
Description |
Uma descrição da fonte de conhecimento. | String | Yes | Não |
EncryptionKey |
Uma chave gerenciada pelo cliente para criptografar informações confidenciais na fonte de conhecimento e nos objetos gerados. | Object | Yes | Não |
IndexedOneLakeKnowledgeSourceParameters |
Parâmetros específicos para fontes de conhecimento do OneLake: fabricWorkspaceId, lakehouseIde targetPath. |
Object | Yes | |
fabricWorkspaceId |
O GUID do workspace que contém o lakehouse. | String | Não | Yes |
lakehouseId |
O GUID do lakehouse. | String | Não | Yes |
targetPath |
Uma pasta ou atalho dentro do lakehouse. Quando não especificado, todo o lakehouse é indexado. | String | Não | Não |
ingestionParameters propriedades
Somente para fontes de conhecimento indexadas, você pode passar as propriedades a seguir ingestionParameters para controlar como o conteúdo é ingerido e processado.
| Nome | Description | Tipo | Editável | Obrigatório |
|---|---|---|---|---|
Identity |
Uma identidade gerenciada a ser usada no indexador gerado. | Object | Yes | Não |
DisableImageVerbalization |
Habilita ou desabilita o uso da verbalização de imagem. O padrão é False, que permite a verbalização da imagem. Defina para True para desabilitar a verbalização da imagem. |
booleano | Não | Não |
ChatCompletionModel |
Um modelo de conclusão de chat que verbaliza imagens ou extrai conteúdo. Os modelos com suporte são gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini e gpt-5-nano. A habilidade do Prompt do GenAI será incluída no conjunto de habilidades gerado. Definir esse parâmetro também requer que disable_image_verbalization seja definido como False. |
Object | Somente api_key e deployment_name são editáveis |
Não |
EmbeddingModel |
Um modelo de inserção de texto que vetorializa o conteúdo de texto e imagem durante a indexação e no momento da consulta. Os modelos com suporte são text-embedding-ada-002, text-embedding-3-smalle text-embedding-3-large. A habilidade do Azure OpenAI Embedding será incluída no conjunto de habilidades gerado e o vetor do Azure OpenAI será incluído no índice gerado. |
Object | Somente api_key e deployment_name são editáveis |
Não |
ContentExtractionMode |
Controla como o conteúdo é extraído dos arquivos. O padrão é minimal, que usa a extração de conteúdo padrão para texto e imagens. Defina como standard para quebra e quebra de documentos avançadas usando a habilidade de Compreensão de Conteúdo do Azure, que será incluída no conjunto de habilidades gerado. Somente para standard, os parâmetros AiServices e AssetStore são especificáveis. |
String | Não | Não |
AiServices |
Um recurso do Microsoft Foundry para acessar o Azure Content Understanding nas Ferramentas Foundry. Definir esse parâmetro requer que ContentExtractionMode seja definido como standard. |
Object | Somente api_key é editável |
Yes |
IngestionSchedule |
Adiciona informações de agendamento ao indexador gerado. Você também pode adicionar um agendamento posteriormente para automatizar a atualização de dados. | Object | Yes | Não |
IngestionPermissionOptions |
As permissões de documento para ingerir de fontes de conhecimento selecionadas: ADLS Gen2 ou SharePoint indexado. Se você especificar user_ids, group_idsou rbac_scope, o indexador do ADLS Gen2 gerado ou o indexador do SharePoint incluirá as permissões ingeridas. |
Array | Não | Não |
Verificar o status da ingestão
Execute o código a seguir para monitorar o progresso e a integridade da ingestão, incluindo o status do indexador para fontes de conhecimento que geram um pipeline de indexador e preenchem um índice de pesquisa.
// Get knowledge source ingestion status
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get the knowledge source 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);
Uma resposta para uma solicitação que inclui parâmetros de ingestão e está ingerindo conteúdo ativamente pode ser semelhante ao exemplo a seguir.
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
Examinar os objetos criados
Quando você cria uma fonte de conhecimento do OneLake, seu serviço de pesquisa também cria um indexador, índice, conjunto de habilidades e fonte de dados. Não recomendamos que você edite esses objetos, pois a introdução de um erro ou incompatibilidade pode interromper o pipeline.
Depois de criar uma fonte de conhecimento, a resposta lista os objetos criados. Esses objetos são criados de acordo com um modelo fixo e seus nomes são baseados no nome da fonte de conhecimento. Não é possível alterar os nomes dos objetos.
É recomendável usar o portal do Azure para validar a criação de saída. O fluxo de trabalho é:
- Verifique se há mensagens de sucesso ou falha no indexador. Erros de conexão ou cota aparecem aqui.
- Verifique o índice para obter conteúdo pesquisável. Use o Gerenciador de Pesquisa para executar consultas.
- Verifique o conjunto de habilidades para saber como o conteúdo é agrupado e, opcionalmente, vetorizado.
- Verifique a fonte de dados para obter detalhes da conexão. Nosso exemplo usa chaves de API para simplificar, mas você pode usar a ID do Microsoft Entra para autenticação e controle de acesso baseado em função para autorização.
Atribuir a uma base de dados de conhecimento
Se você estiver satisfeito com a fonte de conhecimento, prossiga para a próxima etapa: especifique a fonte de conhecimento em uma base de dados de conhecimento.
Para qualquer base de dados de conhecimento que especifique uma fonte de conhecimento do OneLake, certifique-se de definir includeReferenceSourceData como true. Esta etapa é necessária para extrair a URL do documento de origem para a citação.
Depois que a base de dados de conhecimento estiver configurada, use a ação de recuperação para consultar a fonte de conhecimento.
Excluir uma fonte de conhecimento
Antes de excluir uma fonte de conhecimento, exclua qualquer base de dados de conhecimento que faça referência a ela ou atualize a definição da base de dados de conhecimento para remover a referência. Para fontes de conhecimento que geram um pipeline de índice e indexador, todos os objetos gerados também são excluídos . No entanto, se você usou um índice existente para criar uma fonte de conhecimento, seu índice não será excluído.
Se você tentar excluir uma fonte de conhecimento que está em uso, a ação falhará e retornará uma lista de bases de dados de conhecimento afetadas.
Para excluir uma fonte de conhecimento:
Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.
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}"); }Uma resposta de exemplo pode ser semelhante à seguinte:
Knowledge Bases: - earth-knowledge-base - hotels-sample-knowledge-base - my-demo-knowledge-baseObtenha uma definição de base de conhecimento individual para verificar referências de fonte de conhecimento.
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);Uma resposta de exemplo pode ser semelhante à seguinte:
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }Exclua a base de dados de conhecimento ou atualize a base de dados de conhecimento para remover a fonte de conhecimento se você tiver várias fontes. Este exemplo mostra a exclusão.
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.");Exclua a fonte de conhecimento.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");
Observação
Esse recurso está atualmente em versão prévia pública. Essa visualização é fornecida sem um contrato de nível de serviço e não é recomendada para utilização em produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.
Use uma fonte de conhecimento do OneLake para indexar e consultar arquivos do Microsoft OneLake em um pipeline de recuperação por meio de agentes. As fontes de conhecimento são criadas de forma independente, referenciadas em uma base de dados de conhecimento e usadas como dados de aterramento quando um agente ou chatbot chama uma ação de recuperação no momento da consulta.
Ao criar uma fonte de conhecimento do OneLake, especifique uma fonte de dados externa, modelos e propriedades para gerar automaticamente os seguintes objetos do Azure AI Search:
- Uma fonte de dados que representa um lakehouse.
- Um conjunto de habilidades que divide em partes e, opcionalmente, vetoriza conteúdo multimodal do lakehouse.
- Um índice que armazena conteúdo enriquecido e atende aos critérios de recuperação por agentes.
- Um indexador que usa os objetos anteriores para conduzir o pipeline de indexação e enriquecimento.
O indexador gerado está em conformidade com o indexador OneLake, cujos pré-requisitos, tarefas com suporte, formatos de documento com suporte, atalhos com suporte e limitações também se aplicam às fontes de conhecimento do OneLake. Para obter mais informações, consulte a documentação do indexador OneLake.
Pré-requisitos
Azure AI Search em qualquer região com recuperação por agente. Você deve ter o classificador semântico habilitado.
Conclusão dos pré-requisitos do indexador OneLake.
Conclusão da preparação de dados do indexador OneLake.
A versão prévia mais recente da
azure-search-documentsbiblioteca de clientes para Python.Permissão para criar e usar objetos no Azure AI Search. Recomendamos o acesso baseado em função, mas você pode usar chaves de API se uma atribuição de função não for viável. Para obter mais informações, consulte Conectar-se a um serviço de pesquisa.
Verificar se há fontes de conhecimento existentes
Uma fonte de conhecimento é um objeto reutilizável de nível superior. Saber sobre fontes de conhecimento existentes é útil para reutilizar ou nomear novos objetos.
Execute o código a seguir para listar fontes de conhecimento por nome e tipo.
# List knowledge sources by name and type
import requests
import json
endpoint = "{search_url}/knowledgesources"
params = {"api-version": "2025-11-01-preview", "$select": "name, kind"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
Você também pode retornar uma única fonte de conhecimento por nome para revisar sua definição de JSON.
# Get a knowledge source definition
import requests
import json
endpoint = "{search_url}/knowledgesources/{knowledge_source_name}"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
O JSON a seguir é uma resposta de exemplo para uma fonte de conhecimento do OneLake.
{
"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": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini"
}
},
"ingestionSchedule": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-onelake-ks-datasource",
"indexer": "my-onelake-ks-indexer",
"skillset": "my-onelake-ks-skillset",
"index": "my-onelake-ks-index"
}
}
}
Observação
Informações confidenciais são rasuradas. Os recursos gerados aparecem no final da resposta.
Criar uma fonte de conhecimento
Execute o código a seguir para criar uma fonte de conhecimento do OneLake.
# Create a 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(
# TRIMMED FOR BREVITY
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
# TRIMMED FOR BREVITY
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = None
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Propriedades específicas da origem
Você pode passar as propriedades a seguir para criar uma fonte de conhecimento do OneLake.
| Nome | Description | Tipo | Editável | Obrigatório |
|---|---|---|---|---|
name |
O nome da fonte de conhecimento, que deve ser exclusivo na coleção de fontes de conhecimento e seguir as diretrizes de nomenclatura para objetos no Azure AI Search. | String | Yes | Yes |
description |
Uma descrição da fonte de conhecimento. | String | Yes | Não |
encryption |
Uma chave gerenciada pelo cliente para criptografar informações confidenciais na fonte de conhecimento e nos objetos gerados. | Object | Yes | Não |
indexed_one_lake_parameters |
Parâmetros específicos para fontes de conhecimento do OneLake: fabric_workspace_id, lakehouse_ide target_path. |
Object | Yes | |
fabric_workspace_id |
O GUID do workspace que contém o lakehouse. | String | Não | Yes |
lakehouse_id |
O GUID do lakehouse. | String | Não | Yes |
target_path |
Uma pasta ou atalho dentro do lakehouse. Quando não especificado, todo o lakehouse é indexado. | String | Não | Não |
ingestionParameters propriedades
Somente para fontes de conhecimento indexadas, você pode passar as propriedades a seguir ingestionParameters para controlar como o conteúdo é ingerido e processado.
| Nome | Description | Tipo | Editável | Obrigatório |
|---|---|---|---|---|
identity |
Uma identidade gerenciada a ser usada no indexador gerado. | Object | Yes | Não |
disable_image_verbalization |
Habilita ou desabilita o uso da verbalização de imagem. O padrão é False, que permite a verbalização da imagem. Defina para True para desabilitar a verbalização da imagem. |
booleano | Não | Não |
chat_completion_model |
Um modelo de conclusão de chat que verbaliza imagens ou extrai conteúdo. Os modelos com suporte são gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini e gpt-5-nano. A habilidade do Prompt do GenAI será incluída no conjunto de habilidades gerado. Definir esse parâmetro também requer que disable_image_verbalization seja definido como False. |
Object | Somente api_key e deployment_name são editáveis |
Não |
embedding_model |
Um modelo de inserção de texto que vetorializa o conteúdo de texto e imagem durante a indexação e no momento da consulta. Os modelos com suporte são text-embedding-ada-002, text-embedding-3-smalle text-embedding-3-large. A habilidade do Azure OpenAI Embedding será incluída no conjunto de habilidades gerado e o vetor do Azure OpenAI será incluído no índice gerado. |
Object | Somente api_key e deployment_name são editáveis |
Não |
content_extraction_mode |
Controla como o conteúdo é extraído dos arquivos. O padrão é minimal, que usa a extração de conteúdo padrão para texto e imagens. Defina como standard para quebra e quebra de documentos avançadas usando a habilidade de Compreensão de Conteúdo do Azure, que será incluída no conjunto de habilidades gerado. Somente para standard, os parâmetros ai_services e asset_store são especificáveis. |
String | Não | Não |
ai_services |
Um recurso do Microsoft Foundry para acessar o Azure Content Understanding nas Ferramentas Foundry. Definir esse parâmetro requer que content_extraction_mode seja definido como standard. |
Object | Somente api_key é editável |
Yes |
asset_store |
Um contêiner de blob para armazenar imagens extraídas. Definir esse parâmetro requer que content_extraction_mode seja definido como standard. |
Object | Não | Não |
ingestion_schedule |
Adiciona informações de agendamento ao indexador gerado. Você também pode adicionar um agendamento posteriormente para automatizar a atualização de dados. | Object | Yes | Não |
ingestion_permission_options |
As permissões de documento para ingerir de fontes de conhecimento selecionadas: ADLS Gen2 ou SharePoint indexado. Se você especificar user_ids, group_idsou rbac_scope, o indexador do ADLS Gen2 gerado ou o indexador do SharePoint incluirá as permissões ingeridas. |
Array | Não | Não |
Verificar o status da ingestão
Execute o seguinte código para monitorar o andamento e a integridade da ingestão, incluindo o status do indexador para fontes de conhecimento que geram um pipeline de indexador e preenchem um índice de pesquisa.
# Check knowledge source ingestion status
import requests
import json
endpoint = "{search_url}/knowledgesources/{knowledge_source_name}/status"
params = {"api-version": "2025-11-01-preview"}
headers = {"api-key": "{api_key}"}
response = requests.get(endpoint, params = params, headers = headers)
print(json.dumps(response.json(), indent = 2))
Uma resposta para uma solicitação que inclui parâmetros de ingestão e está ingerindo conteúdo ativamente pode ser semelhante ao exemplo a seguir.
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
Examinar os objetos criados
Quando você cria uma fonte de conhecimento do OneLake, seu serviço de pesquisa também cria um indexador, índice, conjunto de habilidades e fonte de dados. Não recomendamos que você edite esses objetos, pois a introdução de um erro ou incompatibilidade pode interromper o pipeline.
Depois de criar uma fonte de conhecimento, a resposta lista os objetos criados. Esses objetos são criados de acordo com um modelo fixo e seus nomes são baseados no nome da fonte de conhecimento. Não é possível alterar os nomes dos objetos.
É recomendável usar o portal do Azure para validar a criação de saída. O fluxo de trabalho é:
- Verifique se há mensagens de sucesso ou falha no indexador. Erros de conexão ou cota aparecem aqui.
- Verifique o índice para obter conteúdo pesquisável. Use o Gerenciador de Pesquisa para executar consultas.
- Verifique o conjunto de habilidades para saber como o conteúdo é agrupado e, opcionalmente, vetorizado.
- Verifique a fonte de dados para obter detalhes da conexão. Nosso exemplo usa chaves de API para simplificar, mas você pode usar a ID do Microsoft Entra para autenticação e controle de acesso baseado em função para autorização.
Atribuir a uma base de dados de conhecimento
Se você estiver satisfeito com a fonte de conhecimento, prossiga para a próxima etapa: especifique a fonte de conhecimento em uma base de dados de conhecimento.
Para qualquer base de dados de conhecimento que especifique uma fonte de conhecimento do OneLake, certifique-se de definir includeReferenceSourceData como true. Esta etapa é necessária para extrair a URL do documento de origem para a citação.
Depois que a base de dados de conhecimento estiver configurada, use a ação de recuperação para consultar a fonte de conhecimento.
Excluir uma fonte de conhecimento
Antes de excluir uma fonte de conhecimento, exclua qualquer base de dados de conhecimento que faça referência a ela ou atualize a definição da base de dados de conhecimento para remover a referência. Para fontes de conhecimento que geram um pipeline de índice e indexador, todos os objetos gerados também são excluídos . No entanto, se você usou um índice existente para criar uma fonte de conhecimento, seu índice não será excluído.
Se você tentar excluir uma fonte de conhecimento que está em uso, a ação falhará e retornará uma lista de bases de dados de conhecimento afetadas.
Para excluir uma fonte de conhecimento:
Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.
# Get knowledge bases import requests import json endpoint = "{search_url}/knowledgebases" params = {"api-version": "2025-11-01-preview", "$select": "name"} headers = {"api-key": "{api_key}"} response = requests.get(endpoint, params = params, headers = headers) print(json.dumps(response.json(), indent = 2))Uma resposta de exemplo pode ser semelhante à seguinte:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Obtenha uma definição de base de conhecimento individual para verificar referências de fonte de conhecimento.
# Get a knowledge base definition import requests import json endpoint = "{search_url}/knowledgebases/{knowledge_base_name}" params = {"api-version": "2025-11-01-preview"} headers = {"api-key": "{api_key}"} response = requests.get(endpoint, params = params, headers = headers) print(json.dumps(response.json(), indent = 2))Uma resposta de exemplo pode ser semelhante à seguinte:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks", } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Exclua a base de dados de conhecimento ou atualize a base de dados de conhecimento para remover a fonte de conhecimento se você tiver várias fontes. Este exemplo mostra a exclusão.
# 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.")Exclua a fonte de conhecimento.
# 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.")
Observação
Esse recurso está atualmente em versão prévia pública. Essa visualização é fornecida sem um contrato de nível de serviço e não é recomendada para utilização em produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares para Versões Prévias do Microsoft Azure.
Use uma fonte de conhecimento do OneLake para indexar e consultar arquivos do Microsoft OneLake em um pipeline de recuperação por meio de agentes. As fontes de conhecimento são criadas de forma independente, referenciadas em uma base de dados de conhecimento e usadas como dados de aterramento quando um agente ou chatbot chama uma ação de recuperação no momento da consulta.
Ao criar uma fonte de conhecimento do OneLake, especifique uma fonte de dados externa, modelos e propriedades para gerar automaticamente os seguintes objetos do Azure AI Search:
- Uma fonte de dados que representa um lakehouse.
- Um conjunto de habilidades que divide em partes e, opcionalmente, vetoriza conteúdo multimodal do lakehouse.
- Um índice que armazena conteúdo enriquecido e atende aos critérios de recuperação por agentes.
- Um indexador que usa os objetos anteriores para conduzir o pipeline de indexação e enriquecimento.
O indexador gerado está em conformidade com o indexador OneLake, cujos pré-requisitos, tarefas com suporte, formatos de documento com suporte, atalhos com suporte e limitações também se aplicam às fontes de conhecimento do OneLake. Para obter mais informações, consulte a documentação do indexador OneLake.
Pré-requisitos
Azure AI Search em qualquer região com recuperação por agente. Você deve ter o classificador semântico habilitado.
Conclusão dos pré-requisitos do indexador OneLake.
Conclusão da preparação de dados do indexador OneLake.
A versão 2025-11-01-preview das APIs REST do Serviço de Pesquisa.
Permissão para criar e usar objetos no Azure AI Search. Recomendamos o acesso baseado em função, mas você pode usar chaves de API se uma atribuição de função não for viável. Para obter mais informações, consulte Conectar-se a um serviço de pesquisa.
Verificar se há fontes de conhecimento existentes
Uma fonte de conhecimento é um objeto reutilizável de nível superior. Saber sobre fontes de conhecimento existentes é útil para reutilizar ou nomear novos objetos.
Use Fontes de Conhecimento – Obter (API REST) para listar fontes de conhecimento por nome e tipo.
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version=2025-11-01-preview&$select=name,kind
api-key: {{api-key}}
Você também pode retornar uma única fonte de conhecimento por nome para revisar sua definição de JSON.
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview
api-key: {{api-key}}
O JSON a seguir é uma resposta de exemplo para uma fonte de conhecimento do OneLake.
{
"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": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini"
}
},
"ingestionSchedule": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-onelake-ks-datasource",
"indexer": "my-onelake-ks-indexer",
"skillset": "my-onelake-ks-skillset",
"index": "my-onelake-ks-index"
}
}
}
Observação
Informações confidenciais são rasuradas. Os recursos gerados aparecem no final da resposta.
Criar uma fonte de conhecimento
Use fontes de conhecimento – Criar ou atualizar (API REST) para criar uma fonte de conhecimento do OneLake.
PUT {{search-url}}/knowledgesources/my-onelake-ks?api-version=2025-11-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": { TRIMMED FOR BREVITY },
"embeddingModel": { TRIMMED FOR BREVITY },
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": []
}
}
}
Propriedades específicas da origem
Você pode passar as propriedades a seguir para criar uma fonte de conhecimento do OneLake.
| Nome | Description | Tipo | Editável | Obrigatório |
|---|---|---|---|---|
name |
O nome da fonte de conhecimento, que deve ser exclusivo na coleção de fontes de conhecimento e seguir as diretrizes de nomenclatura para objetos no Azure AI Search. | String | Yes | Yes |
kind |
O tipo de fonte de conhecimento, que é indexedOneLake neste caso. |
String | Não | Yes |
description |
Uma descrição da fonte de conhecimento. | String | Yes | Não |
encryptionKey |
Uma chave gerenciada pelo cliente para criptografar informações confidenciais na fonte de conhecimento e nos objetos gerados. | Object | Yes | Não |
indexedOneLakeParameters |
Parâmetros específicos para fontes de conhecimento do OneLake: fabricWorkspaceId, lakehouseIde targetPath. |
Object | Yes | |
fabricWorkspaceId |
O GUID do workspace que contém o lakehouse. | String | Não | Yes |
lakehouseId |
O GUID do lakehouse. | String | Não | Yes |
targetPath |
Uma pasta ou atalho dentro do lakehouse. Quando não especificado, todo o lakehouse é indexado. | String | Não | Não |
ingestionParameters propriedades
Somente para fontes de conhecimento indexadas, você pode passar as propriedades a seguir ingestionParameters para controlar como o conteúdo é ingerido e processado.
| Nome | Description | Tipo | Editável | Obrigatório |
|---|---|---|---|---|
identity |
Uma identidade gerenciada a ser usada no indexador gerado. | Object | Yes | Não |
disableImageVerbalization |
Habilita ou desabilita o uso da verbalização de imagem. O padrão é false, que permite a verbalização da imagem. Defina para true para desabilitar a verbalização da imagem. |
booleano | Não | Não |
chatCompletionModel |
Um modelo de conclusão de chat que verbaliza imagens ou extrai conteúdo. Os modelos com suporte são gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-5, gpt-5-mini e gpt-5-nano. A habilidade do Prompt do GenAI será incluída no conjunto de habilidades gerado. Definir esse parâmetro também requer que disableImageVerbalization seja definido como false. |
Object | Somente apiKey e deploymentId são editáveis |
Não |
embeddingModel |
Um modelo de inserção de texto que vetorializa o conteúdo de texto e imagem durante a indexação e no momento da consulta. Os modelos com suporte são text-embedding-ada-002, text-embedding-3-smalle text-embedding-3-large. A habilidade do Azure OpenAI Embedding será incluída no conjunto de habilidades gerado e o vetor do Azure OpenAI será incluído no índice gerado. |
Object | Somente apiKey e deploymentId são editáveis |
Não |
contentExtractionMode |
Controla como o conteúdo é extraído dos arquivos. O padrão é minimal, que usa a extração de conteúdo padrão para texto e imagens. Defina como standard para quebra e quebra de documentos avançadas usando a habilidade de Compreensão de Conteúdo do Azure, que será incluída no conjunto de habilidades gerado. Somente para standard, os parâmetros aiServices e assetStore são especificáveis. |
String | Não | Não |
aiServices |
Um recurso do Microsoft Foundry para acessar o Azure Content Understanding nas Ferramentas Foundry. Definir esse parâmetro requer que contentExtractionMode seja definido como standard. |
Object | Somente apiKey é editável |
Yes |
assetStore |
Um contêiner de blob para armazenar imagens extraídas. Definir esse parâmetro requer que contentExtractionMode seja definido como standard. |
Object | Não | Não |
ingestionSchedule |
Adiciona informações de agendamento ao indexador gerado. Você também pode adicionar um agendamento posteriormente para automatizar a atualização de dados. | Object | Yes | Não |
ingestionPermissionOptions |
As permissões de documento para ingerir de fontes de conhecimento selecionadas: ADLS Gen2 ou SharePoint indexado. Se você especificar userIds, groupIdsou rbacScope, o indexador do ADLS Gen2 gerado ou o indexador do SharePoint incluirá as permissões ingeridas. |
Array | Não | Não |
Verificar o status da ingestão
Use Fontes de Conhecimento - Status (API REST) para monitorar o progresso e a saúde da ingestão, incluindo o status do indexador para fontes de conhecimento que geram um pipeline de indexação e preenchem um índice de pesquisa.
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json
Uma resposta para uma solicitação que inclui parâmetros de ingestão e está ingerindo conteúdo ativamente pode ser semelhante ao exemplo a seguir.
{
"synchronizationStatus": "active", // creating, active, deleting
"synchronizationInterval" : "1d", // null if no schedule
"currentSynchronizationState" : { // spans multiple indexer "runs"
"startTime": "2025-10-27T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"lastSynchronizationState" : { // null on first sync
"startTime": "2025-10-27T19:30:00Z",
"endTime": "2025-10-27T19:40:01Z", // this value appears on the activity record on each /retrieve
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
},
"statistics": { // null on first sync
"totalSynchronization": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization" : 500
}
}
Examinar os objetos criados
Quando você cria uma fonte de conhecimento do OneLake, seu serviço de pesquisa também cria um indexador, índice, conjunto de habilidades e fonte de dados. Não recomendamos que você edite esses objetos, pois a introdução de um erro ou incompatibilidade pode interromper o pipeline.
Depois de criar uma fonte de conhecimento, a resposta lista os objetos criados. Esses objetos são criados de acordo com um modelo fixo e seus nomes são baseados no nome da fonte de conhecimento. Não é possível alterar os nomes dos objetos.
É recomendável usar o portal do Azure para validar a criação de saída. O fluxo de trabalho é:
- Verifique se há mensagens de sucesso ou falha no indexador. Erros de conexão ou cota aparecem aqui.
- Verifique o índice para obter conteúdo pesquisável. Use o Gerenciador de Pesquisa para executar consultas.
- Verifique o conjunto de habilidades para saber como o conteúdo é agrupado e, opcionalmente, vetorizado.
- Verifique a fonte de dados para obter detalhes da conexão. Nosso exemplo usa chaves de API para simplificar, mas você pode usar a ID do Microsoft Entra para autenticação e controle de acesso baseado em função para autorização.
Atribuir a uma base de dados de conhecimento
Se você estiver satisfeito com a fonte de conhecimento, prossiga para a próxima etapa: especifique a fonte de conhecimento em uma base de dados de conhecimento.
Para qualquer base de dados de conhecimento que especifique uma fonte de conhecimento do OneLake, certifique-se de definir includeReferenceSourceData como true. Esta etapa é necessária para extrair a URL do documento de origem para a citação.
Depois que a base de dados de conhecimento estiver configurada, use a ação de recuperação para consultar a fonte de conhecimento.
Excluir uma fonte de conhecimento
Antes de excluir uma fonte de conhecimento, exclua qualquer base de dados de conhecimento que faça referência a ela ou atualize a definição da base de dados de conhecimento para remover a referência. Para fontes de conhecimento que geram um pipeline de índice e indexador, todos os objetos gerados também são excluídos . No entanto, se você usou um índice existente para criar uma fonte de conhecimento, seu índice não será excluído.
Se você tentar excluir uma fonte de conhecimento que está em uso, a ação falhará e retornará uma lista de bases de dados de conhecimento afetadas.
Para excluir uma fonte de conhecimento:
Obtenha uma lista de todas as bases de dados de conhecimento em seu serviço de pesquisa.
### Get knowledge bases GET {{search-endpoint}}/knowledgebases?api-version=2025-11-01-preview&$select=name api-key: {{api-key}}Uma resposta de exemplo pode ser semelhante à seguinte:
{ "@odata.context": "https://my-search-service.search.windows.net/$metadata#knowledgebases(name)", "value": [ { "name": "my-kb" }, { "name": "my-kb-2" } ] }Obtenha uma definição de base de conhecimento individual para verificar referências de fonte de conhecimento.
### Get a knowledge base definition GET {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview api-key: {{api-key}}Uma resposta de exemplo pode ser semelhante à seguinte:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks", } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Exclua a base de dados de conhecimento ou atualize a base de dados de conhecimento removendo a fonte de conhecimento se você tiver várias fontes. Este exemplo mostra a exclusão.
### Delete a knowledge base DELETE {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2025-11-01-preview api-key: {{api-key}}Exclua a fonte de conhecimento.
### Delete a knowledge source DELETE {{search-endpoint}}/knowledgesources/{{knowledge-source-name}}?api-version=2025-11-01-preview api-key: {{api-key}}