diff --git a/src/Assert.php b/src/Assert.php new file mode 100644 index 0000000..eeefdbe --- /dev/null +++ b/src/Assert.php @@ -0,0 +1,21 @@ + + */ +final class Assert extends \Webmozart\Assert\Assert +{ + #[\Override] + protected static function reportInvalidArgument($message) + { + throw new InvalidArgumentException($message); + } +} diff --git a/src/Model/Completion/CompletionConfig.php b/src/Model/Completion/CompletionConfig.php index 27b084a..fae9e4e 100644 --- a/src/Model/Completion/CompletionConfig.php +++ b/src/Model/Completion/CompletionConfig.php @@ -13,7 +13,7 @@ namespace Devscast\Lugha\Model\Completion; -use Webmozart\Assert\Assert; +use Devscast\Lugha\Assert; /** * Class CompletionConfig. diff --git a/src/Model/Completion/Prompt/PromptTemplate.php b/src/Model/Completion/Prompt/PromptTemplate.php index 49a767b..a1a6af4 100644 --- a/src/Model/Completion/Prompt/PromptTemplate.php +++ b/src/Model/Completion/Prompt/PromptTemplate.php @@ -13,9 +13,9 @@ namespace Devscast\Lugha\Model\Completion\Prompt; +use Devscast\Lugha\Assert; use Devscast\Lugha\Exception\UnformattedPromptTemplateException; use Devscast\Lugha\Exception\UnreadableFileException; -use Webmozart\Assert\Assert; /** * Class PromptTemplate. diff --git a/src/Model/Completion/Tools/FunctionInfo.php b/src/Model/Completion/Tools/FunctionInfo.php index 526cd9a..3539cdd 100644 --- a/src/Model/Completion/Tools/FunctionInfo.php +++ b/src/Model/Completion/Tools/FunctionInfo.php @@ -13,7 +13,7 @@ namespace Devscast\Lugha\Model\Completion\Tools; -use Webmozart\Assert\Assert; +use Devscast\Lugha\Assert; /** * Class FunctionInfo. diff --git a/src/Model/Completion/Tools/Parameter.php b/src/Model/Completion/Tools/Parameter.php index 0d992c1..7270568 100644 --- a/src/Model/Completion/Tools/Parameter.php +++ b/src/Model/Completion/Tools/Parameter.php @@ -13,7 +13,7 @@ namespace Devscast\Lugha\Model\Completion\Tools; -use Webmozart\Assert\Assert; +use Devscast\Lugha\Assert; /** * Class Parameter. diff --git a/src/Model/Embedding/DimensionReducer.php b/src/Model/Embedding/DimensionReducer.php index d4913ca..66285a7 100644 --- a/src/Model/Embedding/DimensionReducer.php +++ b/src/Model/Embedding/DimensionReducer.php @@ -13,7 +13,7 @@ namespace Devscast\Lugha\Model\Embedding; -use Webmozart\Assert\Assert; +use Devscast\Lugha\Assert; /** * Class DimensionReducer. diff --git a/src/Model/Embedding/Distance.php b/src/Model/Embedding/Distance.php index 856c87b..cba9f98 100644 --- a/src/Model/Embedding/Distance.php +++ b/src/Model/Embedding/Distance.php @@ -13,6 +13,8 @@ namespace Devscast\Lugha\Model\Embedding; +use Devscast\Lugha\Exception\InvalidArgumentException; + /** * Class Distance. * Represents the distance metric to use when comparing vectors. @@ -48,7 +50,7 @@ enum Distance public function compute(array $a, array $b): float { if (count($a) !== count($b)) { - throw new \InvalidArgumentException('Vectors must have the same dimension.'); + throw new InvalidArgumentException('Vectors must have the same dimension.'); } return match ($this) { diff --git a/src/Model/Embedding/EmbeddingConfig.php b/src/Model/Embedding/EmbeddingConfig.php index c51bbf8..afeb266 100644 --- a/src/Model/Embedding/EmbeddingConfig.php +++ b/src/Model/Embedding/EmbeddingConfig.php @@ -13,7 +13,7 @@ namespace Devscast\Lugha\Model\Embedding; -use Webmozart\Assert\Assert; +use Devscast\Lugha\Assert; /** * Class EmbeddingConfig. diff --git a/src/Model/Reranking/RerankingConfig.php b/src/Model/Reranking/RerankingConfig.php index f15859d..804bafd 100644 --- a/src/Model/Reranking/RerankingConfig.php +++ b/src/Model/Reranking/RerankingConfig.php @@ -13,7 +13,7 @@ namespace Devscast\Lugha\Model\Reranking; -use Webmozart\Assert\Assert; +use Devscast\Lugha\Assert; /** * Class RerankingConfig. diff --git a/src/Provider/ProviderConfig.php b/src/Provider/ProviderConfig.php index bd7c44e..e10940b 100644 --- a/src/Provider/ProviderConfig.php +++ b/src/Provider/ProviderConfig.php @@ -13,7 +13,7 @@ namespace Devscast\Lugha\Provider; -use Webmozart\Assert\Assert; +use Devscast\Lugha\Assert; /** * Class ProviderConfig. diff --git a/src/Provider/Service/Client/GoogleClient.php b/src/Provider/Service/Client/GoogleClient.php index 1a72b0a..3db94ff 100644 --- a/src/Provider/Service/Client/GoogleClient.php +++ b/src/Provider/Service/Client/GoogleClient.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Provider\Service\Client; +use Devscast\Lugha\Assert; use Devscast\Lugha\Exception\ServiceIntegrationException; use Devscast\Lugha\Model\Completion\Chat\History; use Devscast\Lugha\Model\Completion\CompletionConfig; @@ -23,7 +24,6 @@ use Devscast\Lugha\Provider\Service\Client; use Devscast\Lugha\Provider\Service\HasCompletionSupport; use Devscast\Lugha\Provider\Service\HasEmbeddingSupport; -use Webmozart\Assert\Assert; /** * Class GoogleClient. diff --git a/src/Provider/Service/Client/MistralClient.php b/src/Provider/Service/Client/MistralClient.php index b732f29..f607516 100644 --- a/src/Provider/Service/Client/MistralClient.php +++ b/src/Provider/Service/Client/MistralClient.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Provider\Service\Client; +use Devscast\Lugha\Assert; use Devscast\Lugha\Exception\ServiceIntegrationException; use Devscast\Lugha\Model\Completion\Chat\History; use Devscast\Lugha\Model\Completion\CompletionConfig; @@ -23,7 +24,6 @@ use Devscast\Lugha\Provider\Service\Client; use Devscast\Lugha\Provider\Service\HasCompletionSupport; use Devscast\Lugha\Provider\Service\HasEmbeddingSupport; -use Webmozart\Assert\Assert; /** * Class MistralClient. diff --git a/src/Provider/Service/Client/OllamaClient.php b/src/Provider/Service/Client/OllamaClient.php index d5b52a7..b375e29 100644 --- a/src/Provider/Service/Client/OllamaClient.php +++ b/src/Provider/Service/Client/OllamaClient.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Provider\Service\Client; +use Devscast\Lugha\Assert; use Devscast\Lugha\Exception\ServiceIntegrationException; use Devscast\Lugha\Model\Completion\Chat\History; use Devscast\Lugha\Model\Completion\CompletionConfig; @@ -23,7 +24,6 @@ use Devscast\Lugha\Provider\Service\Client; use Devscast\Lugha\Provider\Service\HasCompletionSupport; use Devscast\Lugha\Provider\Service\HasEmbeddingSupport; -use Webmozart\Assert\Assert; /** * Class OllamaClient. diff --git a/src/Provider/Service/Client/OpenAIClient.php b/src/Provider/Service/Client/OpenAIClient.php index 740bc44..96402b7 100644 --- a/src/Provider/Service/Client/OpenAIClient.php +++ b/src/Provider/Service/Client/OpenAIClient.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Provider\Service\Client; +use Devscast\Lugha\Assert; use Devscast\Lugha\Exception\ServiceIntegrationException; use Devscast\Lugha\Model\Completion\Chat\History; use Devscast\Lugha\Model\Completion\CompletionConfig; @@ -23,7 +24,6 @@ use Devscast\Lugha\Provider\Service\Client; use Devscast\Lugha\Provider\Service\HasCompletionSupport; use Devscast\Lugha\Provider\Service\HasEmbeddingSupport; -use Webmozart\Assert\Assert; /** * Class OpenAIClient. diff --git a/src/Provider/Service/Client/VoyagerClient.php b/src/Provider/Service/Client/VoyagerClient.php index 7fde3b9..b21ccff 100644 --- a/src/Provider/Service/Client/VoyagerClient.php +++ b/src/Provider/Service/Client/VoyagerClient.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Provider\Service\Client; +use Devscast\Lugha\Assert; use Devscast\Lugha\Exception\ServiceIntegrationException; use Devscast\Lugha\Model\Embedding\EmbeddingConfig; use Devscast\Lugha\Model\Reranking\RankedDocument; @@ -24,7 +25,6 @@ use Devscast\Lugha\Provider\Service\HasEmbeddingSupport; use Devscast\Lugha\Provider\Service\HasRerankingSupport; use Devscast\Lugha\Retrieval\Document; -use Webmozart\Assert\Assert; /** * Class VoyagerClient. diff --git a/src/Provider/Service/HasEmbeddingSupport.php b/src/Provider/Service/HasEmbeddingSupport.php index 96ff17c..d236ab9 100644 --- a/src/Provider/Service/HasEmbeddingSupport.php +++ b/src/Provider/Service/HasEmbeddingSupport.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Provider\Service; +use Devscast\Lugha\Exception\InvalidArgumentException; use Devscast\Lugha\Exception\ServiceIntegrationException; use Devscast\Lugha\Model\Embedding\EmbeddingConfig; use Devscast\Lugha\Provider\Response\EmbeddingResponse; @@ -29,7 +30,7 @@ interface HasEmbeddingSupport * @param EmbeddingConfig $config The configuration to use for embeddings. * * @throws ServiceIntegrationException when any error occurs during the request. - * @throws \InvalidArgumentException when the prompt is empty. + * @throws InvalidArgumentException when the prompt is empty. */ public function embeddings(string $prompt, EmbeddingConfig $config): EmbeddingResponse; } diff --git a/src/Provider/Service/HasRerankingSupport.php b/src/Provider/Service/HasRerankingSupport.php index 2805de3..faebcae 100644 --- a/src/Provider/Service/HasRerankingSupport.php +++ b/src/Provider/Service/HasRerankingSupport.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Provider\Service; +use Devscast\Lugha\Exception\InvalidArgumentException; use Devscast\Lugha\Exception\ServiceIntegrationException; use Devscast\Lugha\Model\Reranking\RerankingConfig; use Devscast\Lugha\Provider\Response\RerankingResponse; @@ -31,7 +32,7 @@ interface HasRerankingSupport * @param RerankingConfig $config The configuration to use for reranking. * * @throws ServiceIntegrationException when any error occurs during the request. - * @throws \InvalidArgumentException when the prompt or documents are empty. + * @throws InvalidArgumentException when the prompt or documents are empty. */ public function rerank(string $prompt, array $documents, RerankingConfig $config): RerankingResponse; } diff --git a/tests/Model/Completion/Prompt/PromptTemplateTest.php b/tests/Model/Completion/Prompt/PromptTemplateTest.php index 88f80db..24981fe 100644 --- a/tests/Model/Completion/Prompt/PromptTemplateTest.php +++ b/tests/Model/Completion/Prompt/PromptTemplateTest.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Tests\Model\Completion\Prompt; +use Devscast\Lugha\Exception\InvalidArgumentException; use Devscast\Lugha\Exception\UnformattedPromptTemplateException; use Devscast\Lugha\Model\Completion\Prompt\PromptTemplate; use PHPUnit\Framework\TestCase; @@ -56,7 +57,7 @@ public function testItCanFormatAPromptTemplateWithMultiplePlaceholders(): void public function testItFailsToCreateAPromptTemplateWithEmptyTemplate(): void { - $this->expectException(\InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Template cannot be empty'); new PromptTemplate(''); @@ -64,7 +65,7 @@ public function testItFailsToCreateAPromptTemplateWithEmptyTemplate(): void public function testItFailsToFormatAPromptTemplateWithEmptyValues(): void { - $this->expectException(\InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Values cannot be empty'); $template = PromptTemplate::from('Hello {context}'); diff --git a/tests/Model/Embedding/DistanceTest.php b/tests/Model/Embedding/DistanceTest.php index 44ed43d..7d1a85c 100644 --- a/tests/Model/Embedding/DistanceTest.php +++ b/tests/Model/Embedding/DistanceTest.php @@ -13,6 +13,7 @@ namespace Devscast\Lugha\Tests\Model\Embedding; +use Devscast\Lugha\Exception\InvalidArgumentException; use Devscast\Lugha\Model\Embedding\Distance; use PHPUnit\Framework\TestCase; @@ -25,7 +26,7 @@ final class DistanceTest extends TestCase { public function testVectorWithDifferentDimensions(): void { - $this->expectException(\InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Vectors must have the same dimension.'); $distance = Distance::COSINE;