Categorygithub.com/chippolot/jokegen
repositorypackage
1.5.1
Repository: https://github.com/chippolot/jokegen.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

JokeGen

Simple Go library and console application which use the OpenAI API to randomly generate different types of comical short stories.

Overview

JokeGen can be used in a few different ways:

  • The github.com/chippolot/jokegen package can be used in other Go projects for story generation.
  • The jokegen console application can be used to test story generation directly.

JokeGen required an active OpenAI API key in order to generate new stories.

Story Types

JokeGen supports a few different story types:

  • Misunderstandings (storyType: misunderstanding)
    • Comical stories stemming from misunderstandings.
  • Slapsticks (storyType: slapstick)
    • Stories involving slapstick humor.
  • Curses (storyType: curse)
    • Comical stories revolving around curses.
  • Curses (storyType: creature)
    • Comical stories revolving around mythical creatures.

Installing Package

To include JokeGen in another Go application just use go get:

go get -u github.com/chippolot/jokegen@latest

Next, import JokeGen in your application:

import "github.com/chippolot/jokegen"

You will need to create a new data provider implementing the following interface:

type StoryDataProvider interface {
	AddStory(story string, prompt string, storyType StoryType) error
	GetMostRecentStory(storyType StoryType) (StoryResult, error)
	GetRandomString(dataType StoryDataType, storyType StoryType) (string, error)
	Close() error
}

Finally, generate new stories:

openAIToken := "YOUR_OPEN_AI_TOKEN"
storyType := "misunderstanding"
dataProvider := YOUR_DATA_PROVIDER_INSTANCE
options := jokegen.StoryOptions{}
jokegen.GenerateStory(openAIToken, storyType, dataProvider, options)

Executing CLI program

Build the CLI program with:

go build -o jokegen ./cmd/consoleapp

And run with:

./consoleapp -st STORY_TYPE

License

This project is licensed under the MIT License - see the LICENSE.md file for details