php openai sdk
v3.0.0
該 PHP 函式庫為 OpenAI API 提供了一個簡單的包裝器,讓您可以輕鬆地將 OpenAI API 整合到您的 PHP 專案中。
您可以透過 Composer 安裝該程式庫:
composer require softcreatr/php-openai-sdk
首先,將庫包含在您的專案中:
<?php
require_once ' vendor/autoload.php ' ;
然後,使用您的 API 金鑰、組織(可選)、HTTP 用戶端、HTTP 請求工廠和 HTTP 流工廠建立OpenAI
類別的實例:
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 );
現在您可以使用神奇方法__call
呼叫任何支援的 OpenAI API 端點:
$ 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 許可證獲得許可。有關詳細信息,請參閱許可證文件。
薩莎·格魯埃爾 |