ceytek-labs / openai
A lightweight library for seamless integration with the OpenAI API in PHP.
Requires
- php: ^8.1
README
OpenAI - ChatGPT API Library
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.
Requirements
- PHP 8.1 or higher
Installation
You can add this package to your project via Composer:
composer require ceytek-labs/openai
Services
Audio Processing
This function provides easy integration with OpenAI’s TTS and transcription services.
Example Usage
The following example demonstrates how to update data in a Audio Processing document:
Audio Processing: Create Speech
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(); }
Audio Processing: Create Transcription
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
Chat completion features provide flexible options for text and image-based conversations.
Example Usage
The following example demonstrates how to update data in a Chat Completion document:
Chat Completion: Text Completion
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(); }
Chat Completion: Image Recognition
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(); }
Model Management
Easily manage models to get information about available or specific models.
Example Usage
The following example demonstrates how to update data in a Model Management document:
Model Management: Available Models List
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(); }
Model Management: Retrieve Model Information
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(); }
Contributing
Feel free to submit a pull request or report an issue. Any contributions and feedback are highly appreciated!
License
This project is licensed under the MIT License.