chore(addon/aikefu): 完善API调用,只采用query 参数,支持 response_mode 参数设置
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user