Skip to main content

MistralAI

Hereโ€™s how you can initialize an MistralAI LLM instance:

yarn add @langchain/mistralai
import { MistralAI } from "@langchain/mistralai";

const model = new MistralAI({
model: "codestral-latest", // Defaults to "codestral-latest" if no model provided.
temperature: 0,
apiKey: "YOUR-API-KEY", // In Node.js defaults to process.env.MISTRAL_API_KEY
});
const res = await model.invoke(
"You can print 'hello world' to the console in javascript like this:\n```javascript"
);
console.log(res);

console.log('hello world');
```
This will output 'hello world' to the console.

Since the Mistral LLM is a completions model, they also allow you to insert a suffix to the prompt. Suffixes can be passed via the call options when invoking a model like so:

const res = await model.invoke(
"You can print 'hello world' to the console in javascript like this:\n```javascript",
{
suffix: "```",
}
);
console.log(res);

console.log('hello world');
```

As seen in the first example, the model generated the requested console.log('hello world') code snippet, but also included extra unwanted text. By adding a suffix, we can constrain the model to only complete the prompt up to the suffix (in this case, three backticks). This allows us to easily parse the completion and extract only the desired response without the suffix using a custom output parser.

import { MistralAI } from "@langchain/mistralai";

const model = new MistralAI({
model: "codestral-latest",
temperature: 0,
apiKey: "YOUR-API-KEY",
});

const suffix = "```";

const customOutputParser = (input: string) => {
if (input.includes(suffix)) {
return input.split(suffix)[0];
}
throw new Error("Input does not contain suffix.");
};

const res = await model.invoke(
"You can print 'hello world' to the console in javascript like this:\n```javascript",
{
suffix,
}
);

console.log(customOutputParser(res));

console.log('hello world');

Was this page helpful?


You can leave detailed feedback on GitHub.