使用推理 API 查询引入的文档

重要提示

这是一项预览功能。 此信息涉及预发布功能,其有可能在发布之前进行大幅修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。

要在配置和摄取文档后查询语料库,请提供以下详细信息:

身份验证

您需要将 authorization 标头添加到您的请求中。 此外,您需要为您的应用程序获取令牌。 请参阅以下示例,了解如何在示例中生成令牌。 

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

询问 API 顶级

转到已部署的资源组,然后找到 api_management_name

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

请求字段

该请求包含以下顶级字段:

字段名称 类型 必填 描述/示例
查询 字符串 示例:Campbell Soup 何时发布收益?  
 
filter 字符串 了解如何筛选 Azure AI Search 的网页。 https://learn.microsoft.com/azure/search/search-filters  
 
systemMessage 系统 字符串 您的系统消息。 注意: 此系统消息将替换我们的标准系统消息,可能会影响性能。 我们不建议使用它。  
 

回复字段

字段名称 类型 说明
消息 字符串 查询结果
citationsResult CitationsResult 对象 消息中的引文,指向与助手或消息关联的文件中的特定引文。  

CitationsResult 对象

字段名称 类型 说明
引文 字典。 键:string,值:Citation 对象 Key 表示文档,例如 doc1。  
意图 字符串数组 公认的意图。   

引文对象

字段名称 类型 说明
内容 区块列表 返回的 chunk 内容
标题 字符串 文档的标题
网址 字符串 文档的 URL
文件名 字符串 文件名
页码 Int(整数) 块的页码
chunkId 的 字符串 块 ID

可能的筛选条件

字段名称 类型 评论
FilePath 文件路径 字符串 filepath eq 'morningstar ford report.pdf'  
page_number 国际 32   
contains_image 布尔   
标题 字符串   
document_metadata/作者 字符串   
document_metadata/摘要 字符串   
document_metadata/关键字 字符串   
document_metadata/creation_date DateTimeOffset(日期时间偏移量) 使用此字段可按特定条件进行筛选,例如,过去三个月: document_metadata/creation_date ge 2023-12-19T00:00:00Z
document_metadata/标题 字符串   
document_metadata/additional_metadata/financial_quarter 字符串   
document_metadata/additional_metadata/financial_year 字符串   
document_metadata/additional_metadata/组织 字符串   

测试 API

您可以使用 Azure 门户上的 Azure API 管理服务测试推理 API。 您需要在代码中使用 API 终结点来查询数据。 以下步骤说明了测试 API 的整个过程:

备注

API 管理网关 URL 位于 API 管理概述页面上。

  1. 在 Azure 门户上,转到资源组并选择 API 管理 资源。

显示资源组详细信息的页面的屏幕截图

  1. 在 API 管理资源上,转到 API > API > 推理 > v1。 您应该会看到财务文档分析 ASK API。

API 管理界面的屏幕截图

  1. 选择 测试 > 后 ASK

突出显示 POST 方法的 API 管理屏幕的屏幕截图

  1. 为您创建的应用程序注册 请求访问令牌

    a. 使用 Azure CLI 并以具有调用 API 权限的用户身份登录到包含部署的租户。

    运行以下命令: az account get-access-token --resource <app-reg cli id>

    此处, app-reg cli-id 表示 应用程序(客户端)ID

    您应该会收到类似于以下命令输出的回复:

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

    b. 要访问 API,请在请求中包含 JWT 令牌。 从 az 命令回复中复制 JWT 令牌,并将其添加为请求中的授权标头。 标头的值应为 Bearer <JWT-Token>query 将值更改为 Hi 并选择 Send

    突出显示请求正文的 API 管理屏幕的屏幕截图

    您应该会收到类似于以下 HTTP 消息的回复:

    对已发送请求的 HTTP 回复的屏幕截图

    c. 要测试 API,请将 query 值更改为文本字符串,该字符串可能会导致基于摄取文档内容的回复,然后选择 Send

  2. 测试直接从代码进行 API 调用的过程。 以下 Python 代码片段显示了如何在代码中使用 API。

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())