import { BaseChat, BaseChatOptions } from '../core/chat.ts'; import { OpenAI } from 'openai'; export type SiliconFlowOptions = Partial; type SiliconFlowUsageData = { id: string; name: string; image: string; email: string; isAdmin: boolean; balance: string; status: 'normal' | 'suspended' | 'expired' | string; // 状态 introduce: string; role: string; chargeBalance: string; totalBalance: string; category: string; }; type SiliconFlowUsageResponse = { code: number; message: string; status: boolean; data: SiliconFlowUsageData; }; export class SiliconFlow extends BaseChat { static BASE_URL = 'https://api.siliconflow.cn/v1'; constructor(options: SiliconFlowOptions) { const baseURL = options.baseURL || SiliconFlow.BASE_URL; super({ ...(options as BaseChatOptions), baseURL: baseURL }); } async getUsageInfo(): Promise { return this.openai.get('/user/info'); } async chat(messages: OpenAI.Chat.Completions.ChatCompletionMessageParam[], options?: Partial) { const res = await super.chat(messages, options); return res; } }