Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
"@prepare"
],
"format": [
"@php vendor/bin/pint --ansi",
"@php vendor/bin/pint --ansi --parallel",
"@php vendor/bin/rector process --no-diffs"
],
"test": [
Expand Down
8 changes: 8 additions & 0 deletions pint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"preset": "laravel",
"rules": {
"fully_qualified_strict_types": {
"import_symbols": true
}
}
}
2 changes: 1 addition & 1 deletion src/PrismServer.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public function __construct(
protected Collection $prisms = new Collection,
) {}

/** @param \Closure():PendingRequest|callable():PendingRequest $prism */
/** @param Closure():PendingRequest|callable():PendingRequest $prism */
public function register(string $name, Closure|callable $prism): self
{
$this->prisms->push(['name' => $name, 'prism' => $prism]);
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/Anthropic/Anthropic.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
use Prism\Prism\Providers\Anthropic\Handlers\Structured;
use Prism\Prism\Providers\Anthropic\Handlers\Text;
use Prism\Prism\Providers\Provider;
use Prism\Prism\Streaming\Events\StreamEvent;
use Prism\Prism\Structured\Request as StructuredRequest;
use Prism\Prism\Structured\Response as StructuredResponse;
use Prism\Prism\Text\Request as TextRequest;
Expand Down Expand Up @@ -63,7 +64,7 @@ public function structured(StructuredRequest $request): StructuredResponse
}

/**
* @return Generator<\Prism\Prism\Streaming\Events\StreamEvent>
* @return Generator<StreamEvent>
*/
#[\Override]
public function stream(TextRequest $request): Generator
Expand Down
2 changes: 1 addition & 1 deletion src/Providers/Anthropic/Handlers/Stream.php
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ protected function handleMessageDelta(array $event): null
*/
protected function handleMessageStop(array $event): ?StreamEndEvent
{
if (! $this->state->finishReason() instanceof \Prism\Prism\Enums\FinishReason) {
if (! $this->state->finishReason() instanceof FinishReason) {
$this->state->withFinishReason(FinishReason::Stop);
}

Expand Down
2 changes: 1 addition & 1 deletion src/Providers/DeepSeek/Handlers/Stream.php
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ protected function processStream(Response $response, Request $request, int $dept
$this->state->withFinishReason($finishReason);

$usage = $this->extractUsage($data);
if ($usage instanceof \Prism\Prism\ValueObjects\Usage) {
if ($usage instanceof Usage) {
$this->state->addUsage($usage);
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/DeepSeek/Handlers/Structured.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Prism\Prism\Providers\DeepSeek\Handlers;

use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Arr;
use Prism\Prism\Exceptions\PrismException;
use Prism\Prism\Providers\DeepSeek\Concerns\MapsFinishReason;
Expand Down Expand Up @@ -46,7 +47,7 @@ public function handle(Request $request): StructuredResponse
*/
protected function sendRequest(Request $request): array
{
/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post(
'chat/completions',
array_merge([
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/DeepSeek/Handlers/Text.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Prism\Prism\Providers\DeepSeek\Handlers;

use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Arr;
use Prism\Prism\Concerns\CallsTools;
use Prism\Prism\Enums\FinishReason;
Expand Down Expand Up @@ -101,7 +102,7 @@ protected function shouldContinue(Request $request): bool
*/
protected function sendRequest(Request $request): array
{
/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post(
'chat/completions',
array_merge([
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/ElevenLabs/Handlers/Audio.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Exception;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Prism\Prism\Audio\AudioResponse;
use Prism\Prism\Audio\SpeechToTextRequest;
use Prism\Prism\Audio\TextResponse;
Expand Down Expand Up @@ -42,7 +43,7 @@ public function handleTextToSpeech(TextToSpeechRequest $request): AudioResponse

public function handleSpeechToText(SpeechToTextRequest $request): TextResponse
{
/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this
->client
->attach(
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/Gemini/Handlers/Cache.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Prism\Prism\Providers\Gemini\Handlers;

use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Arr;
use Prism\Prism\Contracts\Message;
use Prism\Prism\Providers\Gemini\Maps\MessageMap;
Expand Down Expand Up @@ -42,7 +43,7 @@ protected function sendRequest(): array
'ttl' => $this->ttl.'s',
]);

/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post('/cachedContents', $request);

return $response->json();
Expand Down
2 changes: 1 addition & 1 deletion src/Providers/Gemini/Handlers/Stream.php
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ protected function handleToolCalls(
$nextResponse = $this->sendRequest($request);
yield from $this->processStream($nextResponse, $request, $depth);

if ($previousUsage instanceof \Prism\Prism\ValueObjects\Usage && $this->state->usage() instanceof \Prism\Prism\ValueObjects\Usage) {
if ($previousUsage instanceof Usage && $this->state->usage() instanceof Usage) {
$this->state->withUsage(new Usage(
promptTokens: $previousUsage->promptTokens + $this->state->usage()->promptTokens,
completionTokens: $previousUsage->completionTokens + $this->state->usage()->completionTokens,
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/Gemini/Handlers/Structured.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Prism\Prism\Providers\Gemini\Handlers;

use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Arr;
use Prism\Prism\Concerns\CallsTools;
use Prism\Prism\Concerns\HandlesStructuredJson;
Expand Down Expand Up @@ -118,7 +119,7 @@ public function sendRequest(Request $request): array
]);
}

/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post(
"{$request->model()}:generateContent",
Arr::whereNotNull([
Expand Down
5 changes: 3 additions & 2 deletions src/Providers/Groq/Handlers/Audio.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Exception;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Arr;
use Prism\Prism\Audio\AudioResponse;
use Prism\Prism\Audio\SpeechToTextRequest;
Expand All @@ -28,7 +29,7 @@ public function handleTextToSpeech(TextToSpeechRequest $request): AudioResponse
{
$mapper = new TextToSpeechRequestMapper($request);

/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post('audio/speech', $mapper->toPayload());

if (! $response->successful()) {
Expand All @@ -49,7 +50,7 @@ public function handleSpeechToText(SpeechToTextRequest $request): TextResponse
{
$filename = $this->generateFilename($request->input()->mimeType());

/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this
->client
->attach(
Expand Down
5 changes: 3 additions & 2 deletions src/Providers/Groq/Handlers/Stream.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Generator;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\RequestException;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Arr;
use Prism\Prism\Concerns\CallsTools;
Expand Down Expand Up @@ -176,7 +177,7 @@ protected function processStream(Response $response, Request $request, int $dept
$this->state->withFinishReason($finishReason);

$usage = $this->extractUsage($data);
if ($usage instanceof \Prism\Prism\ValueObjects\Usage) {
if ($usage instanceof Usage) {
$this->state->addUsage($usage);
}
}
Expand Down Expand Up @@ -398,7 +399,7 @@ protected function sendRequest(Request $request): Response
);

return $response;
} catch (\Illuminate\Http\Client\RequestException $e) {
} catch (RequestException $e) {
if ($e->response->getStatusCode() === 429) {
throw new PrismRateLimitedException(
$this->processRateLimits($e->response),
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/Mistral/Handlers/Audio.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Exception;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Arr;
use Prism\Prism\Audio\SpeechToTextRequest;
use Prism\Prism\Audio\TextResponse;
Expand All @@ -22,7 +23,7 @@ public function __construct(protected PendingRequest $client) {}

public function handleSpeechToText(SpeechToTextRequest $request): TextResponse
{
/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this
->client
->attach(
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/Mistral/Handlers/OCR.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Prism\Prism\Providers\Mistral\Handlers;

use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Prism\Prism\Concerns\CallsTools;
use Prism\Prism\Exceptions\PrismException;
use Prism\Prism\Exceptions\PrismRateLimitedException;
Expand Down Expand Up @@ -51,7 +52,7 @@ public function handle(): OCRResponse
*/
protected function sendRequest(): array
{
/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post('/ocr', [
'model' => $this->model,
'document' => (new DocumentMapper($this->document))->toPayload(),
Expand Down
2 changes: 1 addition & 1 deletion src/Providers/Mistral/Handlers/Stream.php
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ protected function processStream(Response $response, Request $request, int $dept
}

$usage = $this->extractUsage($data);
if ($usage instanceof \Prism\Prism\ValueObjects\Usage) {
if ($usage instanceof Usage) {
$this->state->addUsage($usage);
}

Expand Down
5 changes: 3 additions & 2 deletions src/Providers/OpenAI/Handlers/Audio.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Exception;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Arr;
use Prism\Prism\Audio\AudioResponse;
use Prism\Prism\Audio\SpeechToTextRequest;
Expand All @@ -30,7 +31,7 @@ public function handleTextToSpeech(TextToSpeechRequest $request): AudioResponse
{
$mapper = new TextToSpeechRequestMapper($request);

/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post('audio/speech', $mapper->toPayload());

if (! $response->successful()) {
Expand All @@ -49,7 +50,7 @@ public function handleTextToSpeech(TextToSpeechRequest $request): AudioResponse

public function handleSpeechToText(SpeechToTextRequest $request): TextResponse
{
/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this
->client
->attach(
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/OpenRouter/Handlers/Structured.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Prism\Prism\Providers\OpenRouter\Handlers;

use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Prism\Prism\Exceptions\PrismException;
use Prism\Prism\Exceptions\PrismStructuredDecodingException;
use Prism\Prism\Providers\OpenRouter\Concerns\BuildsRequestOptions;
Expand Down Expand Up @@ -49,7 +50,7 @@ public function handle(Request $request): StructuredResponse
*/
protected function sendRequest(Request $request): array
{
/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post(
'chat/completions',
array_merge([
Expand Down
3 changes: 2 additions & 1 deletion src/Providers/OpenRouter/Handlers/Text.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Prism\Prism\Providers\OpenRouter\Handlers;

use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Prism\Prism\Concerns\CallsTools;
use Prism\Prism\Enums\FinishReason;
use Prism\Prism\Exceptions\PrismException;
Expand Down Expand Up @@ -100,7 +101,7 @@ protected function shouldContinue(Request $request): bool
*/
protected function sendRequest(Request $request): array
{
/** @var \Illuminate\Http\Client\Response $response */
/** @var Response $response */
$response = $this->client->post(
'chat/completions',
array_merge([
Expand Down
4 changes: 2 additions & 2 deletions src/Providers/XAI/Handlers/Stream.php
Original file line number Diff line number Diff line change
Expand Up @@ -175,12 +175,12 @@ protected function processStream(Response $response, Request $request, int $dept
$rawFinishReason = data_get($data, 'choices.0.finish_reason');
if ($rawFinishReason !== null) {
$finishReason = $this->extractFinishReason($data);
if ($finishReason instanceof \Prism\Prism\Enums\FinishReason) {
if ($finishReason instanceof FinishReason) {
$this->state->withFinishReason($finishReason);
}

$usage = $this->extractUsage($data);
if ($usage instanceof \Prism\Prism\ValueObjects\Usage) {
if ($usage instanceof Usage) {
$this->state->addUsage($usage);
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/Rectors/ReorderMethodsRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Prism\Prism\Rectors;

use PhpParser\Node;
use PhpParser\Node\Stmt;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassMethod;
use Rector\Rector\AbstractRector;
Expand Down Expand Up @@ -36,7 +37,7 @@ public function refactor(Node $node): ?Node
}

$node->stmts = array_merge(
array_filter($node->stmts, fn (\PhpParser\Node\Stmt $stmt): bool => ! $stmt instanceof ClassMethod),
array_filter($node->stmts, fn (Stmt $stmt): bool => ! $stmt instanceof ClassMethod),
$reorderedMethods
);

Expand Down
2 changes: 1 addition & 1 deletion src/Streaming/Adapters/BroadcastAdapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public function __invoke(Generator $events, ?PendingRequest $pendingRequest = nu
event($this->broadcastEvent($event));
}

if ($callback !== null && $pendingRequest instanceof \Prism\Prism\Text\PendingRequest) {
if ($callback !== null && $pendingRequest instanceof PendingRequest) {
$callback($pendingRequest, $collectedEvents);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/Streaming/Adapters/SSEAdapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public function __invoke(Generator $events, ?PendingRequest $pendingRequest = nu
flush();
}

if ($callback !== null && $pendingRequest instanceof \Prism\Prism\Text\PendingRequest) {
if ($callback !== null && $pendingRequest instanceof PendingRequest) {
$callback($pendingRequest, $collectedEvents);
}
}, 200, [
Expand Down
2 changes: 1 addition & 1 deletion src/Streaming/StreamState.php
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ public function withUsage(Usage $usage): self

public function addUsage(Usage $usage): self
{
if (! $this->usage instanceof \Prism\Prism\ValueObjects\Usage) {
if (! $this->usage instanceof Usage) {
$this->usage = $usage;

return $this;
Expand Down
6 changes: 4 additions & 2 deletions src/Structured/ResponseBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
use Illuminate\Support\Collection;
use Prism\Prism\Enums\FinishReason;
use Prism\Prism\Exceptions\PrismStructuredDecodingException;
use Prism\Prism\ValueObjects\ToolCall;
use Prism\Prism\ValueObjects\ToolResult;
use Prism\Prism\ValueObjects\Usage;

readonly class ResponseBuilder
Expand Down Expand Up @@ -82,7 +84,7 @@ protected function decodeObject(string $responseText): array
}

/**
* @return array<int, \Prism\Prism\ValueObjects\ToolCall>
* @return array<int, ToolCall>
*/
protected function aggregateToolCalls(): array
{
Expand All @@ -93,7 +95,7 @@ protected function aggregateToolCalls(): array
}

/**
* @return array<int, \Prism\Prism\ValueObjects\ToolResult>
* @return array<int, ToolResult>
*/
protected function aggregateToolResults(): array
{
Expand Down
Loading