yukinagae / genkit-go-plugins

Firebase Genkit Go Community Plugins
Apache License 2.0
6 stars 1 forks source link
chatgpt firebase firebase-genkit genkit genkit-plugin go golang gpt openai plugin
Firebase Genkit Logo Go Logo

[!WARNING] This version is in preview and may have API changes and critical bugs. Use it for prototypes or hobby projects, not in production.

Firebase Genkit Go Community Plugins

Go Reference Go Report Card GitHub License

This repository contains Go community plugins for Firebase Genkit.

Available plugins

Model / Embedding Plugins

Installation

go get github.com/yukinagae/genkit-go-plugins@latest

Usage

OpenAI

Get your OpenAI API key from here and run:

export OPENAI_API_KEY=your-api-key

Run genkit start -o with the following sample code:

package main

import (
    "context"
    "fmt"
    "log"

    "github.com/firebase/genkit/go/ai"
    "github.com/firebase/genkit/go/genkit"

    "github.com/yukinagae/genkit-go-plugins/plugins/openai"
)

func main() {
    ctx := context.Background()

    if err := openai.Init(ctx, nil); err != nil {
        log.Fatal(err)
    }

    genkit.DefineFlow("sampleFlow", func(ctx context.Context, input string) (string, error) {
        model := openai.Model("gpt-4o-mini")

        resp, err := model.Generate(ctx,
            ai.NewGenerateRequest(
                &ai.GenerationCommonConfig{Temperature: 1},
                ai.NewUserTextMessage("Hello!")),
            nil)
        if err != nil {
            return "", err
        }

        text := resp.Text()
        return text, nil
    })

    if err := genkit.Init(ctx, nil); err != nil {
        log.Fatal(err)
    }
}

See the official Genkit Go Documentation for more details.

Contributing

We welcome contributions to this project! To get started, please refer to our Contribution Guide.