mirror of
https://git.mirrors.martin98.com/https://github.com/mendableai/firecrawl
synced 2025-08-03 06:30:37 +08:00
fix(llmExtract): cost calculation
This commit is contained in:
parent
0d813b628b
commit
129b10e478
@ -259,23 +259,6 @@ export async function generateCompletions({
|
|||||||
throw new Error("document.markdown is undefined -- this is unexpected");
|
throw new Error("document.markdown is undefined -- this is unexpected");
|
||||||
}
|
}
|
||||||
|
|
||||||
const { maxInputTokens, maxOutputTokens } = getModelLimits(
|
|
||||||
currentModel.modelId,
|
|
||||||
);
|
|
||||||
// Calculate 80% of max input tokens (for content)
|
|
||||||
const maxTokensSafe = Math.floor(maxInputTokens * 0.8);
|
|
||||||
|
|
||||||
// Use the new trimming function
|
|
||||||
const {
|
|
||||||
text: trimmedMarkdown,
|
|
||||||
numTokens,
|
|
||||||
warning: trimWarning,
|
|
||||||
} = trimToTokenLimit(markdown, maxTokensSafe, model.modelId, previousWarning);
|
|
||||||
|
|
||||||
// WE USE BIG MODELS NOW
|
|
||||||
// markdown = trimmedMarkdown;
|
|
||||||
// warning = trimWarning;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const prompt =
|
const prompt =
|
||||||
options.prompt !== undefined
|
options.prompt !== undefined
|
||||||
@ -300,16 +283,16 @@ export async function generateCompletions({
|
|||||||
return {
|
return {
|
||||||
extract,
|
extract,
|
||||||
warning,
|
warning,
|
||||||
numTokens,
|
numTokens: result.usage?.promptTokens ?? 0,
|
||||||
totalUsage: {
|
totalUsage: {
|
||||||
promptTokens: numTokens,
|
promptTokens: result.usage?.promptTokens ?? 0,
|
||||||
completionTokens: result.usage?.completionTokens ?? 0,
|
completionTokens: result.usage?.completionTokens ?? 0,
|
||||||
totalTokens: numTokens + (result.usage?.completionTokens ?? 0),
|
totalTokens: result.usage?.promptTokens ?? 0 + (result.usage?.completionTokens ?? 0),
|
||||||
},
|
},
|
||||||
model: currentModel.modelId,
|
model: currentModel.modelId,
|
||||||
cost: calculateCost(
|
cost: calculateCost(
|
||||||
currentModel.modelId,
|
currentModel.modelId,
|
||||||
numTokens,
|
result.usage?.promptTokens ?? 0,
|
||||||
result.usage?.completionTokens ?? 0,
|
result.usage?.completionTokens ?? 0,
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
@ -341,16 +324,16 @@ export async function generateCompletions({
|
|||||||
return {
|
return {
|
||||||
extract,
|
extract,
|
||||||
warning,
|
warning,
|
||||||
numTokens,
|
numTokens: result.usage?.promptTokens ?? 0,
|
||||||
totalUsage: {
|
totalUsage: {
|
||||||
promptTokens: numTokens,
|
promptTokens: result.usage?.promptTokens ?? 0,
|
||||||
completionTokens: result.usage?.completionTokens ?? 0,
|
completionTokens: result.usage?.completionTokens ?? 0,
|
||||||
totalTokens: numTokens + (result.usage?.completionTokens ?? 0),
|
totalTokens: result.usage?.promptTokens ?? 0 + (result.usage?.completionTokens ?? 0),
|
||||||
},
|
},
|
||||||
model: currentModel.modelId,
|
model: currentModel.modelId,
|
||||||
cost: calculateCost(
|
cost: calculateCost(
|
||||||
currentModel.modelId,
|
currentModel.modelId,
|
||||||
numTokens,
|
result.usage?.promptTokens ?? 0,
|
||||||
result.usage?.completionTokens ?? 0,
|
result.usage?.completionTokens ?? 0,
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
@ -541,13 +524,13 @@ export async function generateCompletions({
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Since generateObject doesn't provide token usage, we'll estimate it
|
// Since generateObject doesn't provide token usage, we'll estimate it
|
||||||
const promptTokens = numTokens;
|
const promptTokens = result.usage?.promptTokens ?? 0;
|
||||||
const completionTokens = result?.usage?.completionTokens ?? 0;
|
const completionTokens = result.usage?.completionTokens ?? 0;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
extract,
|
extract,
|
||||||
warning,
|
warning,
|
||||||
numTokens,
|
numTokens: promptTokens,
|
||||||
totalUsage: {
|
totalUsage: {
|
||||||
promptTokens,
|
promptTokens,
|
||||||
completionTokens,
|
completionTokens,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user