sfolador / ai-email-suggest
This package helps user to fix typos in email addresses by using openai api to suggest a valid email address.
Requires
- php: ^8.1
- illuminate/contracts: ^10.0
- openai-php/client: ^0.3.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.4.1
- nunomaduro/collision: ^7.0.0
- nunomaduro/larastan: ^2.4
- orchestra/testbench: ^8.0-dev
- pestphp/pest: ^2.0.0
- pestphp/pest-plugin-laravel: ^2.x-dev
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^10.0
README
Never worry about typos in email addresses in Laravel
This package provides a simple way to suggest email addresses based on a given email address. The typical use case is when a user enters an email address with typos, i.e.: example@gmial.com. This package uses OpenAI to suggest an email addresses that are likely to be correct.
Installation
You can install the package via composer:
composer require sfolador/ai-email-suggest
You can publish the config file with:
php artisan vendor:publish --tag="ai-email-suggest-config"
This is the contents of the published config file:
return [ 'model' => 'text-davinci-003', 'openai_key' => env('OPENAI_KEY'), 'default_route' => 'ai-email-suggest', 'use_cache' => true, // If you want to use the chatgpt API, // you need to set the following value to true: 'use_chatgpt_api' => false, 'throttle' => [ 'enabled' => false, 'max_attempts' => 60, 'prefix' => 'ai-email-suggest', ], ];
Remember to set your OpenAI key in your .env file.
Usage
$aiEmailSuggest = AiEmailSuggest::suggest('test@yaohh.com'); // $aiEmailSuggest = 'test@yahoo.com'
It's possible to use this package from the frontend by invoking the route: "/ai-email-suggest" in POST by passing the email as a parameter. The response will be a JSON with the suggested email, such as:
{ "suggestion": "test@yahoo.com" }
Cache clear
If you use a Cache driver that supports tags, you can clear the cache by invoking the command:
php artisan ai-email-suggest:clear-cache
ChatGTP
You can use the new ChatGPT API by setting the config value use_chatgpt_api
to true
.
Testing
composer test
TODO
- Add caching to avoid too many requests to OpenAI
- Add throttling to avoid too many requests to OpenAI
- Add support for cache clear
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.