You can install the package via composer:
composer require spatie/laravel-url-ai-transformer
##Publishing the config file
Optionally, you can publish the config file with this command:
php artisan vendor:publish --tag="url-ai-transformer-config"
This is the content of the published config file:
return [
'model' => Spatie\LaravelUrlAiTransformer\Models\TransformationResult::class,
'actions' => [
'fetch_url_content' => Spatie\LaravelUrlAiTransformer\Actions\FetchUrlContentAction::class,
'process_registration' => Spatie\LaravelUrlAiTransformer\Actions\ProcessRegistrationAction::class,
],
'process_transformer_job' => Spatie\LaravelUrlAiTransformer\Jobs\ProcessTransformerJob::class,
'ai' => [
'default' => [
'provider' => Prism\Prism\Enums\Provider::OpenAI,
'model' => 'gpt-4o-mini',
],
'image' => [
'provider' => Prism\Prism\Enums\Provider::OpenAI,
'model' => 'dall-e-3',
],
],
];
##Migrating the database
This package stored transformations results in the database. To create the transformation_results
table, you must create and run the migration.
php artisan vendor:publish --tag="url-ai-transformer-migrations"
php artisan migrate
##Configuring AI providers
This package uses Prism under the hood to interact with various AI services. Prism is a powerful, framework-agnostic PHP library that provides a unified interface for working with different AI providers.
By default, the package is configured to use OpenAI's GPT-4 models. To get started, you'll need to add your OpenAI API key to your .env
file:
OPENAI_API_KEY=your-api-key-here
##Using different AI providers
Prism supports multiple AI providers including OpenAI, Anthropic Claude, Google Gemini, and more. You can easily switch providers by updating the config file:
'ai' => [
'default' => [
'provider' => Prism\Prism\Enums\Provider::Anthropic,
'model' => 'claude-3-5-sonnet-20241022',
],
],
Don't forget to add the corresponding API key to your .env
file:
# For Anthropic Claude
ANTHROPIC_API_KEY=your-api-key-here
# For Google Gemini
GEMINI_API_KEY=your-api-key-here
For more information about configuring Prism and the available providers, check out the Prism documentation.