From 9cd48d7f734a874419cfa4c41f6c06a45feb275c Mon Sep 17 00:00:00 2001 From: Nicolas Date: Fri, 17 Jan 2025 23:47:22 -0300 Subject: [PATCH] Nick: --- apps/api/src/lib/extract/extraction-service.ts | 1 + apps/api/src/lib/extract/usage/llm-cost.ts | 2 +- apps/api/src/services/logging/log_job.ts | 2 ++ apps/api/src/types.ts | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/api/src/lib/extract/extraction-service.ts b/apps/api/src/lib/extract/extraction-service.ts index 0933d347..1835e325 100644 --- a/apps/api/src/lib/extract/extraction-service.ts +++ b/apps/api/src/lib/extract/extraction-service.ts @@ -704,6 +704,7 @@ export async function performExtraction( scrapeOptions: request, origin: request.origin ?? "api", num_tokens: totalTokensUsed, + tokens_billed: tokensToBill, }).then(() => { updateExtract(extractId, { status: "completed", diff --git a/apps/api/src/lib/extract/usage/llm-cost.ts b/apps/api/src/lib/extract/usage/llm-cost.ts index 6452a078..7279d4be 100644 --- a/apps/api/src/lib/extract/usage/llm-cost.ts +++ b/apps/api/src/lib/extract/usage/llm-cost.ts @@ -12,7 +12,7 @@ const tokenPerCharacter = 4; const baseTokenCost = 200; export function calculateFinalResultCost(data: any): number { - return JSON.stringify(data).length / tokenPerCharacter + baseTokenCost; + return Math.floor((JSON.stringify(data).length / tokenPerCharacter) + baseTokenCost); } export function estimateTotalCost(tokenUsage: TokenUsage[]): number { diff --git a/apps/api/src/services/logging/log_job.ts b/apps/api/src/services/logging/log_job.ts index 2ee07292..ddd9b234 100644 --- a/apps/api/src/services/logging/log_job.ts +++ b/apps/api/src/services/logging/log_job.ts @@ -59,6 +59,7 @@ export async function logJob(job: FirecrawlJob, force: boolean = false) { num_tokens: job.num_tokens, retry: !!job.retry, crawl_id: job.crawl_id, + tokens_billed: job.tokens_billed, }; if (force) { @@ -128,6 +129,7 @@ export async function logJob(job: FirecrawlJob, force: boolean = false) { origin: job.origin, num_tokens: job.num_tokens, retry: job.retry, + tokens_billed: job.tokens_billed, }, }; if (job.mode !== "single_urls") { diff --git a/apps/api/src/types.ts b/apps/api/src/types.ts index 102f4929..d1e163ef 100644 --- a/apps/api/src/types.ts +++ b/apps/api/src/types.ts @@ -87,6 +87,7 @@ export interface FirecrawlJob { num_tokens?: number; retry?: boolean; crawl_id?: string; + tokens_billed?: number; } export interface FirecrawlScrapeResponse {