Files
TicketAssistent/app/Observers/ArticleObserver.php

27 lines
679 B
PHP

<?php
namespace App\Observers;
use App\Jobs\GenerateArticleEmbeddingJob;
use App\Models\Article;
use App\Services\EmbeddingService;
class ArticleObserver
{
public function saved(Article $article): void
{
if (! $article->wasChanged(['title', 'content']) && $article->embedding !== null) {
return;
}
if ((bool) config('services.embedding.queue_embeddings')) {
GenerateArticleEmbeddingJob::dispatch($article->id);
return;
}
$service = app(EmbeddingService::class);
$article->embedding = $service->embed($article->title."\n".$article->content);
$article->saveQuietly();
}
}