0.8.0 • Published 3 days ago

genkitx-cohere v0.8.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 days ago

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

Usage

Initialize

import 'dotenv/config';

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

configureGenkit({
  plugins: [
    // Cohere API key is required and defaults to the COHERE_API_KEY environment variable
    cohere({ apiKey: process.env.COHERE_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: commandRPlus, // model imported from genkitx-cohere
  prompt: 'Tell me a joke.',
});

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: commandRPlus,
    });

    return llmResponse.text();
  }
);
startFlowsServer();

Tool use

// ...configure Genkit (as shown above)...

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: llama3x70b,
  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()));

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.

0.8.0

3 days ago

0.3.0

4 days ago

0.2.0

6 days ago

0.1.2

8 days ago

0.1.1

9 days ago

0.1.0

10 days ago

0.0.11

10 days ago

0.0.10

13 days ago

0.0.8

14 days ago

0.0.7

14 days ago

0.0.6

14 days ago

0.0.5

14 days ago