|
@@ -767,6 +767,12 @@
|
|
|
{
|
|
|
model: model.id,
|
|
|
stream: true,
|
|
|
+ stream_options:
|
|
|
+ model.info?.meta?.capabilities?.usage ?? false
|
|
|
+ ? {
|
|
|
+ include_usage: true
|
|
|
+ }
|
|
|
+ : undefined,
|
|
|
messages: [
|
|
|
$settings.system || (responseMessage?.userContext ?? null)
|
|
|
? {
|
|
@@ -835,9 +841,10 @@
|
|
|
|
|
|
if (res && res.ok && res.body) {
|
|
|
const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
|
|
|
+ let lastUsage = null;
|
|
|
|
|
|
for await (const update of textStream) {
|
|
|
- const { value, done, citations, error } = update;
|
|
|
+ const { value, done, citations, error, usage } = update;
|
|
|
if (error) {
|
|
|
await handleOpenAIError(error, null, model, responseMessage);
|
|
|
break;
|
|
@@ -853,6 +860,10 @@
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ if (usage) {
|
|
|
+ lastUsage = usage;
|
|
|
+ }
|
|
|
+
|
|
|
if (citations) {
|
|
|
responseMessage.citations = citations;
|
|
|
continue;
|
|
@@ -886,6 +897,10 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ if (lastUsage) {
|
|
|
+ responseMessage.info = { ...lastUsage, openai: true };
|
|
|
+ }
|
|
|
+
|
|
|
if ($chatId == _chatId) {
|
|
|
if ($settings.saveChatHistory ?? true) {
|
|
|
chat = await updateChatById(localStorage.token, _chatId, {
|