Giter Club home page Giter Club logo

openai's Introduction

openai

R-CMD-check Codecov test coverage CRAN status CRAN Downloads

Overview

{openai} is an R wrapper of OpenAI API endpoints. This package covers Models, Completions, Chat, Edits, Images, Embeddings, Audio, Files, Fine-tunes, Moderations, and legacy Engines endpoints. The latter endpoints, namely Engines, are left for backward compatibility and will be removed soon.

Installation

The easiest way to install {openai} from CRAN is to use the “official” install.packages() function:

install.packages("openai")

You can also install the development version of {openai} from GitHub with:

if (!require(remotes))
    install.packages("remotes")
remotes::install_github("irudnyts/openai")

Authentication

To use the OpenAI API, you need to provide an API key. First, sign up for OpenAI API on this page. Once you signed up and logged in, you need to open this page, click on Personal, and select View API keys in drop-down menu. You can then copy the key by clicking on the green text Copy.

By default, functions of {openai} will look for OPENAI_API_KEY environment variable. If you want to set a global environment variable, you can use the following command (where xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx should be replaced with your actual key):

Sys.setenv(
    OPENAI_API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
)

Otherwise, you can add the key to the .Renviron file of the project. The following commands will open .Renviron for editing:

if (!require(usethis))
    install.packages("usethis")

usethis::edit_r_environ(scope = "project")

You can add the following line to the file (again, replace xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx with your actual key):

OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Note: If you are using GitHub/Gitlab, do not forget to add .Renviron to .gitignore!

Finally, you can always provide the key manually to the functions of the package.

Example

Functions of {openai} have self-explanatory names. For example, to create a completion, one can use create_completion() function:

library(openai)

create_completion(
    model = "ada",
    prompt = "Generate a question and an answer"
)
#> $id
#> [1] "cmpl-6MiImjcaCSuQYY6u8UA2Mm0rCdbEo"
#> 
#> $object
#> [1] "text_completion"
#> 
#> $created
#> [1] 1670871532
#> 
#> $model
#> [1] "ada"
#> 
#> $choices
#>                                                                             text
#> 1  within 5 minutes, up to an hour depending on how your users are different and
#>   index logprobs finish_reason
#> 1     0       NA        length
#> 
#> $usage
#> $usage$prompt_tokens
#> [1] 7
#> 
#> $usage$completion_tokens
#> [1] 16
#> 
#> $usage$total_tokens
#> [1] 23

Further, one can generate an image using DALL·E text-to-image model with create_image():

create_image("An astronaut riding a horse in a photorealistic style")

It is also possible to use ChatGPT’s gpt-3.5-turbo model via create_chat_completion():

create_chat_completion(
    model = "gpt-3.5-turbo",
    messages = list(
        list(
            "role" = "system",
            "content" = "You are a helpful assistant."
        ),
        list(
            "role" = "user",
            "content" = "Who won the world series in 2020?"
        ),
        list(
            "role" = "assistant",
            "content" = "The Los Angeles Dodgers won the World Series in 2020."
        ),
        list(
            "role" = "user",
            "content" = "Where was it played?"
        )
    )
)
#> $id
#> [1] "chatcmpl-6r7N6YXcMhg8xmVM4ohOcAmzPOy3f"
#> 
#> $object
#> [1] "chat.completion"
#> 
#> $created
#> [1] 1678117740
#> 
#> $model
#> [1] "gpt-3.5-turbo-0301"
#> 
#> $usage
#> $usage$prompt_tokens
#> [1] 56
#> 
#> $usage$completion_tokens
#> [1] 19
#> 
#> $usage$total_tokens
#> [1] 75
#> 
#> 
#> $choices
#> finish_reason index message.role
#> 1          stop     0    assistant
#> message.content
#> 1 The 2020 World Series was played at Globe Life Field in Arlington, Texas.

Finally, the speech-to-text Whisper is available via create_transcription() and create_translation():

voice_sample_ua <- system.file("extdata", "sample-ua.m4a", package = "openai")
create_translation(file = voice_sample_ua, model = "whisper-1")
#> $text
#> [1] "I want to check how this model works"

openai's People

Contributors

irudnyts avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.