diff --git a/src/api/providers/mistral.ts b/src/api/providers/mistral.ts index 17ff569f12a..08054c36b6a 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" } @@ -45,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-") ||