(usage: any, modelInfo?: ModelInfo)
| 103 | } |
| 104 | |
| 105 | protected processUsageMetrics(usage: any, modelInfo?: ModelInfo): ApiStreamUsageChunk { |
| 106 | const requestyUsage = usage as RequestyUsage |
| 107 | const inputTokens = requestyUsage?.prompt_tokens || 0 |
| 108 | const outputTokens = requestyUsage?.completion_tokens || 0 |
| 109 | const cacheWriteTokens = requestyUsage?.prompt_tokens_details?.caching_tokens || 0 |
| 110 | const cacheReadTokens = requestyUsage?.prompt_tokens_details?.cached_tokens || 0 |
| 111 | const { totalCost } = modelInfo |
| 112 | ? calculateApiCostOpenAI(modelInfo, inputTokens, outputTokens, cacheWriteTokens, cacheReadTokens) |
| 113 | : { totalCost: 0 } |
| 114 | |
| 115 | return { |
| 116 | type: "usage", |
| 117 | inputTokens: inputTokens, |
| 118 | outputTokens: outputTokens, |
| 119 | cacheWriteTokens: cacheWriteTokens, |
| 120 | cacheReadTokens: cacheReadTokens, |
| 121 | totalCost: totalCost, |
| 122 | } |
| 123 | } |
| 124 | |
| 125 | override async *createMessage( |
| 126 | systemPrompt: string, |
no test coverage detected