forked from MichelNivard/gptstudio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.Rmd
129 lines (84 loc) · 6.06 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
---
output: github_document
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# gptstudio <img src="man/figures/logo.png" align="right" height="98"/>
<!-- badges: start -->
[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)
[![CRAN status](https://www.r-pkg.org/badges/version/gptstudio)](https://CRAN.R-project.org/package=gptstudio)
[![Codecov test coverage](https://codecov.io/gh/MichelNivard/gptstudio/branch/main/graph/badge.svg)](https://app.codecov.io/gh/MichelNivard/gptstudio?branch=main)
[![R-CMD-check](https://github.com/MichelNivard/gptstudio/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/MichelNivard/gptstudio/actions/workflows/R-CMD-check.yaml)
[![CRAN RStudio mirror downloads](http://cranlogs.r-pkg.org/badges/gptstudio)](http://www.r-pkg.org/pkg/gptstudio)
<!-- badges: end -->
The goal of gptstudio is for R programmers to easily incorporate use of large language models (LLMs) into their project workflows. These models appear to be a step change in our use of text for knowledge work, but you should carefully consider ethical implications of using these models. Ethics of LLMs (also called [Foundation Models](https://arxiv.org/abs/2108.07258)) is an area of very active discussion.
For further addins, tailored for R developers, also see the sister package: [gpttools](https://jameshwade.github.io/gpttools/)
## Install the addins from this package:
```{r}
#| eval: false
install.packages("gptstudio")
```
To get a bug fix or to use a feature from the development version, you can install the development version of this package from GitHub.
```{r}
#| eval: false
# install.packages("pak")
pak::pak("MichelNivard/gptstudio")
```
## Privacy Notice for gptstudio
This privacy notice is applicable to the R package that utilizes the GPT-3 and GPT-3.5 API provided by OpenAI. By using this package, you agree to adhere to the privacy terms and conditions set by OpenAI.
### Data Sharing with OpenAI
When using this R package, the text or code that you highlight/select with your cursor, or the prompt you enter within the built-in applications, will be sent to OpenAI as part of an API request. This data sharing is governed by the privacy notice, rules, and exceptions that you agreed to with OpenAI when creating an account.
### Security and Data Usage by OpenAI
We cannot guarantee the security of the data you send to OpenAI via the API, nor can we provide details on how OpenAI processes or uses your data. However, OpenAI has stated that they utilize prompts and results to enhance their AI models, as outlined in their terms of use. You can opt-out of this data usage by contacting OpenAI directly and making an explicit request.
### Limiting Data Sharing
The R package is designed to share only the text or code that you specifically highlight/select or include in a prompt through our built-in applications. No other elements of your R environment will be shared. It is your responsibility to ensure that you do not accidentally share sensitive data with OpenAI.
**IMPORTANT: To maintain the privacy of your data, do not highlight, include in a prompt, or otherwise upload any sensitive data, code, or text that should remain confidential.**
## Prerequisites
1. Make an OpenAI account.
2. [Create an OpenAI API key](https://platform.openai.com/account/api-keys) to use with the package.
3. Set the API key up in Rstudio
### Setting OpenAI API Key
By default, API calls will look for `OPENAI_API_KEY` environment variable. If you want to set a global environment variable, you can use the following command, where `"<APIKEY>"` should be replaced with your actual key:
```{r}
#| eval: false
Sys.setenv(OPENAI_API_KEY = "<APIKEY>")
```
Otherwise, you can add the key to the .Renviron file of the project. The following commands will open .Renviron for editing:
```{r}
#| eval: false
require(usethis)
edit_r_environ(scope = "project")
```
You can add the following line to .Renviron (again, replace `"<APIKEY>"` with your actual key):
``` bash
OPENAI_API_KEY= "<APIKEY>")
```
This now set the API key every time you start up this particular project. Note: If you are using GitHub/Gitlab, do not forget to add .Renviron to .gitignore!
## Usage
Some examples of use.
### ChatGPT in RStudio
1. **Addins \> GPTSTUDIO \> ChatGPT**
2. Type your question.
3. Click "Chat"
4. Ask more questions
<video src="https://user-images.githubusercontent.com/6314313/225774512-bc0b0296-51c6-44a7-b665-e906610bed06.mov" controls="controls" muted="muted" class="d-block rounded-bottom-2 width-fit" style="max-height:640px;">
</video>
### Provide your own instructions in R, R Markdown, or Quarto files
**Addins \> GPTSTUDIO \> ChatGPT in Source:** Apply any edit what YOU desire or can dream up to a selection of code or text.
<video src="https://user-images.githubusercontent.com/6314313/225774578-72e4e966-a740-4afc-beca-1ac25abb504c.mov" controls="controls" muted="muted" class="d-block rounded-bottom-2 width-fit" style="max-height:640px;">
</video>
### Spelling ang grammar check
**Addins \> GPTSTUDIO \> Spelling and Grammar:** Takes the selected text sends it to OpenAI's best model and instructs it to return a spelling and grammar checked version.
![spelling](https://raw.githubusercontent.com/MichelNivard/gptstudio/main/media/spelling.gif)
### Comment your code:
**Addins \> GPTSTUDIO \> Comment your code:** Takes the selected text sends it to OpenAI as a prompt for a code specific model to work with, asks for a version with a comment added explaining the code line by line.
![add comments to code](https://raw.githubusercontent.com/MichelNivard/gptstudio/main/media/comments.gif)
## Code of Conduct
Please note that the gptstudio project is released with a [Contributor Code of Conduct](https://github.com/MichelNivard/gptstudio/blob/main/.github/CODE_OF_CONDUCT.md). By contributing to this project, you agree to abide by its terms.