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.
Importante
Funcionalidades, capacidades ou propriedades assinaladas (pré-visualização) não são abrangidas por um acordo de nível de serviço, não são recomendadas para cargas de trabalho em produção e podem mudar ou ser limitadas antes de se tornarem geralmente disponíveis. Os termos de pré-visualização do Pesquisa de IA do Azure aplicam-se a todas as funcionalidades de pré-visualização, sejam independentes ou parte de uma funcionalidade geralmente disponível.
Uma fonte de conhecimento indexada do SharePoint (pré-visualização) ingere conteúdo do SharePoint num pipeline de recuperação com 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 SharePoint de conhecimento indexada, especifica um SharePoint cadeia de ligação, modelos e propriedades para gerar automaticamente os seguintes Pesquisa de IA do Azure objetos:
- Uma fonte de dados que aponta para sites do SharePoint e utiliza a cadeia de ligação inalterada. A fonte de dados gerada segue as regras do
TenantIdindexador SharePoint. - Um conjunto de competências que segmenta e, opcionalmente, vectoriza conteúdos multimodais.
- 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 está em conformidade com o SharePoint no indexador Microsoft 365, cujos pré-requisitos, formatos de documentos suportados e limitações também se aplicam às fontes de conhecimento SharePoint indexadas. Para mais informações, consulte a documentação do indexador SharePoint 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.
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.
Conclusão dos pré-requisitos do indexador SharePoint.
Conclusão dos seguintes passos de configuração do indexador SharePoint:
Passo 1: Ativar uma identidade gerida para Pesquisa de IA do Azure (necessária apenas para autenticação sem segredo; saltar se estiver a usar um segredo cliente)
Passo 3: Criar um registo de aplicação do Microsoft Entra (para permissões de aplicação, também configura um segredo de cliente ou autenticação sem segredo)
Se for
https://<resource-name>.services.ai.azure.com, utilize um recurso do Microsoft Foundry numastandarde o ponto finalcontentExtractionMode. Implemente um modelo de incorporação e implemente também um modelo de chat multimodal se ativar a verbalização de imagens.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.
Se a fonte de conhecimento especificar um modelo Azure OpenAI para embeddings ou verbalização de imagens, o serviço de pesquisa deve ter uma identidade gerida com permissões Cognitive Services User no recurso Microsoft Foundry.
Se definir
networkAccessModecomoprivate, cumpra os seguintes requisitos:Mantenha a cadeia de ligação do SharePoint, a aplicação Microsoft Entra e as permissões do SharePoint descritas nos pré-requisitos anteriores. O SharePoint Online não é um alvo de ligação privada partilhada suportado, por isso o modo privado não torna esta ligação de origem privada.
Para cada endpoint de modelo protegido, ativar uma identidade gerida no serviço de pesquisa, conceder-lhe o papel de Utilizador de Serviços Cognitivos no recurso e criar e aprovar uma ligação privada partilhada. Utilize o ID de grupo
openai_accountpara os endpoints do Azure OpenAI efoundry_accountpara os endpoints de recursos do Foundry.
O pacote de pré-visualização mais recente
Azure.Search.Documents:dotnet add package Azure.Search.Documents --prereleasePara autenticação sem chave, o
Azure.Identitypacote:dotnet add package Azure.Identity
O pacote de pré-visualização mais recente
azure-search-documents:pip install --pre azure-search-documentsPara autenticação sem chave, o
azure-identitypacote:pip install azure-identity
A versão 2026-08-01-preview de pré-visualização da API REST do Serviço de Pesquisa.
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 SharePoint indexada.
{
"name": "my-indexed-sharepoint-ks",
"kind": "indexedSharePoint",
"description": "A sample indexed SharePoint knowledge source",
"encryptionKey": null,
"indexedSharePointParameters": {
"connectionString": "<redacted>",
"containerName": "defaultSiteLibrary",
"query": null,
"ingestionParameters": {
"disableImageVerbalization": false,
"ingestionPermissionOptions": [],
"contentExtractionMode": "minimal",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "<redacted>",
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"authIdentity": null
}
},
"chatCompletionModel": null,
"ingestionSchedule": null,
"assetStore": null,
"aiServices": null
},
"createdResources": {
"datasource": "my-indexed-sharepoint-ks-datasource",
"indexer": "my-indexed-sharepoint-ks-indexer",
"skillset": "my-indexed-sharepoint-ks-skillset",
"index": "my-indexed-sharepoint-ks-index"
}
},
"indexedOneLakeParameters": null
}
Criar uma fonte de conhecimento
Execute o código seguinte para criar uma fonte de conhecimento SharePoint indexada.
// Create an IndexedSharePoint knowledge source
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.KnowledgeBases.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
}
};
var sharePointParams = new IndexedSharePointKnowledgeSourceParameters(
connectionString: sharePointConnectionString,
containerName: "defaultSiteLibrary")
{
IngestionParameters = ingestionParams
};
var knowledgeSource = new IndexedSharePointKnowledgeSource(
name: "my-indexed-sharepoint-ks",
indexedSharePointParameters: sharePointParams)
{
Description = "A sample indexed SharePoint knowledge source."
};
await indexClient.CreateOrUpdateKnowledgeSourceAsync(knowledgeSource);
Console.WriteLine($"Knowledge source '{knowledgeSource.Name}' created or updated successfully.");
Referência:SearchIndexClient, IndexedSharePointKnowledgeSource
# Create an indexed SharePoint knowledge source
from azure.identity import DefaultAzureCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import IndexedSharePointKnowledgeSource, IndexedSharePointKnowledgeSourceParameters, KnowledgeBaseAzureOpenAIModel, AzureOpenAIVectorizerParameters, KnowledgeSourceContentExtractionMode
from azure.search.documents.knowledgebases.models import KnowledgeSourceIngestionParameters, KnowledgeSourceNetworkAccessMode, KnowledgeSourceAzureOpenAIVectorizer
index_client = SearchIndexClient(endpoint = "<search-endpoint>", credential = DefaultAzureCredential())
knowledge_source = IndexedSharePointKnowledgeSource(
name = "my-indexed-sharepoint-ks",
description = "A sample indexed SharePoint knowledge source.",
encryption_key = None,
indexed_share_point_parameters = IndexedSharePointKnowledgeSourceParameters(
connection_string = "connection_string",
container_name = "defaultSiteLibrary",
query = None,
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 = None
)
)
)
index_client.create_or_update_knowledge_source(knowledge_source)
print(f"Knowledge source '{knowledge_source.name}' created or updated successfully.")
Referência:SearchIndexClient
### Create an indexed SharePoint knowledge source
PUT {{search-endpoint}}/knowledgesources/my-indexed-sharepoint-ks?api-version=2026-08-01-preview
Authorization: Bearer {{search-access-token}}
Content-Type: application/json
{
"name": "my-indexed-sharepoint-ks",
"kind": "indexedSharePoint",
"description": "A sample indexed SharePoint knowledge source.",
"encryptionKey": null,
"indexedSharePointParameters": {
"connectionString": "{{sharepoint-federated-connection-string}}",
"containerName": "defaultSiteLibrary",
"query": null,
"ingestionParameters": {
"networkAccessMode": "public",
"identity": null,
"embeddingModel": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"deploymentId": "text-embedding-3-large",
"modelName": "text-embedding-3-large",
"resourceUri": "{{aoai-endpoint}}"
}
},
"chatCompletionModel": null,
"disableImageVerbalization": false,
"ingestionSchedule": null,
"ingestionPermissionOptions": [],
"contentExtractionMode": "minimal"
}
}
}
Referência:Fontes de Conhecimento - Criar ou Atualizar
Proteger as dependências do Azure durante a ingestão de dados
A partir da 2026-08-01-preview versão da API, networkAccessMode controla o ambiente de rede onde o indexador gerado para uma fonte de conhecimento SharePoint indexada é 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 a dependências do Azure suportadas, como modelos OpenAI do Azure e recursos do Microsoft Foundry.
Importante
Para fontes de conhecimento SharePoint indexadas, o modo privado aplica-se apenas a dependências Azure suportadas. O SharePoint Online não é um alvo de ligação privada partilhada suportado, pelo que a ligação de origem do SharePoint permanece pública.
Para configurar e verificar o acesso privado às dependências do Azure suportadas:
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.
Use analisadores automáticos por língua
A partir da versão 2026-08-01-preview da API, estão disponíveis analisadores automáticos por idioma para fontes de conhecimento blob, do OneLake indexadas e do SharePoint indexadas. Quando ativado, o Pesquisa de IA do Azure deteta a linguagem de cada documento de origem e aplica automaticamente um analisador de linguagem Microsoft correspondente. Não especificas um analisador na definição da fonte de conhecimento ou numa consulta.
Para ativar analisadores automáticos para cada idioma, defina contentExtractionMode para minimal e configure ingestionParameters.aiServices na definição da origem de conhecimento.
Para autenticação sem chave, omita aiServices.apiKey e atribui o papel de Utilizador de Serviços Cognitivos no teu recurso Microsoft Foundry à identidade gerida do teu serviço de pesquisa. Para autenticação baseada em chaves, defina aiServices.apiKey uma chave válida para o seu recurso Foundry.
Os seguintes idiomas são suportados:
- English
- Japanese
- French
- Spanish
- German
- Neerlandês
- Italian
- Português do Brasil
- Português Europeu
- Chinês simplificado
- Chinês tradicional
- Korean
Para conteúdos multilíngues, o Pesquisa de IA do Azure seleciona um analisador com base na língua predominante detetada. Utiliza o analisador padrão quando a linguagem não é suportada ou é incerta.
Quando ativa analisadores automáticos por língua, o Pesquisa de IA do Azure adiciona campos de conteúdo específicos para cada língua suportada ao esquema de índice gerado, independentemente de os seus dados conterem ou não documentos nessas línguas. Durante a ingestão, os documentos são encaminhados para o campo específico do idioma apropriado, com base no idioma detetado.
Os campos de linguagem não utilizados não contêm conteúdo indexado e têm impacto mínimo no armazenamento, mas continuam a fazer parte do esquema do índice e contam para o limite do campo do índice. Considere os campos adicionais ao planear o desenho do índice, o número de campos e os requisitos de armazenamento. Para mais informações, consulte Limites de índice e Estimar e gerir a capacidade de um serviço de pesquisa.
A deteção de idioma é cobrada após a quota gratuita de enriquecimento por IA. Para mais informações, veja Enriquecimentos gratuitos.
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
Quando cria esta fonte de conhecimento, o Pesquisa de IA do Azure gera automaticamente uma fonte 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.
Para qualquer base de conhecimento que especifique uma fonte de SharePoint de conhecimento indexada, certifique-se de definir includeReferenceSourceData para true. Este passo é necessário para puxar a URL do documento de origem para a citação.
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
Para impor permissões ao nível do documento, defina ingestionPermissionOptions ao criar esta fonte de conhecimento e depois inclua o token de acesso do utilizador no pedido de recuperação. Para mais informações, consulte Impor permissões no momento da consulta (pré-visualização).
Para resultados em falta, inesperados ou falhados de uma consulta indexada de permissões do SharePoint, consulte Solucionar problemas de filtragem de permissões do SharePoint.
Imagens incorporadas em documentos Surface
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
Erros conhecidos
A fonte de dados SharePoint gerada e o indexador utilizam o mesmo comportamento de validação e autenticação do Microsoft Entra que os indexadores SharePoint diretamente configurados. Para falhas relacionadas com o inquilino, consulte o estado e o histórico de execução do indexador gerado e, em seguida, siga os Invalid AAD tenant passos de remediação.