| 1234567891011121314151617181920212223242526272829 |
- <?php
- namespace App\Services;
- use App\Enums\Status;
- use App\Jobs\AskQuestionJob;
- use App\Models\Chat;
- use App\Models\Message;
- use Illuminate\Support\Facades\Bus;
- class MessageService
- {
- /**
- * @throws \Throwable
- */
- public function create(Chat $chat, string $content, string $sender = 'human'): void
- {
- $message = new Message(['role' => $sender, 'content' => $content]);
- $chat->messages()->save($message);
- $answer = $chat->messages()->create(['role' => 'ai', 'status' => Status::Loading]);
- $batch = Bus::batch([new AskQuestionJob($answer, $content)])
- ->name('Ask Model')
- ->onQueue('primary')
- ->dispatch();
- $chat->batches()->attach($batch->id);
- }
- }
|