Skip to content

Commit 7baab41

Browse files
authored
Update Chat.php
1 parent a001540 commit 7baab41

File tree

1 file changed

+36
-13
lines changed

1 file changed

+36
-13
lines changed

src/Chat.php

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public function completions(array $data, array $options)
2626
if (isset($options['stream'])) {
2727
$data['stream'] = true;
2828
}
29+
var_export($data);
2930
$stream = !empty($data['stream']) && isset($options['stream']);
3031
$options = $this->formatOptions($options);
3132
$requestOptions = [
@@ -76,6 +77,15 @@ public function completions(array $data, array $options)
7677
*/
7778
public static function formatResponse($buffer)
7879
{
80+
if (!$buffer || $buffer[0] === '') {
81+
return [
82+
'error' => [
83+
'code' => 'parse_error',
84+
'error' => 'Unable to parse response',
85+
'detail' => $buffer
86+
]
87+
];
88+
}
7989
$json = json_decode($buffer, true);
8090
if ($json) {
8191
return $json;
@@ -84,6 +94,9 @@ public static function formatResponse($buffer)
8494
$content = '';
8595
$finishReason = null;
8696
$model = '';
97+
$promptFilterResults = null;
98+
$contentFilterResults = null;
99+
$contentFilterOffsets = null;
87100
foreach ($chunks as $chunk) {
88101
if ($chunk === "") {
89102
continue;
@@ -94,6 +107,12 @@ public static function formatResponse($buffer)
94107
}
95108
try {
96109
$data = json_decode($chunk, true);
110+
if (isset($data['model'])) {
111+
$model = $data['model'];
112+
}
113+
if (isset($data['prompt_filter_results'])) {
114+
$promptFilterResults = $data['prompt_filter_results'];
115+
}
97116
if (isset($data['error'])) {
98117
$content .= $data['error']['message'] ?? "";
99118
} else {
@@ -102,25 +121,19 @@ public static function formatResponse($buffer)
102121
if (isset($item['finish_reason'])) {
103122
$finishReason = $item['finish_reason'];
104123
}
124+
if (isset($item['content_filter_results'])) {
125+
$contentFilterResults = $item['content_filter_results'];
126+
}
127+
if (isset($item['content_filter_offsets'])) {
128+
$contentFilterOffsets = $item['content_filter_offsets'];
129+
}
105130
}
106131
}
107-
if (isset($data['model'])) {
108-
$model = $data['model'];
109-
}
110132
} catch (Throwable $e) {
111133
echo $e;
112134
}
113135
}
114-
if ($content === '') {
115-
return [
116-
'error' => [
117-
'code' => 'parse_error',
118-
'error' => 'Unable to parse response',
119-
'detail' => $buffer
120-
]
121-
];
122-
}
123-
return [
136+
$result = [
124137
'choices' => [
125138
[
126139
'finish_reason' => $finishReason,
@@ -133,6 +146,16 @@ public static function formatResponse($buffer)
133146
],
134147
'model' => $model,
135148
];
149+
if ($promptFilterResults) {
150+
$result['prompt_filter_results'] = $promptFilterResults;
151+
}
152+
if ($contentFilterResults) {
153+
$result['choices'][0]['content_filter_results'] = $contentFilterResults;
154+
}
155+
if ($contentFilterOffsets) {
156+
$result['choices'][0]['content_filter_offsets'] = $contentFilterOffsets;
157+
}
158+
return $result;
136159
}
137160

138161
}

0 commit comments

Comments
 (0)