README.md
September 8, 2025 ยท View on GitHub

Firebase Genkit <> Mistral AI Plugin
Mistral AI Community Plugin for Google Firebase Genkit
genkitx-mistral is a community plugin for using Mistral AI APIs with
Firebase Genkit. Built by Bloom Labs Inc. ๐ฅ
Installation
Install the plugin in your project with your favorite package manager:
npm install genkitx-mistralyarn add genkitx-mistralpnpm add genkitx-mistral
Usage
Initialize
import { genkit } from 'genkit';
import mistral, { openMistral7B } from 'genkitx-mistral';
const ai = genkit({
plugins: [mistral({ apiKey: 'your-api-key' })],
model: openMistral7B,
});
Basic examples
The simplest way to generate text is by using the generate method:
const response = await ai.generate({
model: openMixtral8x22B, // model imported from genkitx-mistral
prompt: 'Tell me a joke.',
});
console.log(response.text);
Text Embeddings
import { mistralembed } from 'genkitx-mistral';
const embedding = await ai.embed({
embedder: mistralembed,
content: 'Hello world',
});
console.log(embedding);
Vision
import { openPixtral } from 'genkitx-mistral';
const { text } = await ai.generate({
prompt: [{ media: { url: 'https://my-photo.jpg' } }, { text: input }],
model: openPixtral,
config: {
version: 'pixtral-12b-2409',
},
});
return JSON.stringify(text);
OCR
import { ocr } from 'genkitx-mistral';
export const ocrFlow = ai.defineFlow(
{
name: 'ocrFlow',
inputSchema: z.string(),
outputSchema: z.string(),
},
async (input) => {
const { text } = await ai.generate({
model: ocr,
prompt: 'parse the document',
config: {
document: {
documentUrl: input,
type: 'document_url',
},
},
});
return JSON.stringify(text);
}
);
Adding a model
To add a new model, you can import it from genkitx-mistral and use it in the generate method:
import { GenerationCommonConfigSchema, genkit } from 'genkit';
import { modelRef } from 'genkit/model';
import mistral from 'genkitx-mistral';
export const customLarge2411 = modelRef({
name: 'mistral/mistral-large-2411',
info: {
versions: ['mistral-large-2411'],
label: 'Mistral - Mistral Large 2411',
supports: {
multiturn: true,
tools: true,
media: false,
systemRole: true,
output: ['text', 'json'],
},
},
configSchema: GenerationCommonConfigSchema,
});
const ai = genkit({
plugins: [
mistral({
apiKey: process.env.CLIENT_ID as string,
serverURL: process.env.MISTRAL_ENDPOINT as string,
customModels: {
'mistral-large-2411': customLarge2411,
},
}),
],
model: customLarge2411,
});
const response = await ai.generate({
prompt: 'Tell me a joke.',
});
console.log(response.text);
Within a flow
import { z } from 'genkit';
// ...initialize genkit as above...
export const jokeFlow = ai.defineFlow(
{
name: 'jokeFlow',
inputSchema: z.string(),
outputSchema: z.string(),
},
async (subject) => {
const llmResponse = await ai.generate({
prompt: `tell me a joke about ${subject}`,
});
return llmResponse.text;
}
);
// Run the flow using the CLI:
// genkit flow:run jokeFlow "chicken"
Contributing
Want to contribute to the project? That's awesome! Head over to our Contribution Guidelines.
Need support?
Note
This repository depends on Google's Firebase Genkit. For issues and questions related to Genkit, please refer to instructions available in Genkit's repository.
Reach out by opening a discussion on Github Discussions.
Credits
This plugin is proudly maintained by the team at Bloom Labs Inc. ๐ฅ
License
This project is licensed under the Apache 2.0 License.