genkitx-anthropic
Firebase Genkit - Anthropic AI Plugin
Anthropic AI Community Plugin for Google Firebase Genkit
genkitx-anthropic
is a community plugin for using Anthropic AI and all its supported models with Firebase Genkit.
Installation​
Install the plugin in your project with your favorite package manager:
npm install genkitx-anthropic
yarn add genkitx-anthropic
Supported models​
The plugin supports the most recent Anthropic models: Claude 3.5 Sonnet, Claude 3 Opus, Claude 3 Sonnet, and Claude 3 Haiku.
Usage​
Initialize​
import 'dotenv/config';
import { configureGenkit } from '@genkit-ai/core';
import { defineFlow, startFlowsServer } from '@genkit-ai/flow';
import { anthropic } from 'genkitx-anthropic';
configureGenkit({
plugins: [
// Anthropic API key is required and defaults to the ANTHROPIC_API_KEY environment variable
anthropic({ apiKey: process.env.ANTHROPIC_API_KEY }),
],
logLevel: 'debug',
enableTracingAndMetrics: true,
});
Basic examples​
The simplest way to call the text generation model is by using the helper function generate
:
// ...configure Genkit (as shown above)...
const response = await generate({
model: claude3Haiku, // model imported from genkitx-anthropic
prompt: 'Tell me a joke.',
});
console.log(await response.text());
Multi-modal prompt​
// ...configure Genkit (as shown above)...
const response = await generate({
model: claude3Haiku,
prompt: [
{ text: 'What animal is in the photo?' },
{ media: { url: imageUrl } },
],
config: {
// control of the level of visual detail when processing image embeddings
// Low detail level also decreases the token usage
visualDetailLevel: 'low',
},
});
console.log(await response.text());
Within a flow​
// ...configure Genkit (as shown above)...
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: claude3Opus,
});
return llmResponse.text();
}
);
startFlowsServer();
Contributing​
Want to contribute to the project? That's awesome! Head over to our Contribution Guidelines.
Need support?​
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.