Skip to content

Commit

Permalink
Add @throws annotation
Browse files Browse the repository at this point in the history
  • Loading branch information
VincentLanglet committed Dec 6, 2023
1 parent 759196c commit f126aa9
Show file tree
Hide file tree
Showing 49 changed files with 359 additions and 11 deletions.
9 changes: 9 additions & 0 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,14 @@ parameters:
excludePaths:
analyse:
- src/Testing
exceptions:
check:
missingCheckedExceptionInThrows: true
tooWideThrowType: true
implicitThrows: false
uncheckedExceptionClasses:
- Http\Discovery\Exception\NotFoundException
- LogicException
- JsonException

reportUnmatchedIgnoredErrors: true
13 changes: 13 additions & 0 deletions src/Contracts/Resources/AssistantsContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\Assistants\AssistantDeleteResponse;
use OpenAI\Responses\Assistants\AssistantListResponse;
use OpenAI\Responses\Assistants\AssistantResponse;
Expand All @@ -14,13 +15,17 @@ interface AssistantsContract
* @see https://platform.openai.com/docs/api-reference/assistants/object
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function create(array $parameters): AssistantResponse;

/**
* Retrieves an assistant.
*
* @see https://platform.openai.com/docs/api-reference/assistants/getAssistant
*
* @throws OpenAIThrowable
*/
public function retrieve(string $id): AssistantResponse;

Expand All @@ -30,13 +35,17 @@ public function retrieve(string $id): AssistantResponse;
* @see https://platform.openai.com/docs/api-reference/assistants/modifyAssistant
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function modify(string $id, array $parameters): AssistantResponse;

/**
* Delete an assistant.
*
* @see https://platform.openai.com/docs/api-reference/assistants/deleteAssistant
*
* @throws OpenAIThrowable
*/
public function delete(string $id): AssistantDeleteResponse;

Expand All @@ -46,13 +55,17 @@ public function delete(string $id): AssistantDeleteResponse;
* @see https://platform.openai.com/docs/api-reference/assistants/listAssistants
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function list(array $parameters = []): AssistantListResponse;

/**
* Manage files attached to an assistant.
*
* @see https://platform.openai.com/docs/api-reference/assistants
*
* @throws OpenAIThrowable
*/
public function files(): AssistantsFilesContract;
}
9 changes: 9 additions & 0 deletions src/Contracts/Resources/AssistantsFilesContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\Assistants\Files\AssistantFileDeleteResponse;
use OpenAI\Responses\Assistants\Files\AssistantFileListResponse;
use OpenAI\Responses\Assistants\Files\AssistantFileResponse;
Expand All @@ -14,20 +15,26 @@ interface AssistantsFilesContract
* @see https://platform.openai.com/docs/api-reference/assistants/createAssistantFile
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function create(string $assistantId, array $parameters): AssistantFileResponse;

/**
* Retrieves an AssistantFile.
*
* @see https://platform.openai.com/docs/api-reference/assistants/getAssistantFile
*
* @throws OpenAIThrowable
*/
public function retrieve(string $assistantId, string $fileId): AssistantFileResponse;

/**
* Delete an assistant file.
*
* @see https://platform.openai.com/docs/api-reference/assistants/deleteAssistantFile
*
* @throws OpenAIThrowable
*/
public function delete(string $assistantId, string $fileId): AssistantFileDeleteResponse;

Expand All @@ -37,6 +44,8 @@ public function delete(string $assistantId, string $fileId): AssistantFileDelete
* @see https://platform.openai.com/docs/api-reference/assistants/listAssistantFiles
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function list(string $assistantId, array $parameters = []): AssistantFileListResponse;
}
9 changes: 9 additions & 0 deletions src/Contracts/Resources/AudioContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\Audio\SpeechStreamResponse;
use OpenAI\Responses\Audio\TranscriptionResponse;
use OpenAI\Responses\Audio\TranslationResponse;
Expand All @@ -14,6 +15,8 @@ interface AudioContract
* @see https://platform.openai.com/docs/api-reference/audio/createSpeech
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function speech(array $parameters): string;

Expand All @@ -23,6 +26,8 @@ public function speech(array $parameters): string;
* @see https://platform.openai.com/docs/api-reference/audio/createSpeech
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function speechStreamed(array $parameters): SpeechStreamResponse;

Expand All @@ -32,6 +37,8 @@ public function speechStreamed(array $parameters): SpeechStreamResponse;
* @see https://platform.openai.com/docs/api-reference/audio/create
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function transcribe(array $parameters): TranscriptionResponse;

Expand All @@ -41,6 +48,8 @@ public function transcribe(array $parameters): TranscriptionResponse;
* @see https://platform.openai.com/docs/api-reference/audio/create
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function translate(array $parameters): TranslationResponse;
}
5 changes: 5 additions & 0 deletions src/Contracts/Resources/ChatContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\Chat\CreateResponse;
use OpenAI\Responses\Chat\CreateStreamedResponse;
use OpenAI\Responses\StreamResponse;
Expand All @@ -14,6 +15,8 @@ interface ChatContract
* @see https://platform.openai.com/docs/api-reference/chat/create
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function create(array $parameters): CreateResponse;

Expand All @@ -24,6 +27,8 @@ public function create(array $parameters): CreateResponse;
*
* @param array<string, mixed> $parameters
* @return StreamResponse<CreateStreamedResponse>
*
* @throws OpenAIThrowable
*/
public function createStreamed(array $parameters): StreamResponse;
}
5 changes: 5 additions & 0 deletions src/Contracts/Resources/CompletionsContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\Completions\CreateResponse;
use OpenAI\Responses\Completions\CreateStreamedResponse;
use OpenAI\Responses\StreamResponse;
Expand All @@ -14,6 +15,8 @@ interface CompletionsContract
* @see https://platform.openai.com/docs/api-reference/completions/create-completion
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function create(array $parameters): CreateResponse;

Expand All @@ -24,6 +27,8 @@ public function create(array $parameters): CreateResponse;
*
* @param array<string, mixed> $parameters
* @return StreamResponse<CreateStreamedResponse>
*
* @throws OpenAIThrowable
*/
public function createStreamed(array $parameters): StreamResponse;
}
3 changes: 3 additions & 0 deletions src/Contracts/Resources/EditsContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\Edits\CreateResponse;

interface EditsContract
Expand All @@ -13,6 +14,8 @@ interface EditsContract
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*
* @deprecated OpenAI has deprecated this endpoint and will stop working by January 4, 2024.
* https://openai.com/blog/gpt-4-api-general-availability#deprecation-of-the-edits-api
*/
Expand Down
3 changes: 3 additions & 0 deletions src/Contracts/Resources/EmbeddingsContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\Embeddings\CreateResponse;

interface EmbeddingsContract
Expand All @@ -12,6 +13,8 @@ interface EmbeddingsContract
* @see https://platform.openai.com/docs/api-reference/embeddings/create
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function create(array $parameters): CreateResponse;
}
11 changes: 11 additions & 0 deletions src/Contracts/Resources/FilesContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\Files\CreateResponse;
use OpenAI\Responses\Files\DeleteResponse;
use OpenAI\Responses\Files\ListResponse;
Expand All @@ -13,20 +14,26 @@ interface FilesContract
* Returns a list of files that belong to the user's organization.
*
* @see https://platform.openai.com/docs/api-reference/files/list
*
* @throws OpenAIThrowable
*/
public function list(): ListResponse;

/**
* Returns information about a specific file.
*
* @see https://platform.openai.com/docs/api-reference/files/retrieve
*
* @throws OpenAIThrowable
*/
public function retrieve(string $file): RetrieveResponse;

/**
* Returns the contents of the specified file.
*
* @see https://platform.openai.com/docs/api-reference/files/retrieve-content
*
* @throws OpenAIThrowable
*/
public function download(string $file): string;

Expand All @@ -36,13 +43,17 @@ public function download(string $file): string;
* @see https://platform.openai.com/docs/api-reference/files/upload
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function upload(array $parameters): CreateResponse;

/**
* Delete a file.
*
* @see https://platform.openai.com/docs/api-reference/files/delete
*
* @throws OpenAIThrowable
*/
public function delete(string $file): DeleteResponse;
}
13 changes: 13 additions & 0 deletions src/Contracts/Resources/FineTunesContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace OpenAI\Contracts\Resources;

use OpenAI\Exceptions\OpenAIThrowable;
use OpenAI\Responses\FineTunes\ListEventsResponse;
use OpenAI\Responses\FineTunes\ListResponse;
use OpenAI\Responses\FineTunes\RetrieveResponse;
Expand All @@ -18,34 +19,44 @@ interface FineTunesContract
* @see https://platform.openai.com/docs/api-reference/fine-tunes/create
*
* @param array<string, mixed> $parameters
*
* @throws OpenAIThrowable
*/
public function create(array $parameters): RetrieveResponse;

/**
* List your organization's fine-tuning jobs.
*
* @see https://platform.openai.com/docs/api-reference/fine-tunes/list
*
* @throws OpenAIThrowable
*/
public function list(): ListResponse;

/**
* Gets info about the fine-tune job.
*
* @see https://platform.openai.com/docs/api-reference/fine-tunes/list
*
* @throws OpenAIThrowable
*/
public function retrieve(string $fineTuneId): RetrieveResponse;

/**
* Immediately cancel a fine-tune job.
*
* @see https://platform.openai.com/docs/api-reference/fine-tunes/cancel
*
* @throws OpenAIThrowable
*/
public function cancel(string $fineTuneId): RetrieveResponse;

/**
* Get fine-grained status updates for a fine-tune job.
*
* @see https://platform.openai.com/docs/api-reference/fine-tunes/events
*
* @throws OpenAIThrowable
*/
public function listEvents(string $fineTuneId): ListEventsResponse;

Expand All @@ -55,6 +66,8 @@ public function listEvents(string $fineTuneId): ListEventsResponse;
* @see https://platform.openai.com/docs/api-reference/fine-tunes/events
*
* @return StreamResponse<RetrieveStreamedResponseEvent>
*
* @throws OpenAIThrowable
*/
public function listEventsStreamed(string $fineTuneId): StreamResponse;
}
Loading

0 comments on commit f126aa9

Please sign in to comment.