Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yukinagae/genkit-go-plugins

Firebase Genkit Go Community Plugins
https://github.com/yukinagae/genkit-go-plugins

chatgpt firebase firebase-genkit genkit genkit-plugin go golang gpt openai plugin

Last synced: 3 months ago
JSON representation

Firebase Genkit Go Community Plugins

Awesome Lists containing this project

README

        


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](https://pkg.go.dev/badge/github.com/yukinagae/genkit-go-plugins.svg)](https://pkg.go.dev/github.com/yukinagae/genkit-go-plugins)
[![Go Report Card](https://goreportcard.com/badge/github.com/yukinagae/genkit-go-plugins)](https://goreportcard.com/report/github.com/yukinagae/genkit-go-plugins)
[![GitHub License](https://img.shields.io/github/license/yukinagae/genkit-go-plugins)](https://github.com/yukinagae/genkit-go-plugins/blob/main/LICENSE)

This repository contains Go community plugins for [Firebase Genkit](https://github.com/firebase/genkit).

## Available plugins

### Model / Embedding Plugins

- openai - Plugins for OpenAI APIs

## Installation

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

## Usage

### OpenAI

Get your OpenAI API key from [here](https://platform.openai.com/account/api-keys) and run:

```bash
export OPENAI_API_KEY=your-api-key
```

Run `genkit start -o` with the following sample code:

```go
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](https://firebase.google.com/docs/genkit-go/get-started-go) for more details.

## Contributing

We welcome contributions to this project! To get started, please refer to our [Contribution Guide](https://github.com/yukinagae/genkit-go-plugins/blob/main/CONTRIBUTING.md).