Compartilhar via


Consultar documentos ingeridos usando a API de Inferência

Importante

Este é um recurso em versão preliminar. Estas informações estão relacionadas a um recurso de pré-lançamento que pode ser substancialmente modificado antes de ser lançado. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.

Para consultar o corpus depois que os documentos forem configurados e ingeridos, forneça os seguintes detalhes:

Autenticação

Você precisa adicionar um cabeçalho de autorização à sua solicitação. Além disso, você precisa obter um token para seu aplicativo. Veja o exemplo a seguir para saber como gerar um token no exemplo. 

{'Content-Type': 'application/json', 'Authorization': 'Bearer {token}'}

Pergunte ao nível superior da API

Vá até o grupo de recursos implantado e encontre api_management_name.

https://{api_management_name}.azure-api.net/inference/v1/Ask

Campos de solicitação

A solicitação contém os seguintes campos de nível superior:

Nome do campo Tipo Obrigatório Descrição/Exemplo
consulta corda Sim Exemplo: Quando a Campbell Soup divulgará os resultados?  
 
filter corda Não Uma página da web para aprender sobre filtragem de Azure AI Search. https://learn.microsoft.com/azure/search/search-filters  
 
Mensagem do sistema corda Não Sua mensagem do sistema. Observação: Esta mensagem do sistema substitui nossa mensagem padrão do sistema e pode afetar o desempenho. Não recomendamos usá-lo.  
 

Campos resposta

Nome do campo Tipo Descrição
mensagem corda O resultado da consulta
citaçõesResultado Objeto CitationsResult Uma citação dentro da mensagem que aponta para uma citação específica de um arquivo associado ao Assistente ou à mensagem.  

Objeto CitationsResult

Nome do campo Tipo Descrição
citações Dicionário. Chave: string, valor: objeto de citação A chave representa o documento, por exemplo, doc1.  
intenção Matriz de Strings Intenções reconhecidas.   

Objeto de citação

Nome do campo Tipo Descrição
contente Lista de pedaços O conteúdo do bloco retornado
título corda O título do documento
URL Cadeia de caracteres A URL para o documento
Nome do arquivo Cadeia de caracteres O nome do arquivo
Número da página Inteiro O número da página do pedaço
chunkId Cadeia de caracteres O ID do pedaço

Possíveis filtros

Nome do campo Tipo Comentários
Caminho do arquivo Cadeia de caracteres filepath eq 'morningstar ford report.pdf'  
número_da_página Int32   
contém_imagem booliano   
título Cadeia de caracteres   
Metadados do documento/autor Cadeia de caracteres   
documento_metadados/resumo Cadeia de caracteres   
Metadados do documento/palavras-chave Cadeia de caracteres   
metadados_do_documento/data_de_criação DataHoraDeslocamento Use este campo para filtrar por determinados critérios, por exemplo, os últimos três meses: document_metadata/creation_date ge 2023-12-19T00:00:00Z
metadados_do_documento/título Cadeia de caracteres   
metadados_do_documento/metadados_adicionais/trimestre_financeiro Cadeia de caracteres   
metadados_do_documento/metadados_adicionais/ano_financeiro Cadeia de caracteres   
metadados_do_documento/metadados_adicionais/organização Cadeia de caracteres   

Teste a API

Você pode testar a API de inferência usando o serviço de geranciamento de API Azure no portal Azure. Você precisa usar o ponto de extremidade da API no seu código para consultar os dados. As etapas a seguir explicam todo o processo de teste da API:

Observação

O URL do API Management Gateway está disponível na página Visão geral do API Management.

  1. No portal Azure, acesse seu grupo de recursos e Select o recurso Gerenciamento de API .

Captura de tela da página mostrando os detalhes do grupo de recursos

  1. No recurso Gerenciamento de API, acesse APIs > APIs > Inferência > v1. Você deverá ver a API ASK de análise de documentos financeiros.

Captura de tela da tela de geranciamento de API

  1. Select Teste > Publique PERGUNTA.

Captura de tela da tela de geranciamento de API com o método POST destacado

  1. Solicite um token de acesso para o registro do aplicativo que você criou.

    a. Use a CLI Azure e efetue login no locatário que inclui a implantação, como um usuário com permissões para chamar a API.

    Execute o seguinte comando: az account get-access-token --resource <app-reg cli id>

    Here, app-reg cli-id significa o ID do aplicativo (cliente).

    Você deve receber um resposta semelhante à seguinte saída de comando:

    { 
     "accessToken": "<JWT-Token>" 
     "expiresOn": "2024-11-11 16:13:11.000000", 
     "expires_on": 1731334391, 
     "subscription": "<subscription_id>", 
     "tenant": "<tenant_id>" 
     "tokenType": "Bearer" 
    }
    

    b. Para acessar a API, inclua o token JWT na solicitação. Copie o token JWT do comando resposta e adicione-o como cabeçalho de autorização na solicitação. az O valor do cabeçalho deve ser Bearer <JWT-Token>. Altere o query valor para Hi e Select Enviar.

    Captura de tela da tela de geranciamento de API com corpo da solicitação destacado

    Você deve receber uma mensagem resposta semelhante à seguinte mensagem HTTP:

    Captura de tela do HTTP resposta para a solicitação enviada

    c. Para testar a API, altere o query valor para uma sequência de texto que pode levar a um resposta com base no conteúdo dos documentos ingeridos e Select Enviar.

  2. Teste o processo de fazer a chamada da API diretamente do seu código. O código Python a seguir trecho mostra como você pode usar a API no seu código.

from azure.identity import DefaultAzureCredential 
import requests 
# Get Credentials 
credentials = DefaultAzureCredential() 
# Get the access token 
access_token = credentials.get_token("<App Registration Scope>",tenant_id="<your tenant id>") 
# Define the URL, headers, and payload 
url = "https://<api managment url>/inference/v1/Ask" 
headers = { 
    "Content-Type": "application/json", 
    "Authorization": f"Bearer {access_token.token}" 
} 
payload = { 
    "query": "<your query>" 
} 
# Execute the POST request 
response = requests.post(url, headers=headers, json=payload) 
# Print the response 
print(response.status_code) 
print(response.json())