The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Type: Package
Title: Chat Completion and Text Annotation with Local and OpenAI Models
Version: 1.0.0
Maintainer: Jason Timm <JaTimm@salud.unm.edu>
Description: Enables chat completion and text annotation with local and 'OpenAI' https://openai.com/ language models, supporting batch processing, multiple annotators, and consistent output formats.
License: MIT + file LICENSE
Encoding: UTF-8
Depends: R (≥ 3.5)
Imports: data.table, httr, jsonlite, pbapply, reticulate
RoxygenNote: 7.3.1
URL: https://github.com/jaytimm/hollr
BugReports: https://github.com/jaytimm/hollr/issues
NeedsCompilation: no
Packaged: 2024-10-11 16:22:19 UTC; jtimm
Author: Jason Timm [aut, cre]
Repository: CRAN
Date/Publication: 2024-10-15 15:30:05 UTC

LLM Completions

Description

This function generates text using the OpenAI API or a local model.

Usage

hollr(
  id,
  user_message = "",
  annotators = 1,
  model,
  temperature = 1,
  top_p = 1,
  max_tokens = NULL,
  max_length = 1024,
  max_new_tokens = NULL,
  system_message = "",
  force_json = TRUE,
  flatten_json = TRUE,
  max_attempts = 10,
  openai_api_key = Sys.getenv("OPENAI_API_KEY"),
  openai_organization = NULL,
  cores = 1,
  batch_size = 1,
  extract_json = TRUE,
  verbose = TRUE
)

Arguments

id

A unique identifier for the request.

user_message

The message provided by the user.

annotators

The number of annotators (default is 1).

model

The name of the model to use.

temperature

The temperature for the model's output (default is 1).

top_p

The top-p sampling value (default is 1).

max_tokens

The maximum number of tokens to generate (default is NULL).

max_length

The maximum length of the input prompt (default is 1024, for local models only).

max_new_tokens

The maximum number of new tokens to generate (default is NULL, for local models only).

system_message

The message provided by the system (default is ”).

force_json

A logical indicating whether the output should be JSON (default is TRUE).

flatten_json

A logical indicating whether the output should be converted to DF (default is TRUE).

max_attempts

The maximum number of attempts to make for generating valid output (default is 10).

openai_api_key

The API key for the OpenAI API (default is retrieved from environment variables).

openai_organization

The organization ID for the OpenAI API (default is NULL).

cores

The number of cores to use for parallel processing (default is 1).

batch_size

The number of batch_size to process (default is 1, only for local models).

extract_json

A logical indicating whether to extract and clean JSON strings from the response (default is TRUE).

verbose

A logical indicating whether to show progress and other messages (default is TRUE).

Value

A data.table containing the generated text and metadata.

Examples

# Example using the OpenAI API
if (nzchar(Sys.getenv("OPENAI_API_KEY"))) {
  result <- hollr(id = "example_id", 
                  user_message = "What is the capital of France?", 
                  model = "gpt-3.5-turbo", 
                  openai_api_key = Sys.getenv("OPENAI_API_KEY"))
  print(result)
} else {
  message("OpenAI API key is not available. Example not run.")
}

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.