From b4cf69793ea97284d6f52a2cb2b6493e58fc68c0 Mon Sep 17 00:00:00 2001 From: "d.o.it" <6849456+d-oit@users.noreply.github.com> Date: Fri, 14 Feb 2025 17:48:46 +0100 Subject: [PATCH] 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 + } + } }