From 7bd4a6770ee0e762e57d8b65aad8ab2900f815e5 Mon Sep 17 00:00:00 2001 From: raftaar1191 Date: Sun, 21 Sep 2025 04:55:29 +0530 Subject: [PATCH 1/2] Clarify OpenAI-Compatible Base Class Documentation for Multi-Provider Support #95 --- .../AbstractOpenAiCompatibleImageGenerationModel.php | 6 +++++- .../AbstractOpenAiCompatibleModelMetadataDirectory.php | 6 +++++- .../AbstractOpenAiCompatibleTextGenerationModel.php | 6 +++++- tests/mocks/MockOpenAiCompatibleImageGenerationModel.php | 3 +++ .../MockOpenAiCompatibleTextGenerationModel.php | 7 +++++-- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleImageGenerationModel.php b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleImageGenerationModel.php index 7200fa3f..8cf6aed8 100644 --- a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleImageGenerationModel.php +++ b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleImageGenerationModel.php @@ -24,7 +24,11 @@ use WordPress\AiClient\Results\Enums\FinishReasonEnum; /** - * Base class for an image generation model for an OpenAI compatible provider. + * Base class for an image generation model for providers that implement OpenAI's API format. + * + * This abstract class is designed to work with any AI provider that offers an OpenAI-compatible + * API endpoint for image generation, including but not limited to OpenAI, Google, and other + * providers that have adopted OpenAI's image generation API specification as a standard interface. * * @since 0.1.0 * diff --git a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleModelMetadataDirectory.php b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleModelMetadataDirectory.php index c1bda19b..48fc72fc 100644 --- a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleModelMetadataDirectory.php +++ b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleModelMetadataDirectory.php @@ -13,7 +13,11 @@ use WordPress\AiClient\Providers\Models\DTO\ModelMetadata; /** - * Base class for a model metadata directory for an OpenAI compatible provider. + * Base class for a model metadata directory for providers that implement OpenAI's API format. + * + * This abstract class is designed to work with any AI provider that offers an OpenAI-compatible + * models listing endpoint, including but not limited to OpenAI, Anthropic, Google, and other + * providers that have adopted OpenAI's models API specification as a standard interface. * * @since 0.1.0 */ diff --git a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleTextGenerationModel.php b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleTextGenerationModel.php index f48fac24..e4dd4747 100644 --- a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleTextGenerationModel.php +++ b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleTextGenerationModel.php @@ -27,7 +27,11 @@ use WordPress\AiClient\Tools\DTO\FunctionDeclaration; /** - * Base class for a text generation model for an OpenAI compatible provider. + * Base class for a text generation model for providers that implement OpenAI's API format. + * + * This abstract class is designed to work with any AI provider that offers an OpenAI-compatible + * API endpoint, including but not limited to OpenAI, Anthropic, Google, and other providers + * that have adopted OpenAI's API specification as a standard interface. * * @since 0.1.0 * diff --git a/tests/mocks/MockOpenAiCompatibleImageGenerationModel.php b/tests/mocks/MockOpenAiCompatibleImageGenerationModel.php index 81160be9..053f9003 100644 --- a/tests/mocks/MockOpenAiCompatibleImageGenerationModel.php +++ b/tests/mocks/MockOpenAiCompatibleImageGenerationModel.php @@ -14,6 +14,9 @@ /** * Mock class for AbstractOpenAiCompatibleImageGenerationModel to expose protected methods for testing. + * + * This mock represents an image generation model that implements OpenAI's API format, + * which can be used by any AI provider offering OpenAI-compatible endpoints. */ class MockOpenAiCompatibleImageGenerationModel extends AbstractOpenAiCompatibleImageGenerationModel { diff --git a/tests/unit/Providers/OpenAiCompatibleImplementation/MockOpenAiCompatibleTextGenerationModel.php b/tests/unit/Providers/OpenAiCompatibleImplementation/MockOpenAiCompatibleTextGenerationModel.php index 0b7e8549..47fa25cb 100644 --- a/tests/unit/Providers/OpenAiCompatibleImplementation/MockOpenAiCompatibleTextGenerationModel.php +++ b/tests/unit/Providers/OpenAiCompatibleImplementation/MockOpenAiCompatibleTextGenerationModel.php @@ -20,6 +20,9 @@ /** * Mock class for testing AbstractOpenAiCompatibleTextGenerationModel. + * + * This mock represents a text generation model that implements OpenAI's API format, + * which can be used by any AI provider offering OpenAI-compatible endpoints. */ class MockOpenAiCompatibleTextGenerationModel extends AbstractOpenAiCompatibleTextGenerationModel { @@ -113,9 +116,9 @@ public function exposePrepareGenerateTextParams(array $prompt): array return $this->prepareGenerateTextParams($prompt); } - public function exposeMergeSystemInstruction(array $prompt, string $systemInstruction): array + public function exposePrepareMessagesParamWithSystemInstruction(array $prompt, string $systemInstruction): array { - return $this->mergeSystemInstruction($prompt, $systemInstruction); + return $this->prepareMessagesParam($prompt, $systemInstruction); } public function exposePrepareMessagesParam(array $messages): array From eb11adae818000d3ce2f1fd07ac6759a43795797 Mon Sep 17 00:00:00 2001 From: Felix Arntz Date: Sun, 21 Sep 2025 17:35:05 -0700 Subject: [PATCH 2/2] Clarify docs. --- .../AbstractOpenAiCompatibleImageGenerationModel.php | 2 +- .../AbstractOpenAiCompatibleModelMetadataDirectory.php | 2 +- .../AbstractOpenAiCompatibleTextGenerationModel.php | 2 +- tests/mocks/MockOpenAiCompatibleImageGenerationModel.php | 3 --- .../MockOpenAiCompatibleTextGenerationModel.php | 3 --- 5 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleImageGenerationModel.php b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleImageGenerationModel.php index 8cf6aed8..ecb2cf54 100644 --- a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleImageGenerationModel.php +++ b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleImageGenerationModel.php @@ -27,7 +27,7 @@ * Base class for an image generation model for providers that implement OpenAI's API format. * * This abstract class is designed to work with any AI provider that offers an OpenAI-compatible - * API endpoint for image generation, including but not limited to OpenAI, Google, and other + * API endpoint for image generation, including but not limited to Anthropic, Google, and other * providers that have adopted OpenAI's image generation API specification as a standard interface. * * @since 0.1.0 diff --git a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleModelMetadataDirectory.php b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleModelMetadataDirectory.php index 48fc72fc..475103c1 100644 --- a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleModelMetadataDirectory.php +++ b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleModelMetadataDirectory.php @@ -16,7 +16,7 @@ * Base class for a model metadata directory for providers that implement OpenAI's API format. * * This abstract class is designed to work with any AI provider that offers an OpenAI-compatible - * models listing endpoint, including but not limited to OpenAI, Anthropic, Google, and other + * models listing endpoint, including but not limited to Anthropic, Google, and other * providers that have adopted OpenAI's models API specification as a standard interface. * * @since 0.1.0 diff --git a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleTextGenerationModel.php b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleTextGenerationModel.php index e4dd4747..75908c69 100644 --- a/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleTextGenerationModel.php +++ b/src/Providers/OpenAiCompatibleImplementation/AbstractOpenAiCompatibleTextGenerationModel.php @@ -30,7 +30,7 @@ * Base class for a text generation model for providers that implement OpenAI's API format. * * This abstract class is designed to work with any AI provider that offers an OpenAI-compatible - * API endpoint, including but not limited to OpenAI, Anthropic, Google, and other providers + * API endpoint, including but not limited to Anthropic, Google, and other providers * that have adopted OpenAI's API specification as a standard interface. * * @since 0.1.0 diff --git a/tests/mocks/MockOpenAiCompatibleImageGenerationModel.php b/tests/mocks/MockOpenAiCompatibleImageGenerationModel.php index 053f9003..81160be9 100644 --- a/tests/mocks/MockOpenAiCompatibleImageGenerationModel.php +++ b/tests/mocks/MockOpenAiCompatibleImageGenerationModel.php @@ -14,9 +14,6 @@ /** * Mock class for AbstractOpenAiCompatibleImageGenerationModel to expose protected methods for testing. - * - * This mock represents an image generation model that implements OpenAI's API format, - * which can be used by any AI provider offering OpenAI-compatible endpoints. */ class MockOpenAiCompatibleImageGenerationModel extends AbstractOpenAiCompatibleImageGenerationModel { diff --git a/tests/unit/Providers/OpenAiCompatibleImplementation/MockOpenAiCompatibleTextGenerationModel.php b/tests/unit/Providers/OpenAiCompatibleImplementation/MockOpenAiCompatibleTextGenerationModel.php index 47fa25cb..05d49837 100644 --- a/tests/unit/Providers/OpenAiCompatibleImplementation/MockOpenAiCompatibleTextGenerationModel.php +++ b/tests/unit/Providers/OpenAiCompatibleImplementation/MockOpenAiCompatibleTextGenerationModel.php @@ -20,9 +20,6 @@ /** * Mock class for testing AbstractOpenAiCompatibleTextGenerationModel. - * - * This mock represents a text generation model that implements OpenAI's API format, - * which can be used by any AI provider offering OpenAI-compatible endpoints. */ class MockOpenAiCompatibleTextGenerationModel extends AbstractOpenAiCompatibleTextGenerationModel {