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 de blob para indexar e consultar o conteúdo do blob do Azure 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 contrário de uma fonte de conhecimento de índice de pesquisa, que especifica um índice existente e qualificado, uma fonte de conhecimento de blob especifica 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 contêiner de blob.
- Um conjunto de habilidades que agrupa e, opcionalmente, vetoriza o conteúdo multimodal do contêiner.
- 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.
Observação
Se o acesso do usuário for especificado no nível do documento (blob) no Armazenamento do Azure, uma fonte de conhecimento poderá levar metadados de permissão para o conteúdo indexado no Azure AI Search. Para obter mais informações, consulte metadados de permissão do ADLS Gen2 ou escopos de RBAC do Blob.
Pré-requisitos
Azure AI Search em qualquer região com recuperação por agente. Você deve ter o classificador semântico habilitado.
Uma conta do Azure Blob Storage ou do Azure Data Lake Storage (ADLS) Gen2.
Um contêiner de blob com tipos de conteúdo suportados para conteúdo de texto. Para a verbalização opcional de imagens, o tipo de conteúdo suportado depende de se o seu modelo de conclusão de chat pode analisar e descrever o arquivo de imagem.
A versão prévia mais recente da
Azure.Search.Documentsbiblioteca de clientes para o SDK do .NET.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 dados blob.
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"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",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-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 blob.
// Create a blob 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 blobParams = new AzureBlobKnowledgeSourceParameters(
connectionString: connectionString,
containerName: containerName
)
{
IsAdlsGen2 = false,
IngestionParameters = ingestionParams
};
var knowledgeSource = new AzureBlobKnowledgeSource(
name: "my-blob-ks",
azureBlobParameters: blobParams
)
{
Description = "This knowledge source pulls from a blob storage container."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Propriedades específicas da origem
Você pode passar as seguintes propriedades para criar uma fonte de conhecimento de blobs.
| 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 | 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 |
chatCompletionParams |
Parâmetros específicos para modelos de conclusão de chat usados para planejamento de consultas e síntese de respostas opcionais quando o esforço de raciocínio de recuperação for baixo ou médio. | Object | Não | |
embeddingParams |
Parâmetros específicos para a inserção de modelos usados se você quiser vetorizar partes de conteúdo. | Object | Não | |
azureBlobParameters |
Parâmetros específicos para fontes de conhecimento de blob: connectionString, containerName, folderPath e isAdlsGen2. |
Object | Não | |
connectionString |
Uma cadeia de conexão baseada em chave ou, se você estiver usando uma identidade gerenciada, a ID do recurso. | String | Não | Yes |
containerName |
O nome do contêiner de armazenamento de blobs. | String | Não | Yes |
folderPath |
Uma pasta dentro do contêiner. | String | Não | Não |
isAdlsGen2 |
O padrão é False. Defina como True se você estiver usando uma conta de armazenamento do ADLS Gen2. |
booleano | 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 andamento e a integridade da ingestão, incluindo o status do indexador para fontes de conhecimento que geram um pipeline de indexador e populam 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
Ao criar uma fonte de conhecimento de blob, 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.
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 individual de base de conhecimento para verificar referências de fontes 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 de blob para indexar e consultar o conteúdo do blob do Azure 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 contrário de uma fonte de conhecimento de índice de pesquisa, que especifica um índice existente e qualificado, uma fonte de conhecimento de blob especifica 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 contêiner de blob.
- Um conjunto de habilidades que agrupa e, opcionalmente, vetoriza o conteúdo multimodal do contêiner.
- 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.
Observação
Se o acesso do usuário for especificado no nível do documento (blob) no Armazenamento do Azure, uma fonte de conhecimento poderá levar metadados de permissão para o conteúdo indexado no Azure AI Search. Para obter mais informações, consulte metadados de permissão do ADLS Gen2 ou escopos de RBAC do Blob.
Pré-requisitos
Azure AI Search em qualquer região com recuperação por agente. Você deve ter o classificador semântico habilitado.
Uma conta do Azure Blob Storage ou do Azure Data Lake Storage (ADLS) Gen2.
Um contêiner de blob com tipos de conteúdo suportados para conteúdo de texto. Para a verbalização opcional de imagens, o tipo de conteúdo suportado depende de se o seu modelo de conclusão de chat pode analisar e descrever o arquivo de imagem.
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 dados blob.
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"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",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-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 de blob.
# Create a blob knowledge source
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
knowledge_source = AzureBlobKnowledgeSource(
name = "my-blob-ks",
description = "This knowledge source pulls from a blob storage container.",
encryption_key = None,
azure_blob_parameters = AzureBlobKnowledgeSourceParameters(
connection_string = "blob_connection_string",
container_name = "blob_container_name",
folder_path = None,
is_adls_gen2 = False,
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 seguintes propriedades para criar uma fonte de conhecimento de blobs.
| 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 | Não | Yes |
description |
Uma descrição da fonte de conhecimento. | String | Yes | Não |
encryption_key |
Uma chave gerenciada pelo cliente para criptografar informações confidenciais na fonte de conhecimento e nos objetos gerados. | Object | Yes | Não |
azure_blob_parameters |
Parâmetros específicos para fontes de conhecimento de blob: connection_string, container_name, folder_path e is_adls_gen2. |
Object | Não | |
connection_string |
Uma cadeia de conexão baseada em chave ou, se você estiver usando uma identidade gerenciada, a ID do recurso. | String | Não | Yes |
container_name |
O nome do contêiner de armazenamento de blobs. | String | Não | Yes |
folder_path |
Uma pasta dentro do contêiner. | String | Não | Não |
is_adls_gen2 |
O padrão é False. Defina como True se você estiver usando uma conta de armazenamento do ADLS Gen2. |
booleano | 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 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.
# 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
Ao criar uma fonte de conhecimento de blob, 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.
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 individual de base de conhecimento para verificar referências de fontes 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 de blob para indexar e consultar o conteúdo do blob do Azure 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 contrário de uma fonte de conhecimento de índice de pesquisa, que especifica um índice existente e qualificado, uma fonte de conhecimento de blob especifica 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 contêiner de blob.
- Um conjunto de habilidades que agrupa e, opcionalmente, vetoriza o conteúdo multimodal do contêiner.
- 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.
Observação
Se o acesso do usuário for especificado no nível do documento (blob) no Armazenamento do Azure, uma fonte de conhecimento poderá levar metadados de permissão para o conteúdo indexado no Azure AI Search. Para obter mais informações, consulte metadados de permissão do ADLS Gen2 ou escopos de RBAC do Blob.
Pré-requisitos
Azure AI Search em qualquer região com recuperação por agente. Você deve ter o classificador semântico habilitado.
Uma conta do Azure Blob Storage ou do Azure Data Lake Storage (ADLS) Gen2.
Um contêiner de blob com tipos de conteúdo suportados para conteúdo de texto. Para a verbalização opcional de imagens, o tipo de conteúdo suportado depende de se o seu modelo de conclusão de chat pode analisar e descrever o arquivo de imagem.
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 dados blob.
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "A sample blob knowledge source.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<REDACTED>",
"containerName": "blobcontainer",
"folderPath": null,
"isADLSGen2": false,
"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",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<REDACTED>",
"deploymentId": "gpt-5-mini",
"apiKey": "<REDACTED>",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<REDACTED>",
"apiKey": "<REDACTED>"
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-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 tipo blob.
PUT {{search-url}}/knowledgesources/my-blob-ks?api-version=2025-11-01-preview
api-key: {{api-key}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "<YOUR AZURE STORAGE CONNECTION STRING>",
"containerName": "<YOUR BLOB CONTAINER NAME>",
"folderPath": null,
"isADLSGen2": false,
"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 seguintes propriedades para criar uma fonte de conhecimento de blobs.
| 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 | Não | Yes |
kind |
O tipo de fonte de conhecimento, que é azureBlob 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 |
azureBlobParameters |
Parâmetros específicos para fontes de conhecimento de blob: connectionString, containerName, folderPath e isADLSGen2. |
Object | Não | |
connectionString |
Uma cadeia de conexão baseada em chave ou, se você estiver usando uma identidade gerenciada, a ID do recurso. | String | Não | Yes |
containerName |
O nome do contêiner de armazenamento de blobs. | String | Não | Yes |
folderPath |
Uma pasta dentro do contêiner. | String | Não | Não |
isADLSGen2 |
O padrão é false. Defina como true se você estiver usando uma conta de armazenamento do ADLS Gen2. |
booleano | 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
Ao criar uma fonte de conhecimento de blob, 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.
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 individual de base de conhecimento para verificar referências de fontes 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}}