深入理解LLM的可觀測性

公众号-JavaEdge發表於2024-09-24

特定ChatLanguageModelStreamingChatLanguageModel 實現(請參見“可觀測性”列)允許配置 ChatModelListener,用於監聽以下事件:

  • 對 LLM 的請求
  • LLM 的響應
  • 錯誤

這些事件包含的屬性包括OpenTelemetry 生成 AI 語義約定中的描述,例如:

  • 請求:
    • 模型
    • 溫度(Temperature)
    • Top P
    • 最大 Tokens
    • 訊息
    • 工具
  • 響應:
    • ID
    • 模型
    • Token 使用情況
    • 結束原因
    • AI 助手訊息

以下是使用 ChatModelListener 的示例:

ChatModelListener listener = new ChatModelListener() {

    @Override
    public void onRequest(ChatModelRequestContext requestContext) {
        ChatModelRequest request = requestContext.request();
        Map<Object, Object> attributes = requestContext.attributes();
        // 在此處理請求事件
        ...
    }

    @Override
    public void onResponse(ChatModelResponseContext responseContext) {
        ChatModelResponse response = responseContext.response();
        ChatModelRequest request = responseContext.request();
        Map<Object, Object> attributes = responseContext.attributes();
        // 在此處理響應事件
        ...
    }

    @Override
    public void onError(ChatModelErrorContext errorContext) {
        Throwable error = errorContext.error();
        ChatModelRequest request = errorContext.request();
        ChatModelResponse partialResponse = errorContext.partialResponse();
        Map<Object, Object> attributes = errorContext.attributes();
        // 在此處理錯誤事件
        ...
    }
};

ChatLanguageModel model = OpenAiChatModel.builder()
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .modelName(GPT_4_O_MINI)
        .listeners(List.of(listener))
        .build();

model.generate("講一個關於 Java 的笑話");

attributes 對映允許在 onRequestonResponseonError 方法之間傳遞資訊。

關注我,緊跟本系列專欄文章,咱們下篇再續!

作者簡介:魔都架構師,多家大廠後端一線研發經驗,在分散式系統設計、資料平臺架構和AI應用開發等領域都有豐富實踐經驗。

各大技術社群頭部專家博主。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。

負責:

  • 中央/分銷預訂系統效能最佳化
  • 活動&券等營銷中臺建設
  • 交易平臺及資料中臺等架構和開發設計
  • 車聯網核心平臺-物聯網連線平臺、大資料平臺架構設計及最佳化
  • LLM Agent應用開發
  • 區塊鏈應用開發
  • 大資料開發挖掘經驗
  • 推薦系統專案

目前主攻市級軟體專案設計、構建服務全社會的應用系統。

參考:

  • 程式設計嚴選網

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章