Oct 29, 2024
0
Level 1
Property type not supported in Livewire for property: ["5936164e-6636-49e4-afa3-af8ebdfbade0"]
how to fix this error?
Chat-interface.blade.php
<?php
namespace App\Livewire;
use App\Models\Chat;
use App\Models\Message;
use Livewire\Component;
use App\Services\OpenAIService;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
class ChatInterface extends Component
{
public $messages = [];
public $inputMessage = '';
public $chatUuid = '';
public $loading = false;
public function mount($uuid = null)
{
$this->chatUuid = $uuid ?: '';
if ($uuid) {
$this->loadChatMessages();
}
}
public function loadChatMessages()
{
$chat = Chat::where('uuid', $this->chatUuid)->first();
if ($chat) {
$this->messages = Message::where('chat_id', $chat->id)
->orderBy('created_at')
->get()
->toArray();
}
}
public function sendMessage()
{
// $models = app(OpenAIService::class)->models();
// dd($models);
if (trim($this->inputMessage) === '') return;
$chat = Chat::where('uuid', $this->chatUuid)->first();
if (!$chat) {
$this->chatUuid = $this->createNewChat();
$chat = Chat::where('uuid', $this->chatUuid)->first();
}
$userMessage = Message::create([
'chat_id' => $chat->id,
'user_id' => Auth::id(),
'message' => $this->inputMessage,
'sender' => 'user',
]);
$this->messages[] = $userMessage->toArray();
$this->inputMessage = '';
$this->loading = true;
$chatHistory = Message::where('chat_id', $chat->id)
->latest('created_at')
->limit(10)
->get()
->reverse()
->map(function ($message) {
return [
'message' => $message->message,
'sender' => $message->sender,
];
})->toArray();
$response = app(OpenAIService::class)->generateResponse($chatHistory);
$aiMessage = Message::create([
'chat_id' => $chat->id,
'user_id' => Auth::id(),
'message' => $response,
'sender' => 'ai',
]);
$this->messages[] = $aiMessage->toArray();
$this->loading = false;
}
private function createNewChat()
{
$title = app(OpenAIService::class)->generateChatTitle($this->inputMessage);
$chat = Chat::create([
'user_id' => Auth::id(),
'title' => $title,
'uuid' => Str::uuid(),
]);
return $chat->uuid;
}
public function render()
{
return view('livewire.chat-interface');
}
}
it was working perferct before with chat id but when i try to use uuid i get this error
Please or to participate in this conversation.