Skip to content

sjalq/elm-openai

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

elm-openai

This is a community-maintained Elm library for OpenAI API.

This package is NOT intended to be run on the browser since apiKey will be exposed. Call it from the server-side like elm-webapp or lamdera.com instead and have the api key stored in environment variables.

See https://beta.openai.com/docs/api-reference/introduction

Usage

fixSpelling : String -> Task (Ext.Http.Error String) (List OpenAI.Edits.Choice)
fixSpelling userInput =
    let
        cfg =
            { organizationId = "org-123"
            , apiKey = flags.apiKey -- use of environment variables is recommended
            , baseUrl = Nothing     -- defaults to "https://api.openai.com/v1"
            }
    in
    OpenAI.Edits.createEdits
        { model = OpenAI.ModelID.TextDavinciEdit001
        , input = userInput
        , instruction = "Fix the spelling mistakes"
        , n = Nothing
        , temperature = Nothing
        , top_p = Nothing
        }
        |> OpenAI.withConfig cfg
        |> Http.task
        |> Task.map .choices

Implementation Notes

Functions like OpenAI.Edits.createEdits does not return a Task because Task is an opaque value and could be composed of a chain of http requests; if this package is compromised, your credentials could be sent to somewhere unexpected. Instead, "task functions" in this library returns a Ext.Http.TaskInput, ready to be passed to Http.task.

The error type in this package is Ext.Http.Error a. See the documentation for more details on why not Http.Error.

About

Elm library for OpenAI API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elm 88.2%
  • JavaScript 9.2%
  • Makefile 2.6%