diff --git a/src/provider/core/chat.ts b/src/provider/core/chat.ts index 697e1ba..ea30365 100644 --- a/src/provider/core/chat.ts +++ b/src/provider/core/chat.ts @@ -50,10 +50,10 @@ export class BaseChat implements BaseChatInterface, Usage { * 默认apiKey */ apiKey: string; - prompt_tokens: number; - total_tokens: number; - completion_tokens: number; - responseText: string; + prompt_tokens: number = 0; + total_tokens: number = 0; + completion_tokens: number = 0; + responseText: string = ''; utils = AIUtils; constructor(options: BaseChatOptions) { this.baseURL = options.baseURL; @@ -105,9 +105,8 @@ export class BaseChat implements BaseChatInterface, Usage { const res = await response.json() as ChatMessageComplete; - this.prompt_tokens = res.usage?.prompt_tokens ?? 0; - this.total_tokens = res.usage?.total_tokens ?? 0; - this.completion_tokens = res.usage?.completion_tokens ?? 0; + this.setChatUsage(res.usage); + this.responseText = res.choices[0]?.message?.content || ''; return res; } @@ -191,6 +190,11 @@ export class BaseChat implements BaseChatInterface, Usage { completion_tokens: this.completion_tokens, }; } + setChatUsage(usage: { prompt_tokens?: number; total_tokens?: number; completion_tokens?: number }) { + this.prompt_tokens = usage.prompt_tokens ?? this.prompt_tokens; + this.total_tokens = usage.total_tokens ?? this.total_tokens; + this.completion_tokens = usage.completion_tokens ?? this.completion_tokens; + } getHeaders(headers?: Record) { return {