28 lines
815 B
PHP
28 lines
815 B
PHP
<?php
|
|
|
|
use app\common\service\ai\DeepSeekClient;
|
|
|
|
require __DIR__ . '/../../server/vendor/autoload.php';
|
|
|
|
function fail(string $message): void
|
|
{
|
|
fwrite(STDERR, $message . PHP_EOL);
|
|
exit(1);
|
|
}
|
|
|
|
$client = (new ReflectionClass(DeepSeekClient::class))->newInstanceWithoutConstructor();
|
|
$method = new ReflectionMethod(DeepSeekClient::class, 'extractResponsesContent');
|
|
$method->setAccessible(true);
|
|
|
|
try {
|
|
$content = $method->invoke($client, null);
|
|
} catch (Throwable $e) {
|
|
fail('Responses 返回体解析遇到 null 时不应抛异常: ' . get_class($e) . ' ' . $e->getMessage());
|
|
}
|
|
|
|
if ($content !== '') {
|
|
fail('Responses 返回体为 null 时应解析为空字符串,实际为: ' . var_export($content, true));
|
|
}
|
|
|
|
echo 'DeepSeekClient 非 JSON/null 返回体解析防护测试通过' . PHP_EOL;
|