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.
O Copilot Studio inclui fontes de conhecimento integradas, como o SharePoint e o Dataverse. Muitas organizações também utilizam seus próprios pontos de extremidade de pesquisa, como APIs personalizadas, sistemas de busca empresarial existentes ou Pesquisa de IA do Azure , mantendo controle total sobre a consulta que é executada.
O Copilot Studio oferece suporte a esse cenário com o gatilho OnKnowledgeRequested. Qualquer tópico que utilize esse gatilho atua como uma fonte de conhecimento personalizada e contribui com resultados para respostas generativas.
Este artigo explica como criar e integrar fontes de conhecimento personalizadas no Copilot Studio utilizando o gatilho OnKnowledgeRequested. Você aprende como o Copilot Studio reescreve consultas, como conectar à sua própria API de busca, como formatar resultados para respostas generativas e melhores práticas ao trabalhar com conhecimento personalizado.
O gatilho OnKnowledgeRequested
Use o gatilho OnKnowledgeRequested nessas duas situações:
- Quando o orquestrador determina que a recuperação de conhecimento é necessária para responder a uma consulta do usuário.
- Quando um nó de resposta generativa é explicitamente acionado na conversa.
Importante
Você só pode configurar esse gatilho na exibição de código usando YAML. Não há suporte para designer visual.
Os tópicos que utilizam OnKnowledgeRequested têm acesso a variáveis do sistema que não estão disponíveis em tópicos regulares:
-
System.SearchQuery: uma versão reescrita sensível ao contexto da consulta do usuário, otimizada para pesquisa semântica. -
System.KeywordSearchQuery: uma consulta reescrita otimizada para mecanismos de busca por palavras-chave. -
System.SearchResults: onde o tópico armazena trechos de conhecimento formatados.
O Copilot Studio reescreve as consultas de forma inteligente usando o histórico de conversas, garantindo que ele preserve o contexto de várias rodadas.
Criando uma fonte de conhecimento personalizada
Para criar uma fonte de conhecimento personalizada, você cria um tópico com o gatilho OnKnowledgeRequested que chama sua API de busca e adapta os resultados ao formato exigido pelo Copilot Studio.
Etapa 1: criar o gatilho
Criar o novo tópico no Copilot Studio, alterne para exibição do código e defina o gatilho OnKnowledgeRequested.
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
# Actions go here
inputType: {}
outputType: {}
Essa estrutura informa ao Copilot Studio que este tópico é responsável por atender solicitações de conhecimento.
Etapa 2: adicionar uma solicitação HTTP
Adicione uma ação HTTP que chame seu ponto de extremidade de pesquisa.
Exemplo:
- kind: HttpRequestAction
id: searchRequest
url: = "https://search-api.contoso.com/search?q=" & System.KeywordSearchQuery
response: Topic.searchResults
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
Concatene System.KeywordSearchQuery à sua URL base porque o Copilot Studio reescreve automaticamente a consulta do usuário com o contexto da conversa antes de fazer a solicitação de pesquisa. Essa etapa é importante para manter o contexto em conversas com várias rodadas.
Dica
Em vez de uma solicitação HTTP bruta, você pode usar qualquer método que obtenha resultados de um ponto de extremidade de pesquisa, incluindo conectores personalizados, conectores integrados como a Pesquisa de IA do Azure ou fluxos de agente.
Exemplo de reescrita de consultas
- Consulta do usuário 1: “Qual é o nosso período de retenção de dados oficial para registros de clientes?”
- Consulta de acompanhamento: “Isso muda para informações financeiras?”
- Consulta de acompanhamento: “E há exceções?”
A consulta reescrita se torna: “exceções à política de retenção de dados, exceções de retenção de dados de clientes e de informações financeiras, isenções regulatórias, tratamento de exceções, diretrizes de conformidade”
Observe que a consulta reescrita:
- Resolve "lá" a política de retenção de dados
- Extrai o contexto das interações anteriores: dados do cliente + dados financeiros
- Inclui termos de política empresarial: exceções, isenções, aspectos regulatórios, diretrizes
Etapa 3: transformar resultados
Uma fonte de conhecimento personalizada deve fornecer resultados no formato esperado pelo Copilot Studio. Este formato usa:
- Conteúdo: trecho ou fragmento.
- ContentLocation (opcional): URL.
- Título (opcional): Título do resultado.
Para definir a estrutura da resposta HTTP, configure o esquema de resposta na interface do usuário do Copilot Studio.
- Selecione Dados de exemplo - De para o tipo de dados de resposta.
- Selecione Obter esquema de um JSON de exemplo.
- Cole o conteúdo JSON de exemplo para gerar automaticamente o esquema.
Esse processo gera o esquema de resposta no seu arquivo YAML.
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
Em seguida, adapte a resposta da sua API para este formato. Atribua os dados transformados a System.SearchResults.
Transformação de exemplo
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
- kind: HttpRequestAction
id: searchRequest
url: ="https://search-api.contoso.com/search?q=" & System.KeywordSearchQuery
response: Topic.searchResults
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
- kind: SetVariable
id: setSearchResults
variable: System.SearchResults
value: |-
=ForAll(Topic.searchResults.results,
{
Content: snippet,
ContentLocation: url,
Title: title
})
inputType: {}
outputType: {}
A ação SetVariable realiza ambas as operações:
- A função
ForAlltransforma cada resultado de pesquisa, mapeandosnippetparaContent,urlparaContentLocationetitleparaTitle. - A tabela transformada é atribuída a
System.SearchResults, que é a variável que o Copilot Studio usa para gerar respostas.
Considerações
Tenha estas principais considerações em mente ao criar fontes de conhecimento personalizadas.
Limite de resultados
O Copilot Studio utiliza até 15 trechos de System.SearchResults para gerar uma resposta. Se sua API retornar mais resultados, considere:
- Implementar pontuação de relevância para devolver os melhores resultados primeiro.
- Limitando a resposta da sua API a 15 resultados.
- Ordenando os resultados por relevância antes da transformação.
Vários tópicos de conhecimento personalizado
Você pode criar vários tópicos usando OnKnowledgeRequested, e cada tópico pode consultar diferentes sistemas de back-end. O Copilot Studio invoca todos eles simultaneamente quando precisa de conhecimento. Essa abordagem permite consultar diferentes pontos de extremidade de pesquisa ou implementar estratégias de fallback.
Aviso
O limite de resultados se aplica ao conjunto de todos os tópicos de conhecimento. Se o Tópico A retornar 10 resultados e o Tópico B retornar 8, apenas os 15 melhores resultados combinados serão usados.
Recomendações
- Ordene ou pontue os resultados antes de retorná-los.
- Mantenha os esquemas de resposta consistentes.
- Use nomes e descrições claras para os tópicos. Essa prática é útil quando grandes conjuntos de resultados exigem filtragem de relevância.