Skip to content

Latest commit

 

History

History
140 lines (102 loc) · 4.23 KB

README.md

File metadata and controls

140 lines (102 loc) · 4.23 KB

Firebase Genkit + Groq

Firebase Genkit <> Groq Plugin

Groq Community Plugin for Google Firebase Genkit

Github lerna version NPM Downloads GitHub Org's stars GitHub License Static Badge
GitHub Issues or Pull Requests GitHub Issues or Pull Requests GitHub commit activity

genkitx-groq is a community plugin for using Groq APIs with Firebase Genkit. Built by The Fire Company. 🔥

Genit + Groq example

Installation

Install the plugin in your project with your favorite package manager:

  • npm install genkitx-groq
  • yarn add genkitx-groq
  • pnpm add genkitx-groq

Usage

Initialize

import dotenv from 'dotenv';
import { genkit } from 'genkit';
import { groq, gemma7b } from 'genkitx-groq';

dotenv.config();

const ai = genkit({
  plugins: [groq({ apiKey: process.env.GROQ_API_KEY })],
  // optional: default model for generate calls
  model: gemma7b,
});

Basic examples

The simplest way to generate text is by using the generate method:

const response = await ai.generate({
  model: llama3x70b, // model imported from genkitx-groq
  prompt: 'Tell me a joke.',
});

console.log(response.text);

Within a flow

import { z } from 'genkit';

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"

Tool use

import { z } from 'genkit';

// ...initialise genkit as described above...

const createReminder = ai.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 = await ai.generate({
  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.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.