From b5b6a587de9e173359804e9019782f778b658010 Mon Sep 17 00:00:00 2001 From: "d.o.it" <6849456+d-oit@users.noreply.github.com> Date: Sat, 15 Feb 2025 14:08:32 +0100 Subject: [PATCH 1/2] fix: Set default model ID in MistralHandler options if not provided --- src/api/providers/mistral.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/api/providers/mistral.ts b/src/api/providers/mistral.ts index 17ff569f12a..d41ecb22d28 100644 --- a/src/api/providers/mistral.ts +++ b/src/api/providers/mistral.ts @@ -25,7 +25,12 @@ export class MistralHandler implements ApiHandler { throw new Error("Mistral API key is required") } - this.options = options + // Set default model ID if not provided + this.options = { + ...options, + apiModelId: options.apiModelId || mistralDefaultModelId, + } + const baseUrl = this.getBaseUrl() console.debug(`[Roo Code] MistralHandler using baseUrl: ${baseUrl}`) this.client = new Mistral({ @@ -36,6 +41,7 @@ export class MistralHandler implements ApiHandler { private getBaseUrl(): string { const modelId = this.options.apiModelId ?? mistralDefaultModelId + console.debug(`[Roo Code] MistralHandler using modelId: ${modelId}`) if (modelId?.startsWith("codestral-")) { return this.options.mistralCodestralUrl || "https://codestral.mistral.ai" } From 9724a8024dac82c552ae0769535b720898b29025 Mon Sep 17 00:00:00 2001 From: "d.o.it" <6849456+d-oit@users.noreply.github.com> Date: Sun, 16 Feb 2025 16:19:37 +0100 Subject: [PATCH 2/2] Add system prompt to Mistral message creation and update API key link text --- src/api/providers/mistral.ts | 2 +- .../src/components/settings/ApiOptions.tsx | 20 +++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/api/providers/mistral.ts b/src/api/providers/mistral.ts index d41ecb22d28..08054c36b6a 100644 --- a/src/api/providers/mistral.ts +++ b/src/api/providers/mistral.ts @@ -51,7 +51,7 @@ export class MistralHandler implements ApiHandler { async *createMessage(systemPrompt: string, messages: Anthropic.Messages.MessageParam[]): ApiStream { const response = await this.client.chat.stream({ model: this.options.apiModelId || mistralDefaultModelId, - messages: convertToMistralMessages(messages), + messages: [{ role: "system", content: systemPrompt }, ...convertToMistralMessages(messages)], maxTokens: this.options.includeMaxTokens ? this.getModel().info.maxTokens : undefined, temperature: this.options.modelTemperature ?? MISTRAL_DEFAULT_TEMPERATURE, }) diff --git a/webview-ui/src/components/settings/ApiOptions.tsx b/webview-ui/src/components/settings/ApiOptions.tsx index 66459eba490..14d045d5391 100644 --- a/webview-ui/src/components/settings/ApiOptions.tsx +++ b/webview-ui/src/components/settings/ApiOptions.tsx @@ -321,17 +321,15 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage, fromWelcomeView }: A color: "var(--vscode-descriptionForeground)", }}> This key is stored locally and only used to make API requests from this extension. - {!apiConfiguration?.mistralApiKey && ( - - You can get a La Plateforme (api.mistral.ai) / Codestral (codestral.mistral.ai) API key - by signing up here. - - )} + + You can get a La Plateforme (api.mistral.ai) or Codestral (codestral.mistral.ai) API key by + signing up here. +

{(apiConfiguration?.apiModelId?.startsWith("codestral-") ||