spatie/laravel-url-ai-transformer
Laravel package to transform URLs and their web content with AI. Extract structured data (JSON-LD), generate summaries, images, or custom outputs via transformers and prompts. Runs via an Artisan command and stores results in the database for later retrieval.
Actions are class that handle the core operations of the package. By overriding them, you can customize how low-level operations are performed.
Here's an example where we are going to add authentication headers when fetching certain URLs.
// app/Actions/CustomFetchUrlContentAction.php
namespace App\Actions;
use Spatie\LaravelUrlAiTransformer\Actions\FetchUrlContentAction;
use Illuminate\Support\Facades\Http;
class CustomFetchUrlContentAction extends FetchUrlContentAction
{
public function execute(string $url): string
{
if (str_contains($url, 'api.mycompany.com')) {
$response = Http::withHeaders([
'Authorization' => 'Bearer ' . config('services.internal_api.token'),
'Accept' => 'application/json',
])->get($url);
return $response->body();
}
parent::execute($url);
}
}
Register your custom action in the config file:
// config/url-ai-transformer.php
return [
'actions' => [
'fetch_url_content' => App\Actions\CustomFetchUrlContentAction::class,
// ... other actions
],
];
How can I help you explore Laravel packages today?