use true price
This commit is contained in:
parent
21e2d3d915
commit
07dfef2c32
@ -1,7 +1,7 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { createServerSupabaseClient } from "@/lib/supabase-server";
|
||||
import { prisma } from "@/lib/prisma";
|
||||
import { getPromptContent } from "@/lib/simulator-utils";
|
||||
import { getPromptContent, calculateCost } from "@/lib/simulator-utils";
|
||||
|
||||
export async function POST(
|
||||
request: NextRequest,
|
||||
@ -113,7 +113,7 @@ export async function POST(
|
||||
if (data === '[DONE]') {
|
||||
// 计算最终数据并更新数据库
|
||||
const duration = Date.now() - startTime;
|
||||
const estimatedCost = (inputTokens * 0.001) + (outputTokens * 0.002); // 示例定价
|
||||
const actualCost = calculateCost(inputTokens, outputTokens, run.model);
|
||||
|
||||
await prisma.simulatorRun.update({
|
||||
where: { id },
|
||||
@ -122,7 +122,7 @@ export async function POST(
|
||||
output: fullResponse,
|
||||
inputTokens,
|
||||
outputTokens,
|
||||
totalCost: estimatedCost,
|
||||
totalCost: actualCost,
|
||||
duration,
|
||||
completedAt: new Date(),
|
||||
},
|
||||
|
@ -41,4 +41,21 @@ export function isPromptContentModified(run: SimulatorRun): boolean {
|
||||
*/
|
||||
export function getOriginalPromptContent(run: Pick<SimulatorRun, 'prompt' | 'promptVersion'>): string {
|
||||
return run.promptVersion?.content || run.prompt.content
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算实际费用基于模型的定价
|
||||
*/
|
||||
export function calculateCost(inputTokens: number, outputTokens: number, model: {
|
||||
inputCostPer1k?: number | null
|
||||
outputCostPer1k?: number | null
|
||||
}): number {
|
||||
const inputCostPer1k = model.inputCostPer1k || 0
|
||||
const outputCostPer1k = model.outputCostPer1k || 0
|
||||
|
||||
// 计算费用:token数除以1000再乘以每1k的费用
|
||||
const inputCost = (inputTokens / 1000) * inputCostPer1k
|
||||
const outputCost = (outputTokens / 1000) * outputCostPer1k
|
||||
|
||||
return inputCost + outputCost
|
||||
}
|
Loading…
Reference in New Issue
Block a user