|
1 | 1 | import { createAnthropic } from "@ai-sdk/anthropic";
|
2 | 2 | import { createGoogleGenerativeAI } from "@ai-sdk/google";
|
| 3 | +import { createMistral } from "@ai-sdk/mistral"; |
3 | 4 | import { createGroq } from "@ai-sdk/groq";
|
4 | 5 | import { createOpenAI } from "@ai-sdk/openai";
|
5 | 6 | import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
|
@@ -528,6 +529,27 @@ export async function generateText({
|
528 | 529 | break;
|
529 | 530 | }
|
530 | 531 |
|
| 532 | + case ModelProviderName.MISTRAL: { |
| 533 | + const mistral = createMistral(); |
| 534 | + |
| 535 | + const { text: mistralResponse } = await aiGenerateText({ |
| 536 | + model: mistral(model), |
| 537 | + prompt: context, |
| 538 | + system: |
| 539 | + runtime.character.system ?? |
| 540 | + settings.SYSTEM_PROMPT ?? |
| 541 | + undefined, |
| 542 | + temperature: temperature, |
| 543 | + maxTokens: max_response_length, |
| 544 | + frequencyPenalty: frequency_penalty, |
| 545 | + presencePenalty: presence_penalty, |
| 546 | + }); |
| 547 | + |
| 548 | + response = mistralResponse; |
| 549 | + elizaLogger.debug("Received response from Mistral model."); |
| 550 | + break; |
| 551 | + } |
| 552 | + |
531 | 553 | case ModelProviderName.ANTHROPIC: {
|
532 | 554 | elizaLogger.debug("Initializing Anthropic model with Cloudflare check");
|
533 | 555 | const baseURL = getCloudflareGatewayBaseURL(runtime, 'anthropic') || "https://api.anthropic.com/v1";
|
@@ -1863,6 +1885,8 @@ export async function handleProvider(
|
1863 | 1885 | });
|
1864 | 1886 | case ModelProviderName.GOOGLE:
|
1865 | 1887 | return await handleGoogle(options);
|
| 1888 | + case ModelProviderName.MISTRAL: |
| 1889 | + return await handleMistral(options); |
1866 | 1890 | case ModelProviderName.REDPILL:
|
1867 | 1891 | return await handleRedPill(options);
|
1868 | 1892 | case ModelProviderName.OPENROUTER:
|
@@ -2019,6 +2043,31 @@ async function handleGoogle({
|
2019 | 2043 | });
|
2020 | 2044 | }
|
2021 | 2045 |
|
| 2046 | +/** |
| 2047 | + * Handles object generation for Mistral models. |
| 2048 | + * |
| 2049 | + * @param {ProviderOptions} options - Options specific to Mistral. |
| 2050 | + * @returns {Promise<GenerateObjectResult<unknown>>} - A promise that resolves to generated objects. |
| 2051 | + */ |
| 2052 | +async function handleMistral({ |
| 2053 | + model, |
| 2054 | + schema, |
| 2055 | + schemaName, |
| 2056 | + schemaDescription, |
| 2057 | + mode, |
| 2058 | + modelOptions, |
| 2059 | +}: ProviderOptions): Promise<GenerateObjectResult<unknown>> { |
| 2060 | + const mistral = createMistral(); |
| 2061 | + return await aiGenerateObject({ |
| 2062 | + model: mistral(model), |
| 2063 | + schema, |
| 2064 | + schemaName, |
| 2065 | + schemaDescription, |
| 2066 | + mode, |
| 2067 | + ...modelOptions, |
| 2068 | + }); |
| 2069 | +} |
| 2070 | + |
2022 | 2071 | /**
|
2023 | 2072 | * Handles object generation for Redpill models.
|
2024 | 2073 | *
|
|
0 commit comments