Laravel implementation of chatgpt, includes models listing and retrieving, completions prediction, chat completion from conversation, edits, images creation, image edit, image variations, audio translation and transcription.
Installation
You can install the package via composer:
composer require jumbaeric/laragpt
publish config file
php artisan vendor:publish
and select laragpt package to publish.
Add openai api key to your env variable
OPENAI_API_KEY=
Usage
All methods return Array
use Jumbaeric\Laragpt\Laragpt;
// Complete
// Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.
$args = [
'prompt' => 'Brainstorm some ideas combining VR and fitness', //required
'model' => 'text-davinci-003', // required
];
Laragpt::complete($args);
// Chat
// Given a chat conversation, the model will return a chat completion response.
Laragpt::chat([
'model' => 'gpt-3.5-turbo', // required
'messages' => [ // required
[
"role" => "system",
"content" => "You are a helpful assistant."
],
[
"role" => "user",
"content" => "Who won the world series in 2020?"
],
[
"role" => "assistant",
"content" => "The Los Angeles Dodgers won the World Series in 2020."
],
[
"role" => "user",
"content" => "Where was it played?"
],
],
'temperature' => 1.0, // optional
'max_tokens' => 4000, // optional
'frequency_penalty' => 0, // optional
'presence_penalty' => 0, // optional
]);
// Audio
// trascribe: Transcribes audio into the input language.
// translate: Translates audio into into English.
$type = "transcript"; // string: Required : value can be transcript or translation
Laragpt::audio([
'model' => 'whisper-1', // required
'file' => "audio.mp3", // required
'prompt' => "", // optional
'response_format' => '', // optional
'temperature' => '', // optional
], $type);
// Edits
// Given a prompt and an instruction, the model will return an edited version of the prompt.
Laragpt::edits([
'model' => 'text-davinci-edit-001', // required
'input' => 'What day of the wek is it?',
'instruction' => 'Fix the spelling mistakes', // required
'n' => 1, // optional
'temperature' => 1, // optional
'top_p' => 1, // optional
]);
// Images
$createArr = [ // $type = create
'prompt' => 'A cute baby sea otter',
'size' => '1024x1024', // required
'n' => 1, // optional
] ;
$ceateEditArr = [ // $type = createEdit
'prompt' => 'A cute baby sea otter wearing a beret', // required
'image' => '@otter.png', //required
'mask' => '@mask.png',
'n' => 1,
'size' => '1024x1024',
];
$createVariationArr = [ // $type = variations
'image' => '@otter.png',
'n' => 2,
'size' => '1024x1024',
];
Laragpt::images($createArr, $type = 'create');
// Models
$model_id = null; // String : Optional : Lists all models when value is null, model set returns the model details
Laragpt::models($model_id);
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email jumbaeric@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.