Note
This package is meant to be a learning resource for prompt engineering and how to achieve AI-generated query generation with PHP/Laravel. You should probably not use this in production
Ask DB allows you to use OpenAI's GPT-3 to build natural language database queries.
DB::ask('How many users do we have on the "pro" plan?');
You can install the package via composer:
composer require beyondcode/laravel-ask-database
You can publish the config file with:
php artisan vendor:publish --tag="ask-database-config"
This is the contents of the published config file:
return [
/**
* The database connection name to use. Depending on your
* use case, you might want to limit the database user
* to have read-only access to the database.
*/
'connection' => env('ASK_DATABASE_DB_CONNECTION', 'mysql'),
/**
* Strict mode will throw an exception when the query
* would perform a write/alter operation on the database.
*
* If you want to allow write operations - or if you are using a read-only
* database user - you may disable strict mode.
*/
'strict_mode' => env('ASK_DATABASE_STRICT_MODE', true),
/**
* The maximum number of tables to use before performing an additional
* table name lookup call to OpenAI.
* If you have a lot of database tables and columns, they might not fit
* into a single request to OpenAI. In that case, we will perform a
* lookup call to OpenAI to get the matching table names for the
* provided question.
*/
'max_tables_before_performing_lookup' => env('ASK_DATABASE_MAXIMUM_TABLES', 15),
];
First, you need to configure your OpenAI API key in your .env
file:
OPENAI_API_KEY=sk-...
Then, you can use the DB::ask()
method to ask the database:
$response = DB::ask('How many users are there?');
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.