特定 的 ChatLanguageModel
和 StreamingChatLanguageModel
實現(請參見“可觀測性”列)允許配置 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
對映允許在 onRequest
、onResponse
和 onError
方法之間傳遞資訊。
關注我,緊跟本系列專欄文章,咱們下篇再續!
作者簡介:魔都架構師,多家大廠後端一線研發經驗,在分散式系統設計、資料平臺架構和AI應用開發等領域都有豐富實踐經驗。
各大技術社群頭部專家博主。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。
負責:
- 中央/分銷預訂系統效能最佳化
- 活動&券等營銷中臺建設
- 交易平臺及資料中臺等架構和開發設計
- 車聯網核心平臺-物聯網連線平臺、大資料平臺架構設計及最佳化
- LLM Agent應用開發
- 區塊鏈應用開發
- 大資料開發挖掘經驗
- 推薦系統專案
目前主攻市級軟體專案設計、構建服務全社會的應用系統。
參考:
- 程式設計嚴選網
本文由部落格一文多發平臺 OpenWrite 釋出!