diff --git a/src/Providers/Groq/Maps/ToolChoiceMap.php b/src/Providers/Groq/Maps/ToolChoiceMap.php index 0566525af..e5ffd06c2 100644 --- a/src/Providers/Groq/Maps/ToolChoiceMap.php +++ b/src/Providers/Groq/Maps/ToolChoiceMap.php @@ -25,6 +25,7 @@ public static function map(string|ToolChoice|null $toolChoice): string|array|nul return match ($toolChoice) { ToolChoice::Auto => 'auto', + ToolChoice::Any => 'required', null => $toolChoice, default => throw new PrismException('Invalid tool choice') }; diff --git a/tests/Providers/Groq/GroqTextTest.php b/tests/Providers/Groq/GroqTextTest.php index 98ba516f4..6f3ae72c3 100644 --- a/tests/Providers/Groq/GroqTextTest.php +++ b/tests/Providers/Groq/GroqTextTest.php @@ -9,7 +9,6 @@ use Illuminate\Support\Facades\Http; use Prism\Prism\Enums\Provider; use Prism\Prism\Enums\ToolChoice; -use Prism\Prism\Exceptions\PrismException; use Prism\Prism\Exceptions\PrismRateLimitedException; use Prism\Prism\Facades\Prism; use Prism\Prism\Facades\Tool; @@ -132,15 +131,14 @@ }); it('throws an exception for ToolChoice::Any', function (): void { - $this->expectException(PrismException::class); - $this->expectExceptionMessage('Invalid tool choice'); + FixtureResponse::fakeResponseSequence('v1/chat/completions', 'groq/generate-text-with-required-tool-call'); Prism::text() ->using('groq', 'gpt-4') ->withPrompt('Who are you?') ->withToolChoice(ToolChoice::Any) ->asText(); - }); + })->throwsNoExceptions(); }); describe('Image support with grok', function (): void {