在本文中,你將學習如何在 Azure API 管理 中設定語言模型 API 請求與回應的 Azure 監視器 日誌記錄。
API 管理管理員可利用語言模型的 API 請求與回應日誌,以及 API 管理閘道日誌,適用於以下情境:
計算用量以計費。 根據每個應用程式或 API 消費者消耗的代幣數量(例如依訂閱 ID 或 IP 位址分段)計算計費使用指標。
檢查訊息。 檢查並分析提示與完成事項,以協助除錯、稽核及模型評估。
深入瞭解:
先決條件
- Azure API 管理 執行個體。
- 與 Azure API 管理整合的受控語言模型對話補全 API。 例如, 匯入 Microsoft Foundry API。
- 存取 Azure Log Analytics 工作區。
- 在 API 管理 中設定診斷設定和存取記錄的適當許可權。
啟用語言模型 API 日誌的診斷設定
啟用診斷設定,以記錄閘道針對大型語言模型 REST API 處理的要求。 對於每個請求,Azure 監視器 會接收:
關於代幣使用的資料,例如提示代幣、完成代幣和總代幣
所用型號名稱
選用的要求和回應訊息:提示詞和補全
Azure 監視器 會將大型請求和回應拆分成多個日誌條目,並附有序列號,方便日後重建。
備註
API 管理從語言模型 API 的回應中擷取令牌使用資料。 在缺少令牌使用情況(例如資料串流中斷或連線終止)時,令牌使用可能未被記錄或不準確。
請依照以下步驟啟用診斷設定,將語言模型 API 日誌導向 Log Analytics 工作區。 如需詳細資訊,請參閱 啟用 Azure 監視器記錄的診斷設定。
在 Azure 入口網站中,流覽至您的 Azure API 管理 執行個體。
在左側功能表的 [監視] 底下,選取 [診斷設定>] + [新增診斷設定]。
設定此設定,將 AI 閘道記錄傳送至 Log Analytics 工作區:
- 在 [記錄] 底下,選取 [與生成式 AI 閘道相關的記錄]。
- 在 [目的地詳細資料] 底下,選取 [傳送至 Log Analytics 工作區]。
檢閱或設定其他設定,並視需要進行變更。
選取 [儲存]。
啟用語言模型 API 的請求或回應記錄
您可以啟用所有 API 的診斷設定,或自訂特定 API 的記錄。 請依照以下步驟記錄 API 的語言模型請求與回應訊息。 如需詳細資訊,請參閱 修改 API 記錄設定。
- 在 API 管理實例的左側選單中,選擇 APIS>API, 然後選擇 API 名稱。
- 從上方欄選擇 設定 。
- 往下滑到 Diagnostic Logs 區塊,選擇 Azure 監視器。
- 在 記錄 LLM 訊息中,選取 已啟用。
- 選取 [記錄提示] ,然後輸入大小(以位元組為單位),例如 32768。
- 選取 [記錄完成] ,然後輸入大小(以位元組為單位),例如 32768。
- 檢查其他設定並視需要進行變更。 選取 [儲存]。
備註
啟用蒐集功能後,語言模型的請求或回應訊息可以在同一項目中傳送,大小可達 32 KB。 大於 32 KB 的訊息會被拆分並登錄為 32 KB 的區塊,並附有序號以便日後重建。 要求訊息和回應訊息各不能超過 2 MB。
檢閱語言模型 API 的分析活頁簿
以 Azure 監視器為基礎的分析儀表板,會使用 Log Analytics 工作區中彙總的資料,提供語言模型 API 使用量和詞元耗用量的深入解析。 欲了解更多資訊,請參閱 Get API analytics in Azure API 管理。
- 在 API 管理 實例的左側功能表中,選取 [監視>分析]。
- 選取 [語言模型] 索引標籤。
- 檢視語言模型 API 代幣消費與請求的指標與視覺化,涵蓋選定 時間範圍。
檢閱 Azure 監視器記錄以取得要求和回應
請參閱 ApiManagementGatewayLlmLog 日誌,了解語言模型請求與回應的詳細資訊,包括令牌消耗、模型部署情況,以及特定時間範圍內的其他細節。
請求與回應,包括大型請求與回應的分塊訊息,會分別出現在獨立的日誌條目中,你可以透過欄位 CorrelationId 來關聯。
基於稽核目的,請使用類似下列查詢的 Kusto 查詢,將每個要求和回應聯結在單一記錄中。 調整查詢以包含您要追蹤的欄位。
ApiManagementGatewayLlmLog
| extend RequestArray = parse_json(RequestMessages)
| extend ResponseArray = parse_json(ResponseMessages)
| mv-expand RequestArray
| mv-expand ResponseArray
| project
CorrelationId,
RequestContent = tostring(RequestArray.content),
ResponseContent = tostring(ResponseArray.content)
| summarize
Input = strcat_array(make_list(RequestContent), " . "),
Output = strcat_array(make_list(ResponseContent), " . ")
by CorrelationId
| where isnotempty(Input) and isnotempty(Output)
上傳資料至 Microsoft Foundry 進行模型評估
你可以將語言模型日誌資料匯出為資料集,用於 Microsoft Foundry 中的模型評估。 透過模型評估,您可以使用內建或自訂評估指標,根據測試模型或資料集評估生成式 AI 模型和應用程式的效能。
使用語言模型日誌來作為模型評估的資料集:
- 將語言模型的請求與回應訊息合併成每一次互動的單一記錄,如 前一節所示。 包括您要用於模型評估的欄位。
- 將資料匯出為 CSV 格式,該格式與 Microsoft Foundry 相容。
- 在 Microsoft Foundry 入口網站中,進行新評估以便上傳和評估資料集。
欲了解如何在 Microsoft Foundry 中建立並執行模型評估,請參見 Run evaluations from the Microsoft Foundry portal。
相關內容
- 監視 APIM (部分內容可能是機器或 AI 翻譯)
- APIM 監視資料參考 (部分內容可能是機器或 AI 翻譯)
- 教學課程:監視已發佈的 API