NAME
OpenAI::API - Perl interface to OpenAI API
SYNOPSIS
{
use OpenAI::API;
my $openai = OpenAI::API->new(); # uses OPENAI_API_KEY environment variable
my $res = $openai->chat(
model => "gpt-3.5-turbo",
messages => [
{ "role" => "system", "content" => "You are a helpful assistant." },
{ "role" => "user", "content" => "How can I access OpenAI's APIs in Perl?" },
{ "role" => "assistant", "content" => "You can use the OpenAI::API module." },
{ "role" => "user", "content" => "How do I use this module?" },
],
max_tokens => 20,
temperature => 0,
);
}
# that's roughly the same as:
{
use OpenAI::API::Request::Chat;
my $request = OpenAI::API::Request::Chat->new(
model => "gpt-3.5-turbo",
messages => [
{ "role" => "system", "content" => "You are a helpful assistant." },
{ "role" => "user", "content" => "How can I access OpenAI's APIs in Perl?" },
{ "role" => "assistant", "content" => "You can use the OpenAI::API module." },
{ "role" => "user", "content" => "How do I use this module?" },
],
max_tokens => 20,
temperature => 0,
);
my $res = $request->send();
my $message = $res->{choices}[0]{message};
}
DESCRIPTION
OpenAI::API is a Perl module that provides an interface to the OpenAI API, which allows you to generate text, translate languages, summarize text, and perform other tasks using the language models developed by OpenAI.
To use the OpenAI::API module, you will need an API key, which you can obtain by signing up for an account on the OpenAI website.
METHODS
OpenAI::API acts as a high-level interface for the OpenAI API, handling different actions while utilizing the configuration class.
new()
Creates a new OpenAI::API object.
config [optional]
An OpenAI::API::Config object including the following properties:
api_key [optional]
Your API key. Default:
$ENV{OPENAI_API_KEY}
.Attention: never commit API keys to your repository. Use the
OPENAI_API_KEY
environment variable instead.api_base [optional]
The api_base URL for the OpenAI API. Default: 'https://api.openai.com/v1/'.
timeout [optional]
The timeout value, in seconds. Default: 60 seconds.
chat()
Chat request.
completions()
Completion request.
edits()
Edit request.
embeddings()
Embedding request.
files()
File List request.
file_retrieve()
File Retrieve request.
image_create()
Image Generation request.
models()
Model List request.
model_retrieve()
Model Retrieve request.
moderations()
Moderation request.
RESOURCES
SEE ALSO
AUTHOR
Nelson Ferraz <nferraz@gmail.com>
SUPPORT
This module is developed on GitHub.
Send ideas, feedback, tasks, or bugs to GitHub Issues.
COPYRIGHT AND LICENSE
Copyright (C) 2022, 2023 by Nelson Ferraz
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.30.2 or, at your option, any later version of Perl 5 you may have available.