NAME
OpenAI::API::Request::Chat - chat endpoint
SYNOPSIS
use OpenAI::API::Request::Chat;
my $chat = OpenAI::API::Request::Chat->new(
messages => [
{ "role" => "system", "content" => "You are a helpful assistant." },
],
);
my $res = $chat->send_message('Who won the world series in 2020?');
DESCRIPTION
Given a chat conversation, the model will return a chat completion response (similar to ChatGPT).
METHODS
new()
model
ID of the model to use.
See Models overview for a reference of them.
messages
The messages to generate chat completions for, in the chat format.
max_tokens [optional]
The maximum number of tokens to generate.
Most models have a context length of 2048 tokens (except for the newest models, which support 4096.
temperature [optional]
What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
top_p [optional]
An alternative to sampling with temperature, called nucleus sampling.
We generally recommend altering this or
temperature
but not both.n [optional]
How many completions to generate for each prompt.
Use carefully and ensure that you have reasonable settings for
max_tokens
andstop
.stop [optional]
Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
frequency_penalty [optional]
Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far.
presence_penalty [optional]
Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far.
user [optional]
A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.
send()
Sends the request and returns a data structured similar to the one documented in the API reference.
send_async()
Send a request asynchronously. Returns a future that will be resolved with the decoded JSON response. See OpenAI::API::Request for an example.
add_message($role, $content)
Appends a message to the list of messages without sending a request.
Returns $self
, so it can be chained with send
or send_async
:
my $res = OpenAI::API::Request::Chat->new()->add_message( user => 'Hi!' )->send();
send_message($content)
Sends a single message as user, appending messages to the conversation automatically. This allows you to treat the OpenAI::API::Request::Chat
object as a "chat" instead of a single request:
my $chat = OpenAI::API::Request::Chat->new();
my $res1 = $chat->send_message("Hello!");
print "$res1\n";
my $res2 = $chat->send_message("What can you do?");
print "$res2\n";
SEE ALSO
OpenAI API Reference: Chat