Pustaka PHP ini menyediakan pembungkus sederhana untuk OpenAI API, sehingga Anda dapat dengan mudah mengintegrasikan OpenAI API ke dalam proyek PHP Anda.
Anda dapat menginstal perpustakaan melalui Komposer:
composer require softcreatr/php-openai-sdk
Pertama, sertakan perpustakaan dalam proyek Anda:
<?php
require_once ' vendor/autoload.php ' ;
Lalu, buat instance kelas OpenAI
dengan kunci API, organisasi (opsional), klien HTTP, pabrik permintaan HTTP, dan pabrik aliran HTTP Anda:
use SoftCreatR OpenAI OpenAI ;
$ apiKey = ' your_api_key ' ;
$ organization = ' your_organization_id ' ; // optional
// Replace these lines with your chosen PSR-17 and PSR-18 compatible HTTP client and factories
$ httpClient = new YourChosenHttpClient ();
$ requestFactory = new YourChosenRequestFactory ();
$ streamFactory = new YourChosenStreamFactory ();
$ uriFactory = new YourChosenUriFactory ();
$ openAI = new OpenAI ( $ requestFactory , $ streamFactory , $ uriFactory , $ httpClient , $ apiKey , $ organization );
Sekarang Anda dapat memanggil titik akhir OpenAI API mana pun yang didukung menggunakan metode ajaib __call
:
$ response = $ openAI -> createChatCompletion ([
' model ' => ' gpt-4 ' ,
' messages ' => [
[ ' role ' => ' system ' , ' content ' => ' You are a helpful assistant. ' ],
[ ' role ' => ' user ' , ' content ' => ' Hello! ' ],
],
]);
// Process the API response
if ( $ response -> getStatusCode () === 200 ) {
$ responseObj = json_decode ( $ response -> getBody ()-> getContents (), true );
print_r ( $ responseObj );
} else {
echo " Error: " . $ response -> getStatusCode ();
}
Anda dapat mengaktifkan streaming waktu nyata untuk penyelesaian obrolan:
$ streamCallback = static function ( $ data ) {
if ( isset ( $ data [ ' choices ' ][ 0 ][ ' delta ' ][ ' content ' ])) {
echo $ data [ ' choices ' ][ 0 ][ ' delta ' ][ ' content ' ];
}
};
$ openAI -> createChatCompletion (
[
' model ' => ' gpt-4 ' ,
' messages ' => [
[
' role ' => ' user ' ,
' content ' => ' Tell me a story about a brave knight. ' ,
],
],
' stream ' => true ,
],
$ streamCallback
);
Untuk detail selengkapnya tentang cara menggunakan setiap titik akhir, lihat dokumentasi OpenAI API, dan contoh yang disediakan di repositori.
Di bawah ini adalah daftar metode yang didukung yang disusun berdasarkan kategori. Setiap metode tertaut ke dokumentasi OpenAI API yang sesuai dan menyertakan tautan ke contoh dalam repositori ini.
createTranscription(array $options = [])
createTranslation(array $options = [])
createSpeech(array $options = [])
createChatCompletion(array $options = [])
createEmbedding(array $options = [])
createFineTuningJob(array $options = [])
listFineTuningJobs()
retrieveFineTuningJob(array $parameters)
cancelFineTuning(array $parameters)
listFineTuningEvents(array $parameters, array $options = [])
createBatch(array $options = [])
retrieveBatch(array $parameters)
cancelBatch(array $parameters)
listBatches()
listFiles()
uploadFile(array $options = [])
deleteFile(array $parameters)
retrieveFile(array $parameters)
retrieveFileContent(array $parameters)
createUpload(array $options = [])
addUploadPart(array $parameters, array $options = [])
completeUpload(array $parameters)
cancelUpload(array $parameters)
createImage(array $options = [])
createImageEdit(array $options = [])
createImageVariation(array $options = [])
listModels()
retrieveModel(array $parameters)
deleteModel(array $parameters)
createModeration(array $options = [])
createAssistant(array $options = [])
listAssistants()
retrieveAssistant(array $parameters)
modifyAssistant(array $parameters, array $options = [])
deleteAssistant(array $parameters)
createThread(array $options = [])
retrieveThread(array $parameters)
modifyThread(array $parameters, array $options = [])
deleteThread(array $parameters)
createMessage(array $parameters, array $options = [])
listMessages(array $parameters)
retrieveMessage(array $parameters)
modifyMessage(array $parameters, array $options = [])
deleteMessage(array $parameters)
createRun(array $parameters, array $options = [])
createThreadAndRun(array $options = [])
listRuns(array $parameters)
retrieveRun(array $parameters)
modifyRun(array $parameters, array $options = [])
submitToolOutputsToRun(array $parameters, array $options = [])
cancelRun(array $parameters)
listRunSteps(array $parameters)
retrieveRunStep(array $parameters)
createVectorStore(array $options = [])
listVectorStores()
retrieveVectorStore(array $parameters)
modifyVectorStore(array $parameters, array $options = [])
deleteVectorStore(array $parameters)
createVectorStoreFile(array $parameters, array $options = [])
listVectorStoreFiles(array $parameters)
retrieveVectorStoreFile(array $parameters)
deleteVectorStoreFile(array $parameters)
createVectorStoreFileBatch(array $parameters, array $options = [])
retrieveVectorStoreFileBatch(array $parameters)
cancelVectorStoreFileBatch(array $parameters)
listVectorStoreFilesInBatch(array $parameters)
listInvites()
createInvite(array $options = [])
retrieveInvite(array $parameters)
deleteInvite(array $parameters)
listUsers()
modifyUser(array $parameters, array $options = [])
retrieveUser(array $parameters)
deleteUser(array $parameters)
listProjects()
createProject(array $options = [])
retrieveProject(array $parameters)
modifyProject(array $parameters, array $options = [])
archiveProject(array $parameters)
listProjectUsers(array $parameters)
createProjectUser(array $parameters, array $options = [])
retrieveProjectUser(array $parameters)
modifyProjectUser(array $parameters, array $options = [])
deleteProjectUser(array $parameters)
listProjectServiceAccounts(array $parameters)
createProjectServiceAccount(array $parameters, array $options = [])
retrieveProjectServiceAccount(array $parameters)
deleteProjectServiceAccount(array $parameters)
listProjectApiKeys(array $parameters)
retrieveProjectApiKey(array $parameters)
deleteProjectApiKey(array $parameters)
listAuditLogs(array $options = [])
Untuk daftar detail perubahan dan pembaruan, silakan merujuk ke file CHANGELOG.md. Kami mematuhi Versi Semantik dan mendokumentasikan perubahan penting untuk setiap rilis.
Streaming kini didukung untuk pembuatan token real-time dalam penyelesaian obrolan. Harap pastikan Anda menangani streaming dengan benar menggunakan panggilan balik, seperti yang ditunjukkan dalam contoh.
Perpustakaan ini dilisensikan di bawah Lisensi ISC. Lihat file LISENSI untuk informasi lebih lanjut.
Sasha Greuel |