chore(addon/aikefu): 完善API调用,只采用query 参数,支持 response_mode 参数设置

This commit is contained in:
2025-12-10 17:20:25 +08:00
parent 0b2092a8fc
commit 3275a159a1
2 changed files with 14 additions and 8 deletions

View File

@@ -180,7 +180,7 @@ class Kefu extends BaseApi
} }
$this->params = [ $this->params = [
'message' => $data['message'] ?? '', 'message' => $data['query'] ?? '', // 注意query 是原始的用户输入message 是经过处理的
'user_id' => $data['user_id'] ?? '', 'user_id' => $data['user_id'] ?? '',
'conversation_id' => $data['conversation_id'] ?? '', 'conversation_id' => $data['conversation_id'] ?? '',
'stream' => $data['stream'] ?? false, 'stream' => $data['stream'] ?? false,

View File

@@ -312,16 +312,19 @@ class Kefu extends BaseApi
// 获取请求参数 // 获取请求参数
// 对于GET请求需要单独获取参数因为BaseApi的构造函数可能没有正确处理GET参数 // 对于GET请求需要单独获取参数因为BaseApi的构造函数可能没有正确处理GET参数
// response_mode 响应模式streaming流式、blocking阻塞默认streaming
if ($isGet) { if ($isGet) {
$message = request()->get('message', ''); $query = request()->get('query', '');
$user_id = request()->get('user_id', $this->member_id); $user_id = request()->get('user_id', $this->member_id);
$conversation_id = request()->get('conversation_id', ''); $conversation_id = request()->get('conversation_id', '');
$stream = request()->get('stream', false); $stream = request()->get('stream', false);
$response_mode = request()->get('response_mode', 'streaming');
} else { } else {
$message = $this->params['message'] ?? ''; $query = $this->params['query'] ?? '';
$user_id = $this->params['user_id'] ?? $this->member_id; $user_id = $this->params['user_id'] ?? $this->member_id;
$conversation_id = $this->params['conversation_id'] ?? ''; $conversation_id = $this->params['conversation_id'] ?? '';
$stream = $this->params['stream'] ?? false; $stream = $this->params['stream'] ?? false;
$response_mode = $this->params['response_mode'] ?? 'streaming';
} }
// 确保stream参数正确处理字符串'false'和'0' // 确保stream参数正确处理字符串'false'和'0'
@@ -335,8 +338,8 @@ class Kefu extends BaseApi
$token = $this->params['token'] ?? $this->token; $token = $this->params['token'] ?? $this->token;
// 验证参数 // 验证参数
if (empty($message)) { if (empty($query)) {
return $this->response($this->error('请输入消息内容')); return $this->response($this->error('请输入消息内容,参数项: query'));
} }
// 验证事件是否存在 // 验证事件是否存在
@@ -345,18 +348,21 @@ class Kefu extends BaseApi
} }
try { try {
// 是否启用流式响应
$enable_stream = $stream && $response_mode == 'streaming';
// 准备事件数据 // 准备事件数据
$event_data = [ $event_data = [
'message' => $message, 'query' => $query,
'user_id' => $user_id, 'user_id' => $user_id,
'conversation_id' => $conversation_id, 'conversation_id' => $conversation_id,
'stream' => $stream, 'stream' => $enable_stream,
'site_id' =>$site_id, 'site_id' =>$site_id,
'member_id' => $member_id, 'member_id' => $member_id,
'token' => $token, 'token' => $token,
]; ];
if ($stream) { if ($enable_stream) {
// 设置SSE响应头 // 设置SSE响应头
header('Content-Type: text/event-stream'); header('Content-Type: text/event-stream');
header('Cache-Control: no-cache'); header('Cache-Control: no-cache');