feat(ai): surfacea Gemini token-usage

This commit is contained in:
Sven (AAMOS AI)
2026-08-12 20:59:49 +07:00
parent 14a5243bb2
commit f11cbce114
2 changed files with 10 additions and 3 deletions
+1
View File
@@ -36,6 +36,7 @@ export interface AamosResult<T extends AamosTaskType> {
costUsd?: number | undefined;
inputTokens?: number | undefined;
outputTokens?: number | undefined;
totalTokens?: number | undefined;
}
/**
+9 -3
View File
@@ -376,7 +376,7 @@ export class GeminiAamosClient implements AamosClient {
const geminiBody = (await res.json()) as {
candidates?: Array<{ content?: { parts?: Array<{ text?: string }> } }>;
usageMetadata?: { promptTokenCount?: number; candidatesTokenCount?: number };
usageMetadata?: { promptTokenCount?: number; candidatesTokenCount?: number; totalTokenCount?: number };
};
const text = geminiBody.candidates?.[0]?.content?.parts?.[0]?.text ?? "";
@@ -394,6 +394,7 @@ export class GeminiAamosClient implements AamosClient {
const inputTokens = geminiBody.usageMetadata?.promptTokenCount ?? 0;
const outputTokens = geminiBody.usageMetadata?.candidatesTokenCount ?? 0;
const totalTokens = geminiBody.usageMetadata?.totalTokenCount ?? 0;
const costUsd = this.estimateCostUsd(inputTokens, outputTokens);
await this.recordSpend(costUsd);
@@ -409,6 +410,7 @@ export class GeminiAamosClient implements AamosClient {
costUsd,
inputTokens,
outputTokens,
totalTokens,
};
}
@@ -471,7 +473,7 @@ export class GeminiAamosClient implements AamosClient {
const geminiBody = (await res.json()) as {
candidates?: Array<{ content?: { parts?: Array<{ text?: string }> } }>;
usageMetadata?: { promptTokenCount?: number; candidatesTokenCount?: number };
usageMetadata?: { promptTokenCount?: number; candidatesTokenCount?: number; totalTokenCount?: number };
};
const text = geminiBody.candidates?.[0]?.content?.parts?.[0]?.text ?? "";
@@ -497,6 +499,7 @@ export class GeminiAamosClient implements AamosClient {
const inputTokens = geminiBody.usageMetadata?.promptTokenCount ?? 0;
const outputTokens = geminiBody.usageMetadata?.candidatesTokenCount ?? 0;
const totalTokens = geminiBody.usageMetadata?.totalTokenCount ?? 0;
const costUsd = this.estimateCostUsd(inputTokens, outputTokens);
await this.recordSpend(costUsd);
@@ -512,6 +515,7 @@ export class GeminiAamosClient implements AamosClient {
costUsd,
inputTokens,
outputTokens,
totalTokens,
};
}
@@ -642,7 +646,7 @@ export class GeminiAamosClient implements AamosClient {
const geminiBody = (await res.json()) as {
candidates?: Array<{ content?: { parts?: Array<{ text?: string }> } }>;
usageMetadata?: { promptTokenCount?: number; candidatesTokenCount?: number };
usageMetadata?: { promptTokenCount?: number; candidatesTokenCount?: number; totalTokenCount?: number };
};
const text = geminiBody.candidates?.[0]?.content?.parts?.[0]?.text ?? "";
@@ -666,6 +670,7 @@ export class GeminiAamosClient implements AamosClient {
const inputTokens = geminiBody.usageMetadata?.promptTokenCount ?? 0;
const outputTokens = geminiBody.usageMetadata?.candidatesTokenCount ?? 0;
const totalTokens = geminiBody.usageMetadata?.totalTokenCount ?? 0;
const costUsd = this.estimateCostUsd(inputTokens, outputTokens);
await this.recordSpend(costUsd);
@@ -688,6 +693,7 @@ export class GeminiAamosClient implements AamosClient {
costUsd,
inputTokens,
outputTokens,
totalTokens,
};
}