feat: Add completePrompt method to MistralHandler for chat completions

This commit is contained in:
d.o.it 2025-02-14 17:48:46 +01:00
parent 8842497f20
commit b4cf69793e

View file

@ -86,4 +86,25 @@ export class MistralHandler implements ApiHandler {
info: mistralModels[mistralDefaultModelId],
}
}
async completePrompt(prompt: string): Promise<string> {
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
}
}
}