Codex/generation task reliability #27

Merged
stringadmin merged 10 commits from codex/generation-task-reliability into master 2026-06-08 10:31:08 +00:00
3 changed files with 9 additions and 6 deletions
Showing only changes of commit 4f7f67a278 - Show all commits
+2 -2
View File
@@ -473,8 +473,8 @@ function WorkbenchPage({
const billingEstimate = useMemo(() => { const billingEstimate = useMemo(() => {
if (activeMode === "image") { if (activeMode === "image") {
return { return {
label: "预计 20 积分", label: "预计 2,000 积分",
title: `图片生成按任务计费:${activeModel}${imageSettingsSummary},预计 20 积分`, title: `图片生成按任务计费:${activeModel}${imageSettingsSummary},预计 2,000 积分`,
}; };
} }
if (activeMode === "video") { if (activeMode === "video") {
+2 -1
View File
@@ -40,6 +40,7 @@ export const ENTERPRISE_VIDEO_RESOLUTION_OPTIONS = [
export const ENTERPRISE_DEFAULT_VIDEO_MODEL = HAPPY_HORSE_UI_MODEL; export const ENTERPRISE_DEFAULT_VIDEO_MODEL = HAPPY_HORSE_UI_MODEL;
export const ENTERPRISE_DEFAULT_VIDEO_RESOLUTION = "1080P"; export const ENTERPRISE_DEFAULT_VIDEO_RESOLUTION = "1080P";
const CREDITS_PER_CNY = 100;
export interface EnterpriseVideoPricingInput { export interface EnterpriseVideoPricingInput {
model: string; model: string;
@@ -94,5 +95,5 @@ export function getEnterpriseVideoCreditRate(input: EnterpriseVideoPricingInput)
export function calculateEnterpriseVideoCredits(input: EnterpriseVideoPricingInput): number { export function calculateEnterpriseVideoCredits(input: EnterpriseVideoPricingInput): number {
const duration = Math.max(1, Math.ceil(Number(input.durationSeconds) || 1)); const duration = Math.max(1, Math.ceil(Number(input.durationSeconds) || 1));
return Number((getEnterpriseVideoCreditRate(input) * duration).toFixed(2)); return Number((getEnterpriseVideoCreditRate(input) * duration * CREDITS_PER_CNY).toFixed(2));
} }
+5 -3
View File
@@ -32,8 +32,10 @@ export interface TextTokenUsage {
totalTokens?: number; totalTokens?: number;
} }
export const TEXT_INPUT_CREDITS_PER_MILLION = 2; const CREDITS_PER_CNY = 100;
export const TEXT_OUTPUT_CREDITS_PER_MILLION = 5;
export const TEXT_INPUT_CREDITS_PER_MILLION = 2 * CREDITS_PER_CNY;
export const TEXT_OUTPUT_CREDITS_PER_MILLION = 5 * CREDITS_PER_CNY;
const IMAGE_TIMEOUT_POLICY: TaskTimeoutPolicy = { const IMAGE_TIMEOUT_POLICY: TaskTimeoutPolicy = {
submitTimeoutMs: 90_000, submitTimeoutMs: 90_000,
@@ -151,7 +153,7 @@ export function estimateTextTokenCredits(usage: TextTokenUsage): number {
} }
export function formatTextTokenUsage(usage?: TextTokenUsage | null): string { export function formatTextTokenUsage(usage?: TextTokenUsage | null): string {
const rule = "文本计费规则:输入 Token 每百万 2 积分,输出 Token 每百万 5 积分,实际以服务端结算为准。"; const rule = "文本计费规则:输入 Token 每百万 200 积分,输出 Token 每百万 500 积分,实际以服务端结算为准。";
if (!usage) return rule; if (!usage) return rule;
const promptTokens = Math.max(0, Number(usage.promptTokens || 0)); const promptTokens = Math.max(0, Number(usage.promptTokens || 0));
const completionTokens = Math.max(0, Number(usage.completionTokens || 0)); const completionTokens = Math.max(0, Number(usage.completionTokens || 0));