Intro
OpenAI’s GPT models are possibly the most widely used LLM today.
Typically, the interaction with the models is via chatting with it
inside the OpenAI’s web portal. They also offer an REST API endpoint
that you can use to communicate with their LLM’s. chattr
is
able to send and receive the correct API calls to make the “chatting”
experience with the GPT models seamless.
Secret key
OpenAI requires a secret key to authenticate your
user. It is required for any application non-OpenAI application, such as
chattr
, to have one in order to function. A key is a long
alphanumeric sequence. The sequence is created in the OpenAI portal.
By default, chattr
will look for the secret
key inside the a Environment Variable called
OPENAI_API_KEY
. Other packages that integrate with OpenAI
use the same variable name.
Use Sys.setenv()
to set the variable. The downside of
using this method is that the variable will only be available during the
current R session:
Sys.setenv("OPENAI_API_KEY" = "####################")
A preferred method is to save the secret key to the
.Renviron
file. This way, there is no need to load the
environment variable every time you start a new R session. The
.Renviron
file is available in your home directory. Here is
an example of the entry:
OPENAI_API_KEY=####################
Test connection
Use the chattr_test()
function to confirm that your
connection works:
Change the model
By default, chattr
is setup to interact with GPT 4
(gpt-4
). To switch to 3.5, use:
library(chattr)
chattr_use("gpt35")
#>
#> ── chattr
#> • Provider: OpenAI - Chat Completions
#> • Path/URL: https://api.openai.com/v1/chat/completions
#> • Model: gpt-3.5-turbo
#> • Label: GPT 3.5 (OpenAI)
To switch back to GPT 4, run:
chattr_use("gpt4")
#>
#> ── chattr
#> • Provider: OpenAI - Chat Completions
#> • Path/URL: https://api.openai.com/v1/chat/completions
#> • Model: gpt-4
#> • Label: GPT 4 (OpenAI)
Data files and data frames
Because it is information about your environment and work space, by
default chattr
avoids sending any data files, and data
frame information to OpenAI. Sending this information is convenient
because it creates a shorthand for your requests. If you wish to submit
this information as part of your prompts, use
chattr_defaults()
, for example:
chattr_defaults(max_data_files = 10)
chattr_defaults(max_data_frames = 10)
These two commands will send 10 data frames, and 10 data files as part of your prompt. You can decide the number to limit this by. The more you send, the larger your prompt.
If any of these is set to anything but 0, a warning will show up every time you start the Shiny app:
• Provider: Open AI - Chat Completions
• Path/URL: https://api.openai.com/v1/chat/completions
• Model: gpt-3.5-turbo
! A list of the top 10 files will be sent externally to OpenAI with every request
To avoid this, set the number of files to be sent to 0 using chattr::chattr_defaults(max_data_files = 0)Î