|
@@ -3,16 +3,35 @@ declare(strict_types=1);
|
|
|
|
|
|
namespace App\Controller;
|
|
|
|
|
|
+use Hyperf\Di\Annotation\Inject;
|
|
|
use Hyperf\HttpServer\Contract\RequestInterface;
|
|
|
use Hyperf\HttpServer\Contract\ResponseInterface;
|
|
|
+use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
|
|
use Psr\Http\Message\ServerRequestInterface;
|
|
|
-
|
|
|
+use App\Tools\Result;
|
|
|
class SseController extends AbstractController
|
|
|
{
|
|
|
+ #[Inject]
|
|
|
+ protected ValidatorFactoryInterface $validationFactory;
|
|
|
public function stream(RequestInterface $request, ResponseInterface $response)
|
|
|
{
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ var_dump("=======",$request->all(),"+++++++++",$requireData);
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'problem'=> 'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'problem.required' => '请提出你的问题',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
$params = [
|
|
|
- "model"=>"glm-4",
|
|
|
+ "model"=>"glm-4v-flash",
|
|
|
"messages"=>[
|
|
|
[
|
|
|
"role"=>"system",
|
|
@@ -20,13 +39,14 @@ class SseController extends AbstractController
|
|
|
],
|
|
|
[
|
|
|
"role"=>"user",
|
|
|
- "content"=>"我是一个初级程序员,如何快速的提升自己"//$requireData['message']
|
|
|
+ "content"=>$requireData['problem']//$requireData['message']
|
|
|
]
|
|
|
],
|
|
|
"stream"=>true
|
|
|
];
|
|
|
$apiUrl = "https://open.bigmodel.cn/api/paas/v4/chat/completions";
|
|
|
- $result= $this->callApi($apiUrl, 'POST', $params, ['Authorization: Bearer be1856920c54ac537b530d69bc2eda73.gOO2BMq9NXavzEMq']);
|
|
|
+ //93a716c97e7848329914efe5d036c896.0feTS9QVahSzXMD8
|
|
|
+ $result= $this->callApi($apiUrl, 'POST', $params, ['Authorization: Bearer 93a716c97e7848329914efe5d036c896.0feTS9QVahSzXMD8']);
|
|
|
$arr = preg_split('/\n\s*\n/', $result);
|
|
|
// 开始流式传输
|
|
|
$this->container->get(\Swoole\Http\Response::class)->status(200);
|