Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Nota
O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.
Nota
Esta funcionalidade de recuperação agêntica está geralmente disponível na API REST 2026-04-01 através de acesso programático. Os portais Azure e Microsoft Foundry continuam a fornecer acesso exclusivamente em pré-visualização a todas as funcionalidades de recuperação de dados através de agentes. Para orientações sobre migração, consulte Migrar código de recuperação agential para a versão mais recente.
Se optar por usar uma API REST de pré-visualização, pode aceder a funcionalidades que ainda não estão geralmente disponíveis para esta funcionalidade. As funcionalidades de pré-visualização são fornecidas sem um acordo de nível de serviço, não sendo recomendadas para cargas de trabalho de produção. Para mais informações, consulte Termos Suplementares de Utilização para Microsoft Azure Previews.
Important
Estas funcionalidades e capacidades fazem parte da versão de pré-visualização de 2026-08-01 da API REST. A pré-visualização de 2026-08-01-está licenciada a si como parte da sua subscrição do Azure e está sujeita aos termos aplicáveis a "Pré-visualizações" nos Termos de Produto Microsoft, no Adendo de Proteção de Dados de Produtos e Serviços Microsoft ("DPA") e nos Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
A versão de pré-visualização 2026-08-01-preview suporta ligações a outros serviços Microsoft e a serviços de terceiros. A utilização destes serviços está sujeita aos respetivos termos e pode resultar no processamento ou armazenamento de dados fora do limite de conformidade do Azure, bem como no fluxo de dados para o limite de conformidade do Azure.
A pré-visualização de 2026-08-01-não pode modificar permissões de acesso que foram definidas fora da pré-visualização de 2026-08-01. Se usar a pré-visualização de 2026-08-01-com conteúdo com acesso restringido ou permissão, ocorrerá um atraso temporal antes de a pré-visualização de 2026-08-01 reconhecer alterações a essas restrições de acesso ou permissões.
É sua responsabilidade gerir se os seus dados irão fluir para além dos limites de conformidade e geográficos da sua organização e quaisquer implicações relacionadas, e garantir que as permissões, limites e aprovações apropriadas sejam providenciadas.
És responsável por rever e testar cuidadosamente as aplicações que constróis no contexto dos teus casos de uso específicos e por tomar todas as decisões e personalizações apropriadas. Isto inclui implementar as suas próprias mitigações de IA responsável, como metaprompts, filtros de conteúdo ou outros sistemas de segurança, e assegurar que as suas aplicações cumprem os padrões adequados de qualidade, fiabilidade, segurança e confiabilidade. Para mais informações, consulte a Nota de Transparência Pesquisa de IA do Azure.
Uma fonte de conhecimento de blobs ingere conteúdo do Armazenamento de Blobs do Azure ou do ADLS Gen2 num pipeline de recuperação por agentes no Pesquisa de IA do Azure. As fontes de conhecimento são criadas de forma independente, referenciadas numa base de conhecimento e usadas como dados de base quando a base é consultada em tempo de execução.
Quando cria uma fonte de conhecimento de blob, especifica uma fonte de dados externa, modelos e propriedades para gerar automaticamente os seguintes objetos Pesquisa de IA do Azure:
- Uma fonte de dados que representa um contentor de blobs.
- Um conjunto de habilidades que segmenta e opcionalmente vetoriza conteúdo multimodal do contêiner.
- Um índice que armazena conteúdo enriquecido e cumpre os critérios para a recuperação agêntica.
- Um indexador que utiliza os objetos anteriores para gerir o pipeline de indexação e enriquecimento.
O indexador gerado conforma-se ao indexador blob, cujos pré-requisitos, formatos de documentos suportados e limitações também se aplicam às fontes de conhecimento blob. Para mais informações, consulte a documentação do indexador de blobs e os limites do indexador. Se o conjunto de competências gerado invocar um serviço externo, também se aplicam os limites de entrada e do serviço dessa competência.
Nota
Se o acesso do utilizador for especificado ao nível do documento (blob) no Armazenamento do Azure, uma fonte de conhecimento pode transportar metadados de permissão para conteúdos indexados no Pesquisa de IA do Azure. Para mais informações, consulte metadados de permissão ADLS Gen2 ou os escopos Blob RBAC.
Suporte de utilização
| Portal do Azure | Portal Microsoft Foundry | .NET SDK | Python SDK | Java SDK | JavaScript SDK | API REST |
|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Pré-requisitos
Um serviço Pesquisa de IA do Azure em qualquer região que forneça recuperação proativa.
Uma conta Armazenamento de Blobs do Azure ou Azure Data Lake Storage (ADLS) Gen2.
Um contentor de blob com tipos de conteúdo suportados para texto. Para a verbalização opcional da imagem, o tipo de conteúdo suportado depende do facto de o seu modelo de processamento de chat ser capaz de analisar e descrever o ficheiro de imagem.
Se
contentExtractionModefor , use um recurso do Microsoft Foundry numahttps://<resource-name>.services.ai.azure.comcom um ponto finalstandard. O recurso deve ter uma implementação de modelo de embedding e, se ativar a verbalização de imagens, uma implementação de modelo de chat multimodal.Permissão para criar fontes de conhecimento. Configure autenticação sem chave com os papéis de Contribuidor de Serviços de Pesquisa e Contribuidor de Dados do Índice de Pesquisa atribuídos à sua conta de utilizador (recomendado) ou utilize uma chave API de administrador.
Uma identidade gerida para o serviço de pesquisa com o Storage Blob Data Reader no âmbito da conta de armazenamento de origem e o Cognitive Services User no recurso Microsoft Foundry. Se configurares um asset store numa conta de armazenamento diferente, atribui também o Storage Blob Data Contributor nesse âmbito de conta de armazenamento. Se os contentores de origem e de ativos partilharem a mesma conta, Storage Blob Data Contributor fornece acesso de leitura à origem e acesso de leitura/escrita ao armazenamento de ativos.
Se definir
networkAccessModecomoprivate, cumpra os seguintes requisitos:Ative uma identidade gerida atribuída pelo sistema ou atribuída pelo utilizador no serviço de pesquisa, conceda-lhe a função Leitor de Dados de Blobs de Armazenamento na conta de armazenamento e utilize uma
ResourceId=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>cadeia de ligação. Para uma identidade atribuída pelo utilizador, também definaingestionParameters.identity.Crie e aprove um link privado partilhado para a conta de armazenamento com o
blobID do grupo. Para ADLS Gen2, crie e aprove as ligações privadas partilhadasblobedfs.Crie e aprove um link privado partilhado para cada endpoint de modelo protegido. Utilize o ID de grupo
openai_accountpara os endpoints do Azure OpenAI efoundry_accountpara os endpoints de recursos do Foundry.
Pacote obrigatório
Azure.Search.Documents:Para as funcionalidades
2026-08-01-preview, o pacote de pré-visualização mais recente:dotnet add package Azure.Search.Documents --prereleasePara as funcionalidades de
2026-04-01, o pacote estável mais recente:dotnet add package Azure.Search.Documents
Para autenticação sem chave, o
Azure.Identitypacote:dotnet add package Azure.Identity
Pacote obrigatório
azure-search-documents:Para as funcionalidades
2026-08-01-preview, o pacote de pré-visualização mais recente:pip install --pre azure-search-documentsPara as funcionalidades de
2026-04-01, o pacote estável mais recente:pip install azure-search-documents
Para autenticação sem chave, o
azure-identitypacote:pip install azure-identity
Versão obrigatória da API REST do Serviço de Pesquisa:
Para funcionalidades de pré-visualização: 2026-08-01-preview
Para funcionalidades geralmente disponíveis: 2026-04-01
Para autenticação sem chave, inclua um token Microsoft Entra ID no
Authorizationcabeçalho de cada pedido HTTP.
Verifique fontes de conhecimento existentes
Uma fonte de conhecimento é um objeto de topo e reutilizável. Conhecer as fontes de conhecimento existentes é útil tanto para reutilizar como para nomear novos objetos.
Execute o seguinte código para listar as 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}");
}
Referência:SearchIndexClient
# List knowledge sources by name and type
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
for ks in index_client.list_knowledge_sources():
print(f" - {ks.name} ({ks.kind})")
Referência:SearchIndexClient
### List knowledge sources by name and type
GET {{search-url}}/knowledgesources?api-version={{api-version}}&$select=name,kind
Authorization: Bearer {{token}}
Referência:Fontes de Conhecimento - Lista
Também pode devolver uma única fonte de conhecimento pelo nome para rever a sua definição em 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));
Referência:SearchIndexClient
# Get a knowledge source definition
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key"))
ks = index_client.get_knowledge_source("knowledge_source_name")
print(json.dumps(ks.as_dict(), indent = 2))
Referência:SearchIndexClient
### Get a knowledge source definition
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}}
Authorization: Bearer {{token}}
Referência:Fontes de Conhecimento - Obter
O JSON seguinte é uma resposta de exemplo para uma fonte de conhecimento de 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",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<aoai-endpoint>",
"deploymentId": "gpt-5-mini",
"modelName": "gpt-5-mini",
"authIdentity": null
}
},
"ingestionSchedule": null,
"assetStore": null,
"aiServices": {
"uri": "<aoai-endpoint>",
}
},
"createdResources": {
"datasource": "my-blob-ks-datasource",
"indexer": "my-blob-ks-indexer",
"skillset": "my-blob-ks-skillset",
"index": "my-blob-ks-index"
}
}
}
Nota
Informações sensíveis são censuradas. Os recursos gerados aparecem no final da resposta.
Criar uma fonte de conhecimento
Corra o código seguinte para criar uma origem de conhecimento de blobs.
// Create a blob knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.Models;
using Azure.Search.Documents.Models;
using Azure.Identity;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new DefaultAzureCredential());
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
{
NetworkAccessMode = KnowledgeSourceNetworkAccessMode.Public,
DisableImageVerbalization = false,
ChatCompletionModel = new KnowledgeBaseAzureOpenAIModel(azureOpenAIParameters: chatCompletionParams),
EmbeddingModel = new KnowledgeSourceAzureOpenAIVectorizer
{
AzureOpenAIParameters = embeddingParams
},
IngestionPermissionOptions = new List<KnowledgeSourceIngestionPermissionOption>
{
KnowledgeSourceIngestionPermissionOption.UserIds,
KnowledgeSourceIngestionPermissionOption.GroupIds
}
};
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.");
Reference:SearchIndexClient, AzureBlobKnowledgeSource
# Create a blob knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import AzureBlobKnowledgeSource, AzureBlobKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceAzureOpenAIVectorizer, KnowledgeSourceContentExtractionMode, KnowledgeSourceIngestionParameters
from azure.search.documents.knowledgebases.models import KnowledgeSourceNetworkAccessMode
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
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(
network_access_mode = KnowledgeSourceNetworkAccessMode.PUBLIC,
identity = None,
disable_image_verbalization = False,
chat_completion_model = KnowledgeBaseAzureOpenAIModel(
azure_open_ai_parameters = AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-gpt-deployment>",
model_name = "<aoai-gpt-model>",
)
),
embedding_model = KnowledgeSourceAzureOpenAIVectorizer(
azure_open_ai_parameters=AzureOpenAIVectorizerParameters(
resource_url = "<aoai-endpoint>",
deployment_name = "<aoai-embedding-deployment>",
model_name = "<aoai-embedding-model>",
)
),
content_extraction_mode = KnowledgeSourceContentExtractionMode.MINIMAL,
ingestion_schedule = None,
ingestion_permission_options = ["user_ids", "group_ids"]
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Referência:SearchIndexClient
### Create a blob knowledge source
PUT {{search-endpoint}}/knowledgesources/my-blob-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "my-blob-ks",
"kind": "azureBlob",
"description": "This knowledge source pulls from a blob storage container.",
"encryptionKey": null,
"azureBlobParameters": {
"connectionString": "ResourceId=<storage-resource-id>",
"containerName": "<blob-container-name>",
"folderPath": null,
"isADLSGen2": false,
"ingestionParameters": {
"networkAccessMode": "public",
"identity": null,
"disableImageVerbalization": null,
"chatCompletionModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-gpt-deployment}}",
"modelName": "{{aoai-gpt-model}}"
}
},
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{aoai-endpoint}}",
"deploymentId": "{{aoai-embedding-deployment}}",
"modelName": "{{aoai-embedding-model}}"
}
},
"contentExtractionMode": "minimal",
"ingestionSchedule": null,
"ingestionPermissionOptions": ["userIds", "groupIds"]
}
}
}
Referência:Fontes de Conhecimento - Criar ou Atualizar
Nota
Para aplicar permissões ao nível de documento com ingestionPermissionOptions, utilize a versão da API 2026-08-01-preview. A versão da API de 01-04-2026 não suporta esta funcionalidade.
Restringir a ingestão a uma rede privada (pré-visualização)
A partir da versão 2026-08-01-preview da API, networkAccessMode controla o ambiente de rede em que o indexador gerado para uma origem de conhecimento de blobs é executado. Esta configuração afeta apenas a ingestão e não altera os pedidos ou respostas de recuperação da base de conhecimento.
networkAccessMode tem por defeito o valor public, o que preserva o comportamento existente da rede pública. Quando networkAccessMode é private, o indexador gerado executa-se no ambiente de execução privada. Utiliza ligações privadas partilhadas aprovadas para aceder ao Armazenamento de Blobs do Azure ou à ligação de origem ADLS Gen2 e dependências suportadas do Azure, como modelos OpenAI do Azure e recursos do Microsoft Foundry.
Para configurar e verificar o acesso à rede privada:
Cumpra os pré-requisitos da rede privada.
Definir
networkAccessModeparaprivateno pedido de criação de fonte de conhecimento. Só podes definir esta propriedade durante a criação. Para alterar mais tarde, apaga e recria a fonte do conhecimento.A criação pode falhar se o escalão de serviço ou o ambiente de execução não suportarem a execução privada, ou se não existir uma ligação privada partilhada obrigatória.
Confirme que o indexador
executionEnvironmentgerado éprivate.Confirme que cada ligação privada partilhada necessária está aprovada e tem como alvo a dependência correta. A criação bem-sucedida por si só não confirma a aprovação ou o direcionamento dos links.
Verifique periodicamente o estado da fonte de conhecimento até que
lastSynchronizationState.endTimetenha um valor. Confirme queitemsUpdatesFailedé0, e depois verifique o conteúdo da fonte específica do conector. A sincronização falha se uma dependência não for acessível.
Verificar o estado da ingestão
Execute o seguinte código para monitorizar o progresso da ingestão e a saúde, incluindo o tipo de fonte de conhecimento e erros detalhados de indexação para fontes de conhecimento que geram um pipeline de indexadores e preenchem um índice de pesquisa.
using Azure.Search.Documents.Indexes;
using System.Text.Json;
var indexClient = new SearchIndexClient(new Uri(searchEndpoint), new AzureKeyCredential(apiKey));
// Get knowledge source ingestion status
var statusResponse = await indexClient.GetKnowledgeSourceStatusAsync(knowledgeSourceName);
var status = statusResponse.Value;
// Serialize to JSON for display
var json = JsonSerializer.Serialize(status, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(json);
Referência:SearchIndexClient
# Check knowledge source ingestion status
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
import json
index_client = SearchIndexClient(endpoint="search_url", credential=AzureKeyCredential("api_key"))
status = index_client.get_knowledge_source_status("knowledge_source_name")
print(json.dumps(status.as_dict(), indent=2))
Referência:SearchIndexClient
### Check knowledge source ingestion status
GET {{search-url}}/knowledgesources/{{knowledge-source-name}}/status?api-version={{api-version}}
Authorization: Bearer {{token}}
Content-Type: application/json
Referência:Fontes de Conhecimento - Obter Estado
Uma resposta a um pedido que inclui parâmetros de ingestão e que está a ingerir conteúdo ativamente pode assemelhar-se ao seguinte exemplo.
{
"kind": "azureBlob",
"synchronizationStatus": "active",
"synchronizationInterval": "1d",
"currentSynchronizationState": {
"startTime": "2026-04-10T19:30:00Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": [
{
"key": "Item id 1",
"docURL": "https://contoso.blob.core.windows.net/contracts/2024/Q4/doc-00023.csv",
"statusCode": 400,
"componentName": "DocumentExtraction.AzureBlob.MyDataSource",
"errorMessage": "Could not read the value of column 'foo' at index '0'.",
"details": "The file could not be parsed.",
"documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388"
}
]
},
"lastSynchronizationState": {
"status": "partialSuccess",
"startTime": "2026-04-09T19:30:00Z",
"endTime": "2026-04-09T19:40:01Z",
"itemUpdatesProcessed": 1100,
"itemsUpdatesFailed": 100,
"itemsSkipped": 1100,
"errors": null
},
"statistics": {
"totalSynchronizations": 25,
"averageSynchronizationDuration": "00:15:20",
"averageItemsProcessedPerSynchronization": 500
}
}
Nota
A propriedade kind e o array currentSynchronizationState.errors[] com detalhes de erros ao nível do documento estão disponíveis a partir da versão da API de 2026-04-01. Para versões anteriores da API, estes campos não são devolvidos. O lastSynchronizationState.status campo também é novo em 01-04-2026.
Rever os objetos gerados
Ao criar esta fonte de conhecimento, o Pesquisa de IA do Azure gera automaticamente uma origem de dados, um conjunto de competências, um indexador e um índice. A resposta de criação lista cada objeto sob createdResources.
Estes objetos são gerados de acordo com um modelo fixo, e os seus nomes baseiam-se no nome da fonte de conhecimento. Não podes mudar os nomes dos objetos. Evite editar estes objetos diretamente, pois alterações podem introduzir erros ou incompatibilidades que quebram o pipeline do indexador.
Podes usar o portal do Azure para validar a criação de objetos. O fluxo de trabalho é:
Verifique o indexador para mensagens de sucesso ou fracasso. Erros de conexão ou de cota aparecem aqui.
Verifique a fonte dos dados para verificar a ligação ao seu armazenamento de dados. A ligação utiliza uma cadeia de ligação ou uma identidade gerida, dependendo de como configuraste a fonte de conhecimento.
Verifica o conjunto de competências para ver como o teu conteúdo é segmentado em blocos e, opcionalmente, vetorizado.
Verifique o índice para ver como o seu conteúdo é indexado e exposto para recuperação, incluindo quais os campos pesquisáveis e filtráveis e quais armazenam vetores para pesquisa por similaridade. Use o Explorador de Pesquisa para realizar consultas no índice gerado.
Atribuir a uma base de conhecimento
Se estiver satisfeito com a fonte de conhecimento, adicione-a a uma base de conhecimento.
Consultar uma base de conhecimento
Depois de configurar a base de conhecimento, chama a ação de recuperação ou o endpoint MCP para consultar a fonte de conhecimento. Escolhe a configuração que corresponde ao teu cenário.
Aplicar permissões ao nível do documento (pré-visualização)
Para impor permissões ao nível do documento, defina ingestionPermissionOptions ao criar esta fonte de informações e depois inclua o token de acesso do utilizador na solicitação de recuperação. Para mais informações, consulte Impor permissões no momento da consulta (pré-visualização).
Imagens incorporadas em documentos Surface (pré-visualização)
Para apresentar imagens incorporadas nos documentos (como diagramas ou digitalizações) nas respostas de síntese, configure assetStore nesta fonte de conhecimento e, em seguida, ative a disponibilização de imagens na base de conhecimento. A disponibilização de imagens não é suportada quando ingestionPermissionOptions está configurado. Para mais informações, veja Mostrar imagens incorporadas em documentos na recuperação agêntica (pré-visualização).
Eliminar uma fonte de conhecimento
Antes de poder eliminar uma fonte de conhecimento, deve eliminar qualquer base de conhecimento que a faça referência ou atualizar a definição da base 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 eliminados. No entanto, se usou um índice existente para criar uma fonte de conhecimento, o seu índice não é eliminado.
Se tentar eliminar uma fonte de conhecimento que está em uso, a ação falha e devolve uma lista das bases de conhecimento afetadas.
Para eliminar uma fonte de conhecimento:
Obtenha uma lista de todas as bases de conhecimento do 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}"); }Referência:SearchIndexClient
Uma resposta de exemplo pode ser a 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 da 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);Referência:SearchIndexClient
Uma resposta de exemplo pode ser a seguinte:
{ "Name": "earth-knowledge-base", "KnowledgeSources": [ { "Name": "earth-knowledge-source" } ], "Models": [ {} ], "RetrievalReasoningEffort": {}, "OutputMode": {}, "ETag": "\u00220x8DE278629D782B3\u0022", "EncryptionKey": null, "Description": null, "RetrievalInstructions": null, "AnswerInstructions": null }Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. Este exemplo mostra eliminaçã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.");Referência:SearchIndexClient
Apaga a fonte de conhecimento.
await indexClient.DeleteKnowledgeSourceAsync(knowledgeSourceName); System.Console.WriteLine($"Knowledge source '{knowledgeSourceName}' deleted successfully.");Referência:SearchIndexClient
Obtenha uma lista de todas as bases de conhecimento do seu serviço de pesquisa.
# Get knowledge bases from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) print("Knowledge Bases:") for kb in index_client.list_knowledge_bases(): print(f" - {kb.name}")Referência:SearchIndexClient
Uma resposta de exemplo pode ser a 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 da base de conhecimento para verificar referências de fontes de conhecimento.
# Get a knowledge base definition from azure.core.credentials import AzureKeyCredential from azure.search.documents.indexes import SearchIndexClient index_client = SearchIndexClient(endpoint = "search_url", credential = AzureKeyCredential("api_key")) kb = index_client.get_knowledge_base("knowledge_base_name") print(kb)Referência:SearchIndexClient
Uma resposta de exemplo pode ser a seguinte:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. Este exemplo mostra eliminaçã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.")Referência:SearchIndexClient
Apaga 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.")Referência:SearchIndexClient
Obtenha uma lista de todas as bases de conhecimento do seu serviço de pesquisa.
### Get knowledge bases GET {{search-url}}/knowledgebases?api-version={{api-version}}&$select=name Authorization: Bearer {{token}}Referência:Bases de Conhecimento - Lista
Uma resposta de exemplo pode ser a 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 da base de conhecimento para verificar referências de fontes de conhecimento.
### Get a knowledge base definition GET {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referência:Bases de Conhecimento - Obter
Uma resposta de exemplo pode ser a seguinte:
{ "name": "my-kb", "description": null, "retrievalInstructions": null, "answerInstructions": null, "outputMode": null, "knowledgeSources": [ { "name": "my-blob-ks" } ], "models": [], "encryptionKey": null, "retrievalReasoningEffort": { "kind": "low" } }Ou apagas a base de conhecimento ou, se tiveres várias fontes de conhecimento, atualizas a base de conhecimento para remover a fonte. Este exemplo mostra eliminação.
### Delete a knowledge base DELETE {{search-url}}/knowledgebases/{{knowledge-base-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referência:Bases de Conhecimento - Eliminar
Apaga a fonte de conhecimento.
### Delete a knowledge source DELETE {{search-url}}/knowledgesources/{{knowledge-source-name}}?api-version={{api-version}} Authorization: Bearer {{token}}Referência:Fontes de Conhecimento - Eliminar