From 2fa8dc72915232a13d712221be6fdd0e092f29e8 Mon Sep 17 00:00:00 2001 From: "d.o.it" <6849456+d-oit@users.noreply.github.com> Date: Fri, 14 Feb 2025 17:03:05 +0100 Subject: [PATCH 1/3] fix: Set default model ID in MistralHandler if not provided --- src/api/providers/mistral.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/providers/mistral.ts b/src/api/providers/mistral.ts index 6582f5d220..83eda4400e 100644 --- a/src/api/providers/mistral.ts +++ b/src/api/providers/mistral.ts @@ -35,7 +35,7 @@ export class MistralHandler implements ApiHandler { } private getBaseUrl(): string { - const modelId = this.options.apiModelId + const modelId = this.options.apiModelId ?? mistralDefaultModelId if (modelId?.startsWith("codestral-")) { return this.options.mistralCodestralUrl || "https://codestral.mistral.ai" } From 8842497f204263837cd9d1e62b37f65a3fb9cb7a Mon Sep 17 00:00:00 2001 From: "d.o.it" <6849456+d-oit@users.noreply.github.com> Date: Fri, 14 Feb 2025 17:03:19 +0100 Subject: [PATCH 2/3] fix: Update ApiOptions to handle default model ID for codestral URLs --- webview-ui/src/components/settings/ApiOptions.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webview-ui/src/components/settings/ApiOptions.tsx b/webview-ui/src/components/settings/ApiOptions.tsx index 125c3d3785..66459eba49 100644 --- a/webview-ui/src/components/settings/ApiOptions.tsx +++ b/webview-ui/src/components/settings/ApiOptions.tsx @@ -314,7 +314,6 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage, fromWelcomeView }: A placeholder="Enter API Key..."> Mistral API Key -

- {apiConfiguration?.apiModelId?.startsWith("codestral-") && ( + {(apiConfiguration?.apiModelId?.startsWith("codestral-") || + (!apiConfiguration?.apiModelId && mistralDefaultModelId.startsWith("codestral-"))) && (

Date: Fri, 14 Feb 2025 17:48:46 +0100 Subject: [PATCH 3/3] feat: Add completePrompt method to MistralHandler for chat completions --- src/api/providers/mistral.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/api/providers/mistral.ts b/src/api/providers/mistral.ts index 83eda4400e..17ff569f12 100644 --- a/src/api/providers/mistral.ts +++ b/src/api/providers/mistral.ts @@ -86,4 +86,25 @@ export class MistralHandler implements ApiHandler { info: mistralModels[mistralDefaultModelId], } } + + async completePrompt(prompt: string): Promise { + try { + const response = await this.client.chat.complete({ + model: this.options.apiModelId || mistralDefaultModelId, + messages: [{ role: "user", content: prompt }], + temperature: this.options.modelTemperature ?? MISTRAL_DEFAULT_TEMPERATURE, + }) + + const content = response.choices?.[0]?.message.content + if (Array.isArray(content)) { + return content.map((c) => (c.type === "text" ? c.text : "")).join("") + } + return content || "" + } catch (error) { + if (error instanceof Error) { + throw new Error(`Mistral completion error: ${error.message}`) + } + throw error + } + } }