| Type: | Package | 
| Title: | Asking GPT About R Stuff | 
| Version: | 0.1.3 | 
| Description: | A chat package connecting to API endpoints by 'OpenAI' (https://platform.openai.com/) to answer questions (about R). | 
| Depends: | R (≥ 4.1.0) | 
| Imports: | cli, callr, dplyr, glue, methods, rlang, httr2, rappdirs, jsonlite | 
| Suggests: | covr, knitr, miniUI, rmarkdown, rstudioapi, shiny, shinycssloaders, spelling, testthat (≥ 3.0.0), withr | 
| URL: | https://github.com/JBGruber/askgpt | 
| BugReports: | https://github.com/JBGruber/askgpt/issues | 
| License: | GPL (≥ 3) | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.2.3 | 
| VignetteBuilder: | knitr | 
| Config/testthat/edition: | 3 | 
| Language: | en-GB | 
| LazyData: | true | 
| NeedsCompilation: | no | 
| Packaged: | 2023-09-08 08:14:55 UTC; johannes | 
| Author: | Johannes Gruber [aut, cre] | 
| Maintainer: | Johannes Gruber <johannesb.gruber@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2023-09-08 08:30:05 UTC | 
Annotate R code with inline comments
Description
Annotate R code with inline comments
Usage
annotate_code(code, ...)
Arguments
code | 
 A character vector of R code. If missing the code currently selected in RStudio is documented (If RStudio is used).  | 
... | 
 passed on to   | 
Value
A character vector.
Ask openai's GPT models a question
Description
Ask openai's GPT models a question
Usage
askgpt(prompt, chat = TRUE, progress = TRUE, return_answer = FALSE, ...)
Arguments
prompt | 
 What you want to ask  | 
chat | 
 whether to use the chat API (i.e., the same model as ChatGPT) or the completions API.  | 
progress | 
 Show a progress spinner while the request to the API has not been fulfilled.  | 
return_answer | 
 Should the answer be returned as an object instead of printing it to the screen?  | 
... | 
 additional options forwarded to   | 
Value
either an httr2 response from one of the APIs or a character vector (if return_answer).
Examples
## Not run: 
askgpt("What is an R function?")
askgpt("What is wrong with my last command?")
askgpt("Can you help me with the function aes() from ggplot2?")
## End(Not run)
Request answer from openai's chat API
Description
Request answer from openai's chat API
Usage
chat_api(
  prompt,
  model = NULL,
  config = NULL,
  max_tokens = NULL,
  api_key = NULL,
  ...
)
Arguments
prompt | 
 character string of the prompt to be completed.  | 
model | 
 character string of the model to be used (defaults to "text-davinci-003").  | 
config | 
 a configuration prompt to tell the model how it should behave.  | 
max_tokens | 
 The maximum number of tokens to generate in the completion. 2048L is the maximum the models accept.  | 
api_key | 
 set the API key. If NULL, looks for the env OPENAI_API_KEY.  | 
... | 
 additional parameters to be passed to the API (see [the API documentation](https://platform.openai.com/docs/api-reference/completions)  | 
Value
A tibble with available models
a httr2 response object
Examples
## Not run: 
chat_api("Hi, how are you?", config = "answer as a friendly chat bot")
## End(Not run)
Request answer from openai's completions API
Description
Mostly used under the hood for askgpt.
Usage
completions_api(
  prompt,
  model = NULL,
  temperature = NULL,
  max_tokens = NULL,
  api_key = NULL,
  ...
)
Arguments
prompt | 
 character string of the prompt to be completed.  | 
model | 
 character string of the model to be used (defaults to "text-davinci-003").  | 
temperature | 
 numeric value between 0 and 1 to control the randomness of the output (defaults to 0.2; lower values like 0.2 will make answers more focused and deterministic).  | 
max_tokens | 
 The maximum number of tokens to generate in the completion. 2048L is the maximum the models accept.  | 
api_key | 
 set the API key. If NULL, looks for the env OPENAI_API_KEY.  | 
... | 
 additional parameters to be passed to the API (see [the API documentation](https://platform.openai.com/docs/api-reference/completions)  | 
Details
Only a few parameters are implemented by name. Most can be sent
through the .... For example, you could use the n parameter
just like this completions_api("The quick brown fox", n = 2).
A couple of defaults are used by the package:
the model used by default is "text-davinci-003"
the default temperature is 0.2
the default for max_tokens is 2048L
You can configure how askgpt makes requests by setting
options that start with askgpt_*. For example, to use a different
model use options(askgpt_model = "text-curie-001"). It does not
matter if the API parameter ist listed in the function or not. All are
used.
Value
a httr2 response object
Examples
## Not run: 
completions_api("The quick brown fox")
## End(Not run)
Document R Code
Description
Document R Code
Usage
document_code(code, ...)
Arguments
code | 
 A character vector of R code. If missing the code currently selected in RStudio is documented (If RStudio is used).  | 
... | 
 passed on to   | 
Value
A character vector.
Examples
## Not run: 
document_code()
## End(Not run)
Estimate token count
Description
Estimate token count
Usage
estimate_token(x, mult = 1.6)
Arguments
x | 
 character vector  | 
mult | 
 the multiplier used  | 
Details
This function estimates how many tokens the API will make of the input words. For the models 1 word is more than one token. The default multiplier value resulted from testing the API. See <https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them> for more information.
Value
a integer vector of token counts
Examples
estimate_token("this is a test")
Explain R code
Description
Explain R code
Usage
explain_code(code, ...)
Arguments
code | 
 A character vector of R code. If missing the code currently selected in RStudio is documented (If RStudio is used).  | 
... | 
 passed on to   | 
Value
A character vector.
Improve code/documentation/writing using a prompt
Description
'tutorialise_addin()' opens an [RStudio gadget](https://shiny.rstudio.com/articles/gadgets.html) and [addin](http://rstudio.github.io/rstudioaddins/) that can be used to improve existing code, documentation, or writing.
Usage
improve_addin()
Value
No return value, opens a new file in RStudio
List Models
Description
List the models available in the API. You can refer to the [Models documentation](https://platform.openai.com/docs/models) to understand what models are available and the differences between them.
Usage
list_models(api_key = NULL)
Arguments
api_key | 
 set the API key. If NULL, looks for the env OPENAI_API_KEY.  | 
Value
A tibble with available models
Examples
## Not run: 
completions_api("The quick brown fox")
## End(Not run)
Initiate error logging
Description
Initiate error logging
Usage
log_init(...)
Arguments
... | 
 forwarded to   | 
Details
Just an alias for rlang::global_entrace() with a more fitting name (for the purpose here).
Value
No return value, called to enable rlang error logging
Log in to OpenAI
Description
Log in to OpenAI
Usage
login(api_key, force_refresh = FALSE, cache_dir = NULL, no_cache = FALSE)
Arguments
api_key | 
 API key to use for authentication. If not provided, the function look for a cached key or guide the user to obtain one.  | 
force_refresh | 
 Log in again even if an API key is already cached.  | 
cache_dir | 
 dir location to save keys on disk. The default is to use
  | 
no_cache | 
 Don't cache the API key, only load it into the environment.  | 
Value
a character vector with an API key
Start a new conversation
Description
Deletes the local prompt and response history to start a new conversation.
Usage
new_conversation()
Value
Does not return a value
Parse response from API functions
Description
Parse response from API functions
Usage
parse_response(response)
Arguments
response | 
 a response object from   | 
Value
a character vector
Return the prompt/response history
Description
Return the prompt/response history
Usage
prompt_history(n = Inf)
Arguments
n | 
 number of prompts/responses to return.  | 
Value
a character vector
Return the prompt/response history
Description
Return the prompt/response history
Usage
response_history(n = Inf)
Arguments
n | 
 number of prompts/responses to return.  | 
Value
a character vector
Test R code
Description
Test R code
Usage
test_function(code, ...)
Arguments
code | 
 A character vector of R code. If missing the code currently selected in RStudio is documented (If RStudio is used).  | 
... | 
 passed on to   | 
Value
A character vector.
Max tokens limits of the different models
Description
OpenAI's token limits for different models.
Usage
token_limits
Format
An object of class data.frame with 6 rows and 2 columns.
Source
<https://platform.openai.com/docs/models/overview>
Turn R code into a tutorial
Description
'tutorialise_addin()' opens an [RStudio gadget](https://shiny.rstudio.com/articles/gadgets.html) and [addin](http://rstudio.github.io/rstudioaddins/) that turns selected code into an R Markdown/Quarto Tutorial.
Usage
tutorialise_addin()
Value
No return value, opens a new file in RStudio