validate([ 'message' => 'required|string|max:2000', 'room_id' => 'required|integer', ]); // 检查全局开关 $enabled = Sysparam::getValue('chatbot_enabled', '0'); if ($enabled !== '1') { return response()->json([ 'status' => 'error', 'message' => 'AI 机器人功能已关闭,请联系管理员开启。', ], 403); } $user = Auth::user(); $message = $request->input('message'); $roomId = $request->input('room_id'); try { $result = $this->aiChat->chat($user->id, $message, $roomId); return response()->json([ 'status' => 'success', 'reply' => $result['reply'], 'provider' => $result['provider'], 'model' => $result['model'], ]); } catch (\Exception $e) { return response()->json([ 'status' => 'error', 'message' => $e->getMessage(), ], 500); } } /** * 清除当前用户的 AI 对话上下文 * * 用于用户想要重新开始对话时使用。 * * @param Request $request 请求对象 * @return JsonResponse 操作结果 */ public function clearContext(Request $request): JsonResponse { $user = Auth::user(); $this->aiChat->clearContext($user->id); return response()->json([ 'status' => 'success', 'message' => '对话上下文已清除,可以开始新的对话了。', ]); } }