توفر مكتبة PHP هذه غلافًا بسيطًا لـ OpenAI API، مما يسمح لك بدمج OpenAI API بسهولة في مشاريع PHP الخاصة بك.
يمكنك تثبيت المكتبة عبر Composer:
composer require softcreatr/php-openai-sdkأولاً، قم بتضمين المكتبة في مشروعك:
<?php
require_once ' vendor/autoload.php ' ; بعد ذلك، قم بإنشاء مثيل لفئة OpenAI باستخدام مفتاح API الخاص بك، والمؤسسة (اختياري)، وعميل HTTP، ومصنع طلب HTTP، ومصنع دفق HTTP:
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 ); يمكنك الآن الاتصال بأي نقطة نهاية OpenAI API مدعومة باستخدام الطريقة السحرية __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 ();
}يمكنك تمكين البث في الوقت الفعلي لاستكمال الدردشة:
$ 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
);لمزيد من التفاصيل حول كيفية استخدام كل نقطة نهاية، راجع وثائق OpenAI API والأمثلة المتوفرة في المستودع.
فيما يلي قائمة بالطرق المدعومة مرتبة حسب الفئة. ترتبط كل طريقة بوثائق OpenAI API المقابلة لها وتتضمن رابطًا لمثال في هذا المستودع.
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 = [])للحصول على قائمة مفصلة بالتغييرات والتحديثات، الرجاء الرجوع إلى ملف CHANGELOG.md. نحن نلتزم بالإصدار الدلالي ونوثق التغييرات الملحوظة لكل إصدار.
يتم الآن دعم البث لإنشاء الرموز المميزة في الوقت الفعلي في عمليات إكمال الدردشة. الرجاء التأكد من أنك تتعامل مع التدفقات بشكل صحيح باستخدام رد الاتصال، كما هو موضح في الأمثلة.
هذه المكتبة مرخصة بموجب ترخيص ISC. راجع ملف الترخيص لمزيد من المعلومات.
ساشا جريويل |