From 3275a159a128bf0d83401fc1ab130f0752d4becf Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Wed, 10 Dec 2025 17:20:25 +0800 Subject: [PATCH] =?UTF-8?q?chore(addon/aikefu):=20=E5=AE=8C=E5=96=84API?= =?UTF-8?q?=E8=B0=83=E7=94=A8=EF=BC=8C=E5=8F=AA=E9=87=87=E7=94=A8query=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=EF=BC=8C=E6=94=AF=E6=8C=81=20response=5Fmode?= =?UTF-8?q?=20=E5=8F=82=E6=95=B0=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/addon/aikefu/api/controller/Kefu.php | 2 +- src/app/api/controller/Kefu.php | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/addon/aikefu/api/controller/Kefu.php b/src/addon/aikefu/api/controller/Kefu.php index ce93901a8..817887ab3 100644 --- a/src/addon/aikefu/api/controller/Kefu.php +++ b/src/addon/aikefu/api/controller/Kefu.php @@ -180,7 +180,7 @@ class Kefu extends BaseApi } $this->params = [ - 'message' => $data['message'] ?? '', + 'message' => $data['query'] ?? '', // 注意,query 是原始的用户输入,message 是经过处理的 'user_id' => $data['user_id'] ?? '', 'conversation_id' => $data['conversation_id'] ?? '', 'stream' => $data['stream'] ?? false, diff --git a/src/app/api/controller/Kefu.php b/src/app/api/controller/Kefu.php index 637facc53..9cb98c6de 100644 --- a/src/app/api/controller/Kefu.php +++ b/src/app/api/controller/Kefu.php @@ -312,16 +312,19 @@ class Kefu extends BaseApi // 获取请求参数 // 对于GET请求,需要单独获取参数,因为BaseApi的构造函数可能没有正确处理GET参数 + // response_mode 响应模式:streaming(流式)、blocking(阻塞),默认streaming if ($isGet) { - $message = request()->get('message', ''); + $query = request()->get('query', ''); $user_id = request()->get('user_id', $this->member_id); $conversation_id = request()->get('conversation_id', ''); $stream = request()->get('stream', false); + $response_mode = request()->get('response_mode', 'streaming'); } else { - $message = $this->params['message'] ?? ''; + $query = $this->params['query'] ?? ''; $user_id = $this->params['user_id'] ?? $this->member_id; $conversation_id = $this->params['conversation_id'] ?? ''; $stream = $this->params['stream'] ?? false; + $response_mode = $this->params['response_mode'] ?? 'streaming'; } // 确保stream参数正确处理字符串'false'和'0' @@ -335,8 +338,8 @@ class Kefu extends BaseApi $token = $this->params['token'] ?? $this->token; // 验证参数 - if (empty($message)) { - return $this->response($this->error('请输入消息内容')); + if (empty($query)) { + return $this->response($this->error('请输入消息内容,参数项: query')); } // 验证事件是否存在 @@ -345,18 +348,21 @@ class Kefu extends BaseApi } try { + // 是否启用流式响应 + $enable_stream = $stream && $response_mode == 'streaming'; + // 准备事件数据 $event_data = [ - 'message' => $message, + 'query' => $query, 'user_id' => $user_id, 'conversation_id' => $conversation_id, - 'stream' => $stream, + 'stream' => $enable_stream, 'site_id' =>$site_id, 'member_id' => $member_id, 'token' => $token, ]; - if ($stream) { + if ($enable_stream) { // 设置SSE响应头 header('Content-Type: text/event-stream'); header('Cache-Control: no-cache');