ordered()->get(); $selectedCatId = $request->query('category_id'); return view('chatbot.index', compact('categories', 'selectedCatId')); } /** * Endpoint untuk submit soalan. * Return JSON — AJAX call dari chatbot UI. */ public function ask(AskQuestionRequest $request): JsonResponse { try { $result = $this->askQuestionAction->execute( $request->question, $request->category_id, $request ); return response()->json([ 'success' => true, 'answer' => $result['answer'], 'has_answer' => $result['has_answer'], 'sources' => $result['sources'], 'session_token' => $result['session_token'], ]); } catch (RuntimeException $e) { return response()->json([ 'success' => false, 'message' => 'Perkhidmatan AI tidak tersedia pada masa ini. Sila cuba sebentar lagi.', 'error' => config('app.debug') ? $e->getMessage() : null, ], 503); } } }