Learn R Programming

gptstudio

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.

For further addins, tailored for R developers, also see the sister package: gpttools

Getting Started: Installation & AI Service Setup

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.

# install.packages("pak")
pak::pak("MichelNivard/gptstudio")

Available AI Services and Models

AI ServiceModelsDocumentationSetup
OpenAIgpt-4-turbo, gpt-4, gpt-3.5-turbo (latest models)OpenAI API DocsOpenAI Setup
HuggingFacevariousHF Inference API DocsHF Setup
Anthropicclaude-2.1, claude-instant-1.2Anthropic API DocsAnthropic Setup
Ollamamistral, llama2, mixtral, phi (latest models)Ollama API DocsOllama Setup
Perplexitypplx-7b-chat, pplx-70b-chat, pplx-7b-online, pplx-70b-online, llama-2-70b-chat, codellama-34b-instruct, mistral-7b-instruct, and mixtral-8x7b-instructPerplexity API DocsPerplexity Setup
Google AI StudioGemini and Palm (legacy)Google AI Studio DocsGoogle AI Studio Setup
Azure OpenAIgpt-4, gpt-3.5-turbo (latest models)Azure OpenAI API DocsAzure OpenAI Setup
Coherecommand, command-light, command-nightly, command-light-nightlyCohere API DocsCohere Setup

Default AI Service: OpenAI

To get started, you must first set up an API service. The package is configured to work with several AI service providers, allowing for flexibility and choice based on your specific needs. The default configuration is set to use OpenAI’s services. To use it you need:

  1. Make an OpenAI account. Sign up here.

  2. Create an OpenAI API key to use with the package.

  3. Set the API key up in Rstudio. See the section below on configuring the API key.

Configuring OpenAI API Key

To interact with the OpenAI API, it’s required to have a valid OPENAI_API_KEY environment variable. Here are the steps to configure it.

You can establish this environment variable globally by including it in your project’s .Renviron file. This approach ensures that the environment variable persists across all sessions as the Shiny app runs in the background.

Here is a set of commands to open the .Renviron file for modification:

require(usethis)
edit_r_environ()

For a persistent setting that loads every time you launch this project, add the following line to .Renviron, replacing "<APIKEY>" with your actual API key:

OPENAI_API_KEY="<APIKEY>"

Caution: If you’re using version control systems like GitHub or GitLab, remember to include .Renviron in your .gitignore file to prevent exposing your API key!

Important Note: OpenAI API will not function without valid payment details entered into your OpenAI account. This is a restriction imposed by OpenAI and is unrelated to this package.

Alternative AI Service Providers

While OpenAI is the default and currently considered one of the most robust options, gptstudio is also compatible with other AI service providers. These include Anthropic, HuggingFace, Google AI Studio, Azure OpenAI, and Perplexity. You can select any of these providers based on your preference or specific requirements. You can also run local models with Ollama. This requires more setup but at the benefit of not sharing your data with any third party.

To use an alternative provider, you will need to obtain the relevant API key or access credentials from the chosen provider and configure them similarly.

Privacy Notice for gptstudio

This privacy notice is applicable to the R package that uses popular language models like gpt-4 turbo and claude-2.1. By using this package, you agree to adhere to the privacy terms and conditions set by the API service.

Data Sharing with AI Services

When using this R package, any text or code you highlight/select with your cursor, or the prompt you enter within the built-in applications, will be sent to the selected AI service provider (e.g., OpenAI, Anthropic, HuggingFace, Google AI Studio, Azure OpenAI) as part of an API request. This data sharing is governed by the privacy notice, rules, and exceptions that you agreed to with the respective service provider when creating an account.

Security and Data Usage by AI Service Providers

We cannot guarantee the security of the data you send via the API to any AI service provider, nor can we provide details on how each service processes or uses your data. However, these providers often state that they use prompts and results to enhance their AI models, as outlined in their terms of use. Be sure to review the terms of use of the respective AI service provider directly.

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 unless you turn those features on. It is your responsibility to ensure that you do not accidentally share sensitive data with any AI service provider.

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.

Code of Conduct

Please note that the gptstudio project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Copy Link

Version

Install

install.packages('gptstudio')

Monthly Downloads

1,075

Version

0.4.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

James Wade

Last Published

May 21st, 2024

Functions in gptstudio (0.4.0)

create_completion_google

Generate text completions using Google AI Studio's API
create_completion_huggingface

Generate text completions using HuggingFace's API
gptstudio_chat

Run Chat GPT Run the Chat GPT Shiny App as a background job and show it in the viewer pane
gptstudio_chat_in_source_addin

ChatGPT in Source
create_completion_perplexity

Create a chat completion request to the Perplexity API
gptstudio_comment_code

Comment Code Addin
query_api_cohere

Send a request to the Cohere Chat API and return the response
request_base_anthropic

Base for a request to the Anthropic API
gptstudio_spelling_grammar

Spelling and Grammar Addin
request_base

Base for a request to the OPENAI API
mod_chat_server

Chat server
mod_app_server

App Server
mod_app_ui

App UI
get_available_models

List supported models
%>%

Pipe operator
request_base_perplexity

Base for a request to the Perplexity API
openai_create_chat_completion

Generate text completions using OpenAI's API for Chat
request_base_huggingface

Base for a request to the HuggingFace API
gptstudio_create_skeleton

Create a Request Skeleton
gptstudio_sitrep

Current Configuration for gptstudio
query_api_huggingface

A function that sends a request to the HuggingFace API and returns the response.
query_api_perplexity

Send a request to the Perplexity API and return the response
query_api_google

A function that sends a request to the Google AI Studio API and returns the response.
create_translator

Internationalization for the ChatGPT addin
create_tmp_job_script

Create a temporary job script
mod_chat_ui

Chat UI
open_bg_shinyapp

Open browser to local Shiny app
query_openai_api

A function that sends a request to the OpenAI API and returns the response.
random_port

Generate a random safe port number
run_app_as_bg_job

Run an R Shiny app in the background
rgb_str_to_hex

RGB str to hex
create_ide_matching_colors

Chat message colors in RStudio
request_base_cohere

Base for a request to the Cohere Chat API
gptstudio_response_process

Call API
request_base_google

Base for a request to the Google AI Studio API
gptstudio_request_perform

Perform API Request
streamingMessage-shiny

Shiny bindings for streamingMessage
prepare_chat_history

Prepare chat completion prompt
stream_chat_completion

Stream Chat Completion
gptstudio_skeleton_build

Construct a GPT Studio request skeleton.
run_chatgpt_app

Run the ChatGPT app
query_api_anthropic

A function that sends a request to the Anthropic API and returns the response.
text_area_input_wrapper

Custom textAreaInput
style_chat_history

Style Chat History
style_chat_message

Style chat message
welcomeMessage

Welcome message
welcomeMessage-shiny

Shiny bindings for welcomeMessage
streamingMessage

Streaming message
chat

Chat Interface for gptstudio
create_chat_cohere

Create a chat with the Cohere Chat API
create_completion_anthropic

Generate text completions using Anthropic's API
create_chat_app_theme

Chat App Theme
chat_message_default

Default chat message
create_completion_azure_openai

Generate text using Azure OpenAI's API
chat_create_system_prompt

Create system prompt
chat_history_append

Append to chat history
OpenaiStreamParser

Stream handler for chat completions
check_api_connection_openai

Check API Connection
get_ide_theme_info

Get IDE theme information.
get_available_endpoints

List supported endpoints
gptstudio-package

gptstudio: Use Large Language Models Directly in your Development Environment