diff --git a/cost.ts b/cost.ts index 4a509ba..912ffe5 100644 --- a/cost.ts +++ b/cost.ts @@ -166,7 +166,7 @@ export function getCostConfig(model: string): CostConfig { * Check Helicone costs with operator matching */ const exactMatch = heliconeCosts.get(normalizedModel); - if (exactMatch && exactMatch.operator === "equals") { + if (exactMatch?.operator === "equals") { return exactMatch.config; } @@ -229,5 +229,5 @@ export function calculateCost( (completion_tokens / 1_000_000) * cost.output; const total = inputCost + cachedCost + outputCost; - return total > 0 ? Number(total.toFixed(6)) : null; + return total > 0 ? Number.parseFloat(total.toFixed(6)) : null; } diff --git a/dashboard/app/api/metrics/route.ts b/dashboard/app/api/metrics/route.ts index d14b774..d5e552d 100644 --- a/dashboard/app/api/metrics/route.ts +++ b/dashboard/app/api/metrics/route.ts @@ -97,10 +97,10 @@ export async function GET(request: NextRequest) { summary: { totalRequests: Number.parseInt(summary.total_requests ?? '0'), totalTokens: Number.parseInt(summary.total_tokens_used ?? '0'), - totalCost: parseFloat(summary.total_cost ?? '0'), - avgResponseTime: parseFloat(summary.avg_response_time ?? '0'), - uniqueModels: Number.parseInt(summary), - uniqueClients: parseInt(summary.unique_clients ?? '0'), + totalCost: Number.parseFloat(summary.total_cost ?? '0'), + avgResponseTime: Number.parseFloat(summary.avg_response_time ?? '0'), + uniqueModels: Number.parseInt(summary.unique_models ?? '0'), + uniqueClients: Number.parseInt(summary.unique_clients ?? '0'), }, recentRequests, modelBreakdown, diff --git a/dashboard/components/ModelBreakdown.tsx b/dashboard/components/ModelBreakdown.tsx index 9de3074..bdb7a8c 100644 --- a/dashboard/components/ModelBreakdown.tsx +++ b/dashboard/components/ModelBreakdown.tsx @@ -42,8 +42,8 @@ export default function ModelBreakdown({ models }: ModelBreakdownProps) {