OpenAI - ChatGPT API Library is a lightweight and extensible library designed to simplify your interaction with OpenAI APIs in PHP. With this library, you can create speech, transcriptions, chat completions, and more.
Disclaimer: This package is not an official product of OpenAI. The developers accept no responsibility for any issues, discrepancies, or damages that may arise from its use.
- PHP 8.1 or higher
You can add this package to your project via Composer:
composer require ceytek-labs/openai
This function provides easy integration with OpenAI’s TTS and transcription services.
The following example demonstrates how to update data in a Audio Processing document:
This feature allows you to convert text to speech using a specified TTS model and voice.
use CeytekLabs\OpenAI\OpenAI;
use CeytekLabs\OpenAI\Enums\TTSModel;
use CeytekLabs\OpenAI\Enums\Voice;
try {
$openai = OpenAI::make('<your-key-here>')
->audio()
->createSpeech()
->setModel(TTSModel::TTS_1)
->setInput('The quick brown fox jumped over the lazy dog.')
->setVoice(Voice::Shimmer)
->ask();
print_r($openai->getResponse());
} catch (\Exception $exception) {
echo $exception->getMessage();
}
This function transcribes audio files into text, accepting various audio formats.
use CeytekLabs\OpenAI\OpenAI;
try {
$openai = OpenAI::make('<your-key-here>')
->audio()
->createTranscription()
->setFile(__DIR__.'/speeches/speech1.mp3')
->ask();
print_r($openai->getResponse());
} catch (\Exception $exception) {
echo $exception->getMessage();
}
Chat completion features provide flexible options for text and image-based conversations.
The following example demonstrates how to update data in a Chat Completion document:
Generates a text-based response based on a given prompt.
use CeytekLabs\OpenAI\OpenAI;
use CeytekLabs\OpenAI\Enums\Model;
try {
$openai = OpenAI::make('<your-key-here>')
->chat()
->createCompletion()
->setModel(Model::GPT_3_5_TURBO_0125)
->setPrompt('give your answer as json and keep it simple')
->ask('What is your name');
print_r($openai->getResponse());
} catch (\Exception $exception) {
echo $exception->getMessage();
}
This feature enables the library to analyze and interpret images.
use CeytekLabs\OpenAI\OpenAI;
use CeytekLabs\OpenAI\Enums\Model;
try {
$openai = OpenAI::make('<your-key-here>')
->chat()
->createImageCompletion()
->setModel(Model::GPT_4_TURBO)
->ask('What is in this image', 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg');
print_r($openai->getResponse());
} catch (\Exception $exception) {
echo $exception->getMessage();
}
Easily manage models to get information about available or specific models.
The following example demonstrates how to update data in a Model Management document:
Retrieve a list of all available models.
use CeytekLabs\OpenAI\OpenAI;
try {
$openai = OpenAI::make('<your-key-here>')
->model()
->availableList()
->ask();
print_r($openai->getResponse());
} catch (\Exception $exception) {
echo $exception->getMessage();
}
Get details about a specific model.
use CeytekLabs\OpenAI\OpenAI;
use CeytekLabs\OpenAI\Enums\Model;
try {
$openai = OpenAI::make('<your-key-here>')
->model()
->retrieve()
->ask(Model::GPT_4O_MINI);
print_r($openai->getResponse());
} catch (\Exception $exception) {
echo $exception->getMessage();
}
Feel free to submit a pull request or report an issue. Any contributions and feedback are highly appreciated!
This project is licensed under the MIT License.