/gpttools

gpttools extends gptstudio for package development to help you document code, write tests, or even explain code

Primary LanguageROtherNOASSERTION

gpttools

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. CRAN status gpttools status badge Codecov test coverage Lifecycle: experimental R-CMD-check Last Commit pre-commit

The goal of gpttools is to extend gptstudio for R package developers to more 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) is an area of very active discussion.

Installation

Install from GitHub with {pak}

# install.packages("pak")
pak::pak("JamesHWade/gpttools")

Install from R-Universe

# Enable repository from jameshwade
options(repos = c(
  jameshwade = "https://jameshwade.r-universe.dev",
  CRAN = "https://cloud.r-project.org"
))
# Download and install gpttools in R
install.packages("gpttools")
# Browse the gpttools manual pages
help(package = "gpttools")

Available AI Services and Models

AI Service Models Documentation Setup
OpenAI gpt-4-turbo, gpt-4, gpt-3.5-turbo (latest models) OpenAI API Docs OpenAI Setup
HuggingFace various HF Inference API Docs HF Setup
Anthropic claude-2.1, claude-instant-1.2 Anthropic API Docs Anthropic Setup
Ollama mistral, llama2, mixtral, phi (latest models) Ollama API Docs Ollama Setup
Perplexity pplx-7b-chat, pplx-70b-chat, pplx-7b-online, pplx-70b-online, llama-2-70b-chat, codellama-34b-instruct, mistral-7b-instruct, and mixtral-8x7b-instruct Perplexity API Docs Perplexity Setup
Google AI Studio Gemini and Palm (legacy) Google AI Studio Docs Google AI Studio Setup
Azure OpenAI gpt-4, gpt-3.5-turbo (latest models) Azure OpenAI API Docs Azure OpenAI 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, gpttools 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 gpttools

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 gpttools project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.