This package is deprecated. Please use genkitx-openai instead.
Firebase Genkit <> OpenAI Plugin
genkitx-openai-plugin
is a community plugin for using OpenAI APIs with
Firebase GenKit. Built by The Fire Company. 🔥
Installation
Install the plugin in your project with your favorite package manager:
npm install genkitx-openai-plugin
yarn add genkitx-openai-plugin
pnpm add genkitx-openai-plugin
Usage
Basic examples
The simplest way to call the text generation model is by using the helper function generate
:
const response = await generate({
model: gpt4o,
prompt: 'Tell me a joke.',
});
console.log(await response.text());
Multi-modal prompt
const response = await generate({
model: gpt4o,
prompt: [
{ text: 'What animal is in the photo?' },
{ media: { url: imageUrl } },
],
config: {
visualDetailLevel: 'low',
},
});
console.log(await response.text());
Within a flow
export const myFlow = defineFlow(
{
name: 'menuSuggestionFlow',
inputSchema: z.string(),
outputSchema: z.string(),
},
async (subject) => {
const llmResponse = await generate({
prompt: `Suggest an item for the menu of a ${subject} themed restaurant`,
model: gpt4o,
});
return llmResponse.text();
}
);
startFlowsServer();
Tool use
const createReminder = defineTool(
{
name: 'createReminder',
description: 'Use this to create reminders for things in the future',
inputSchema: z.object({
time: z
.string()
.describe('ISO timestamp string, e.g. 2024-04-03T12:23:00Z'),
reminder: z.string().describe('the content of the reminder'),
}),
outputSchema: z.number().describe('the ID of the created reminder'),
},
(reminder) => Promise.resolve(3)
);
const result = generate({
model: gpt4o,
tools: [createReminder],
prompt: `
You are a reminder assistant.
If you create a reminder, describe in text the reminder you created as a response.
Query: I have a meeting with Anna at 3 for dinner - can you set a reminder for the time?
`,
});
console.log(result.then((res) => res.text()));
For more detailed examples and the explanation of other functionalities, refer to the examples in the official Github repo of the plugin or in the official Genkit documentation.
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 The Fire Company. 🔥
License
This project is licensed under the Apache 2.0 License.