Nota
Este paquete está destinado a ser un recurso de aprendizaje para ingeniería rápida y cómo lograr la generación de consultas generada por IA con PHP/Laravel. Probablemente no deberías usar esto en producción
Ask DB le permite usar el GPT-3 de OpenAI para construir consultas de bases de datos de lenguaje natural.
DB :: ask ( ' How many users do we have on the "pro" plan? ' );Puede instalar el paquete a través del compositor:
composer require beyondcode/laravel-ask-databasePuede publicar el archivo de configuración con:
php artisan vendor:publish --tag= " ask-database-config "Este es el contenido del archivo de configuración publicado:
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 ),
]; Primero, debe configurar su tecla API de OpenAI en su archivo .env :
OPENAI_API_KEY = sk-... Luego, puede usar el método DB::ask() para preguntar a la base de datos:
$ response = DB :: ask ( ' How many users are there? ' );composer test Consulte ChangeLog para obtener más información sobre lo que ha cambiado recientemente.
Consulte contribuyendo para obtener más detalles.
La licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.