sfolador/ai-email-suggest

This package helps user to fix typos in email addresses by using openai api to suggest a valid email address.

1.0.10 2023-02-11 17:16 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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.