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.")
}