diff --git a/components/SmartChatBox/api.ts b/components/SmartChatBox/api.ts index d1a67a6..11b6363 100644 --- a/components/SmartChatBox/api.ts +++ b/components/SmartChatBox/api.ts @@ -208,7 +208,7 @@ function transformSystemMessage( */ function transformMessage(apiMessage: RealApiMessage): ChatMessage { try { - const { id, role, content, created_at, function_name, custom_data, status, intent_type, error_message } = apiMessage; + const { id, role, content, created_at, function_name, custom_data, status, intent_type } = apiMessage; let message: ChatMessage = { id: id ? id.toString() : Date.now().toString(), role: role, @@ -218,7 +218,8 @@ function transformMessage(apiMessage: RealApiMessage): ChatMessage { status: status || 'success', }; - if (error_message && error_message === 'no enough credits') { + const errorMessage = custom_data?.error_message; + if (errorMessage && errorMessage === 'no enough credits') { message.blocks = NoEnoughCreditsMessageBlocks; } else { if (role === 'assistant' || role === 'user') { diff --git a/components/SmartChatBox/types.ts b/components/SmartChatBox/types.ts index 3587c56..c9a1040 100644 --- a/components/SmartChatBox/types.ts +++ b/components/SmartChatBox/types.ts @@ -131,14 +131,19 @@ export interface ApiMessageContent { url?: string; } +interface BaseCustomData { + error_message?: string; + rejected_reason?: string; + [key: string]: any; +} + export interface RealApiMessage { created_at: string; id: number; role: Role; content: string; function_name?: FunctionName; - custom_data?: ProjectInit | ScriptSummary | CharacterGeneration | SketchGeneration | ShotSketchGeneration | ShotVideoGeneration; + custom_data?: (ProjectInit | ScriptSummary | CharacterGeneration | SketchGeneration | ShotSketchGeneration | ShotVideoGeneration) & BaseCustomData; status: MessageStatus; intent_type: IntentType; - error_message?: string; } \ No newline at end of file