shevant / open-ai-client
A PHP client for the Open AI API
Requires
- php: ^8.1.0
- nyholm/psr7: ^1.8
- php-http/discovery: ^1.17
- psr/http-client: ^1.0
- psr/http-client-implementation: *
- psr/http-factory-implementation: *
- symfony/http-client: ^7.1
Requires (Dev)
- guzzlehttp/guzzle: ^7.0
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^9.0
- rector/rector: ^1.1.0
README
ChatGptClient is an API client for the OpenAI API, providing a convenient interface for interacting with various OpenAI resources.
Get Started
Requires PHP 8.1+
First, install OpenAI via the Composer package manager:
composer require shevant/open-ai-client
Ensure that the php-http/discovery
composer plugin is allowed to run or install a client manually if your project does not already have a PSR-18 client integrated.
composer require guzzlehttp/guzzle
Running Tests
To run all tests, use the following command:
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests
If PHPUnit is installed globally, you can run:
phpunit --bootstrap vendor/autoload.php tests
##Usage
require 'vendor/autoload.php'; use OpenAiClient\OpenAiClient; use GuzzleHttp\Client; $transport = new Client(); $apiKey = 'your-api-key'; $client = new OpenAiClient($transport, $apiKey); // Working with audio resources $audio = $client->audio(); // Use $audio methods to interact with audio resources // Working with chat resources $chat = $client->chat(); // Use $chat methods to interact with chat resources // Working with vector stores $vectorStores = $client->vectorStores();
Resources
The client provides access to the following OpenAI resources:
-
Audio
: Interact with audio resources.public function createSpeech(array $params): array; public function createTranscription(array $params): array; public function createTranslation(array $params): array;
-
Chat
: Interact with chat resources.public function createChatCompletion(array $params): array;
-
Embeddings
: Interact with embeddings.public function createCreateEmbeddings(array $params): array;
-
FineTuning
: Interact with fine-tuning models.public function createFineTuningJob(array $params): array; public function listFineTuningJobs(array $params): array; public function listFineTuningEvents(string $fineTuningJobId, array $params): array; public function listFineTuningCheckpoints(string $fineTuningJobId, array $params): array; public function retrieveFineTuningJob(string $fineTuningJobId): array; public function cancelFineTuning(string $fineTuningJobId): array;
-
Batch
: Interact with batch operations.public function createBatch(array $params): array; public function retrieveBatch(string $batchId): array; public function cancelBatch(string $batchId): array; public function listBatch(array $params): array;
-
Files
: Interact with files.public function uploadFile(array $params): array; public function listFiles(string $batchId): array; public function retrieveFile(string $fileId): array; public function deleteFile(string $fileId): array; public function retrieveFileContent(string $fileId): array;
-
Images
: Interact with images.public function createImage(array $params): array; public function createImageEdit(array $params): array; public function createImageVariation(array $params): array;
-
Models
: Interact with models.public function listModels(): array; public function retrieveModel(string $model): array; public function deleteFineTunedModel(string $model): array;
-
Moderations
: Interact with moderations.public function createModeration(array $params): array;
-
Assistants
: Interact with assistants.public function createAssistant(array $params): array; public function listAssistants(array $params): array; public function retrieveAssistant(string $assistantId): array; public function modifyAssistant(string $assistantId, array $params): array; public function deleteAssistant(string $assistantId): array;
-
Threads
: Interact with threads.public function createThread(array $params): array; public function retrieveThread(string $threadId): array; public function modifyThread(string $threadId, array $params): array; public function modifyAssistant(string $assistantId, array $params): array; public function deleteThread(string $threadId): array;
-
Messages
: Interact with messages.public function createMessage(string $threadId, array $params): array; public function listMessages(string $threadId, array $params): array; public function retrieveMessage(string $threadId, string $messageId): array; public function modifyMessage(string $threadId, string $messageId, array $params): array; public function deleteMessage(string $threadId, string $messageId): array;
-
Runs
: Interact with runs.public function createRun(string $threadId, array $params): array; public function createThreadAndRun(array $params): array; public function listRuns(string $threadId, array $params): array; public function retrieveRun(string $threadId, string $runId): array; public function modifyRun(string $threadId, string $runId, array $params): array; public function submitToolOutputsToRun(string $threadId, string $runId, array $params): array; public function cancelRun(string $threadId, string $runId): array;
-
RunSteps
: Interact with run steps.public function listRunSteps(string $threadId, string $runId, array $params): array; public function retrieveRunStep(string $threadId, string $runId, string $stepId): array;
-
VectorStores
: Interact with vector stores.public function createVectorStore(array $params): array; public function listVectorStore(array $params): array; public function retrieveVectorStore(string $vectorStoreId): array; public function modifyVectorStore(string $vectorStoreId, array $params): array; public function deleteVectorStore(string $vectorStoreId): array;
-
VectorStoreFiles
: Interact with vector store files.public function createVectorStoreFile(string $vectorStoreId, array $params): array; public function listVectorStoreFiles(string $vectorStoreId, array $params): array; public function retrieveVectorStoreFile(string $vectorStoreId, string $fileId): array; public function deleteVectorStoreFile(string $vectorStoreId, string $fileId): array;
-
VectorStoreFileBatches
: Interact with vector store file batches.public function createVectorStoreFileBatch(string $vectorStoreId, array $params): array; public function retrieveVectorStoreFileBatch(string $vectorStoreId, string $batchId): array; public function cancelVectorStoreFileBatch(string $vectorStoreId, string $batchId): array; public function listVectorStoreFilesBatch(string $vectorStoreId, string $batchId): array;