共用方式為


使用推斷 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. 選擇 Test > Post 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-token,並將其添加為請求中的授權標頭。 標頭的值應為 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())