diff --git a/package.json b/package.json index 09301c9..59fcd8b 100644 --- a/package.json +++ b/package.json @@ -313,4 +313,4 @@ ] } } -} +} \ No newline at end of file diff --git a/src/ai/AIProviderFactory.ts b/src/ai/AIProviderFactory.ts index 858ce34..52aa76e 100644 --- a/src/ai/AIProviderFactory.ts +++ b/src/ai/AIProviderFactory.ts @@ -56,7 +56,7 @@ export class AIProviderFactory { case AIProvider.DOUBAO: provider = new DoubaoProvider(); break; - case AIProvider.Gemini: + case AIProvider.GEMINI: provider = new GeminiAIProvider(); break; default: diff --git a/src/ai/providers/BaseOpenAIProvider.ts b/src/ai/providers/BaseOpenAIProvider.ts index 6244d81..13db490 100644 --- a/src/ai/providers/BaseOpenAIProvider.ts +++ b/src/ai/providers/BaseOpenAIProvider.ts @@ -122,8 +122,30 @@ export abstract class BaseOpenAIProvider implements AIProvider { } } - async getModels(): Promise { - return Promise.resolve(this.config.models); + async getModels(): Promise { + try { + const response = await this.openai.models.list(); + return response.data.map((model: any) => { + console.log("model", model); + return { + id: model.id, + name: model.id, + maxTokens: { + input: model.context_window || 4096, + output: Math.floor((model.context_window || 4096) / 2), + }, + provider: this.provider, + }; + }); + } catch (error) { + console.warn("Failed to fetch models:", error); + return this.config.models; + } + } + + async refreshModels(): Promise { + const models = await this.getModels(); + return models.map((m) => m.id); } getName(): string { @@ -135,5 +157,4 @@ export abstract class BaseOpenAIProvider implements AIProvider { } abstract isAvailable(): Promise; - abstract refreshModels(): Promise; } diff --git a/src/ai/providers/GeminiAIProvider.ts b/src/ai/providers/GeminiAIProvider.ts index 36e54ad..283fd55 100644 --- a/src/ai/providers/GeminiAIProvider.ts +++ b/src/ai/providers/GeminiAIProvider.ts @@ -54,7 +54,7 @@ export class GeminiAIProvider extends BaseOpenAIProvider { apiKey: configManager.getConfig("PROVIDERS_GEMINI_APIKEY"), baseURL: "https://generativelanguage.googleapis.com/v1beta/openai/", providerId: "gemini", - providerName: "Gemini AI", + providerName: "Gemini", models: geminiModels, defaultModel: "gemini-1", }); diff --git a/src/commands/BaseCommand.ts b/src/commands/BaseCommand.ts index e0a3f7b..a4d0b6e 100644 --- a/src/commands/BaseCommand.ts +++ b/src/commands/BaseCommand.ts @@ -11,10 +11,10 @@ export abstract class BaseCommand { } protected async validateConfig(): Promise { - if (!(await ConfigurationManager.getInstance().validateConfiguration())) { - await NotificationHandler.error("command.execution.failed"); - return false; - } + // if (!(await ConfigurationManager.getInstance().validateConfiguration())) { + // await NotificationHandler.error("command.execution.failed"); + // return false; + // } return true; }