load('messages'); return inertia("Chat", [ 'chat' => $chat?->toResource(), "chats" => fn() => Chat::all(), ]); } public function message(Request $request) { $chat = $request->filled('uuid') ? Chat::find($request->input('uuid')) : Chat::create(); $chat->messages()->create(['text' => $request->input('message')]); //TODO: Send To LLM $response = Http::inference()->post('/chat', [ 'prompt' => $request->input('message') ]); $result = $response->json(); $chat->messages()->create([ 'text' => $result['message']['content'], 'thinking' => $result['message']['thinking'], 'from' => $result['message']['role'] ]); if (!$chat->title) { $response = Http::inference()->post('/generate', [ 'prompt' => 'На основе первого сообщения пользователя предложи короткое название для чата длиной 2-4 слова.' . ' ' . 'Название должно быть ёмким, отражать суть сообщения, без лишних слов.' . ' ' . 'Ответ дай только в виде текста названия, без пояснений и кавычек.' . ' ' . 'Первое сообщение: ' . $request->input('message') ]); $result = $response->json(); $chat->update(['title' => $result['response']]); } return redirect()->route('chats.view', ['chat' => $chat->id]); } public function destroy(Chat $chat) { $chat->delete(); return redirect()->route('chats.index'); } }