使用推理 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 管理概述页面上。
- 在 Azure 门户上,转到资源组并选择 API 管理 资源。
- 在 API 管理资源上,转到 API > API > 推理 > v1。 您应该会看到财务文档分析 ASK API。
- 选择 测试 > 后 ASK。
为您创建的应用程序注册 请求访问令牌 。
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。您应该会收到类似于以下 HTTP 消息的回复:
c. 要测试 API,请将
query
值更改为文本字符串,该字符串可能会导致基于摄取文档内容的回复,然后选择 Send。测试直接从代码进行 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())