0.4.0 • Published 1 year ago

genkitx-anthropicai v0.4.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 year ago

This package is deprecated. Please use genkitx-anthropic instead.

genkitx-anthropicai 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-anthropicai
  • yarn add genkitx-anthropicai

Usage

Initialize

import 'dotenv/config';

import { configureGenkit } from '@genkit-ai/core';
import { defineFlow, startFlowsServer } from '@genkit-ai/flow';
import { anthropic } from 'genkitx-anthropicai';

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-anthropicai
  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?

[!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.