From 733a79261064754f3f9e67708757c8064a9e009c Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Thu, 7 Aug 2025 21:53:37 +0700 Subject: [PATCH] ai: add usage metadata for openai and mistral --- .../quickshell/ii/services/ai/MistralApiStrategy.qml | 11 +++++++++++ .../quickshell/ii/services/ai/OpenAiApiStrategy.qml | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/.config/quickshell/ii/services/ai/MistralApiStrategy.qml b/.config/quickshell/ii/services/ai/MistralApiStrategy.qml index dfcb950eb..1ae7fc13f 100644 --- a/.config/quickshell/ii/services/ai/MistralApiStrategy.qml +++ b/.config/quickshell/ii/services/ai/MistralApiStrategy.qml @@ -100,6 +100,17 @@ ApiStrategy { message.content += newContent; message.rawContent += newContent; + // Usage metadata + if (dataJson.usage) { + return { + tokenUsage: { + input: dataJson.usage.prompt_tokens ?? -1, + output: dataJson.usage.completion_tokens ?? -1, + total: dataJson.usage.total_tokens ?? -1 + } + }; + } + if (`dataJson`.done) { return { finished: true }; } diff --git a/.config/quickshell/ii/services/ai/OpenAiApiStrategy.qml b/.config/quickshell/ii/services/ai/OpenAiApiStrategy.qml index a5792ace7..85d5e0463 100644 --- a/.config/quickshell/ii/services/ai/OpenAiApiStrategy.qml +++ b/.config/quickshell/ii/services/ai/OpenAiApiStrategy.qml @@ -46,6 +46,7 @@ ApiStrategy { // Real stuff try { const dataJson = JSON.parse(cleanData); + console.log(JSON.stringify(dataJson, null, 2)); let newContent = ""; const responseContent = dataJson.choices[0]?.delta?.content || dataJson.message?.content; @@ -72,6 +73,17 @@ ApiStrategy { message.content += newContent; message.rawContent += newContent; + // Usage metadata + if (dataJson.usage) { + return { + tokenUsage: { + input: dataJson.usage.prompt_tokens ?? -1, + output: dataJson.usage.completion_tokens ?? -1, + total: dataJson.usage.total_tokens ?? -1 + } + }; + } + if (dataJson.done) { return { finished: true }; }