|
5 | 5 | use Illuminate\Http\Client\Response; |
6 | 6 | use Illuminate\Support\Collection; |
7 | 7 | use Prism\Bedrock\Contracts\BedrockTextHandler; |
| 8 | +use Prism\Bedrock\Schemas\Converse\Concerns\ExtractsText; |
8 | 9 | use Prism\Bedrock\Schemas\Converse\Concerns\ExtractsToolCalls; |
9 | 10 | use Prism\Bedrock\Schemas\Converse\Maps\FinishReasonMap; |
10 | 11 | use Prism\Bedrock\Schemas\Converse\Maps\MessageMap; |
|
26 | 27 |
|
27 | 28 | class ConverseTextHandler extends BedrockTextHandler |
28 | 29 | { |
29 | | - use CallsTools, ExtractsToolCalls; |
| 30 | + use CallsTools, ExtractsText, ExtractsToolCalls; |
30 | 31 |
|
31 | 32 | protected TextResponse $tempResponse; |
32 | 33 |
|
@@ -59,7 +60,7 @@ public function handle(Request $request): TextResponse |
59 | 60 | return match ($this->tempResponse->finishReason) { |
60 | 61 | FinishReason::ToolCalls => $this->handleToolCalls($request), |
61 | 62 | FinishReason::Stop, FinishReason::Length => $this->handleStop($request), |
62 | | - default => throw new PrismException('Anthropic: unknown finish reason'), |
| 63 | + default => throw new PrismException('Converse: unknown finish reason'), |
63 | 64 | }; |
64 | 65 | } |
65 | 66 |
|
@@ -109,16 +110,16 @@ protected function prepareTempResponse(): void |
109 | 110 |
|
110 | 111 | $this->tempResponse = new TextResponse( |
111 | 112 | steps: new Collection, |
112 | | - text: data_get($data, 'output.message.content.0.text', ''), |
| 113 | + text: $this->extractText($data), |
113 | 114 | finishReason: FinishReasonMap::map(data_get($data, 'stopReason')), |
114 | 115 | toolCalls: $this->extractToolCalls($data), |
115 | 116 | toolResults: [], |
116 | 117 | usage: new Usage( |
117 | 118 | promptTokens: data_get($data, 'usage.inputTokens'), |
118 | 119 | completionTokens: data_get($data, 'usage.outputTokens') |
119 | 120 | ), |
120 | | - meta: new Meta(id: '', model: ''), // Not provided in Converse response. |
121 | | - messages: new Collection |
| 121 | + meta: new Meta(id: '', model: ''), |
| 122 | + messages: new Collection, // Not provided in Converse response. |
122 | 123 | ); |
123 | 124 | } |
124 | 125 |
|
|
0 commit comments