ORM, основанный на OpenAI, который переводит простой человеческий язык в запросы SQL и выполняет их в базе данных.
В настоящее время поддерживает диалекты базы данных: MySQL, PostgreSQL и SQLite.
Поддерживаемые языки: английский, немецкий, французский, испанский, польский, итальянский, голландский, португальский, украинский, арабский, китайский, японский, корейский, турецкий и многие другие.
ormgpt.query( " give me post with id 1, all comments for this post and user information about author " ) ;Сгенерированный запрос:
SELECT
p . id AS post_id,
p . title ,
p . body ,
c . id AS comment_id,
c . body AS comment_body,
u . username AS author_username,
u . email AS author_email
FROM
posts p
JOIN comments c ON p . id = c . post_id
JOIN users u ON u . id = p . user_id
WHERE
p . id = 1 ;Ответ:
[
{
post_id : 1 ,
title : 'Hello world!' ,
body : 'This is my first post!' ,
comment_id : 1 ,
comment_body : 'Hello world!' ,
author_username : 'test' ,
author_email : '[email protected]'
}
] 
npm install ormgpt
# or
yarn add ormgpt
# or
pnpm add ormgpt Подготовьте файл схемы базы данных, например, schema.sql . Этот файл будет использоваться для генерации запросов.
const client = await createConnection ( {
host : 'localhost' ,
port : 3306 ,
database : 'ormgpt' ,
user : 'root' ,
password : 'mysecretpassword' ,
} ) ;
const mysqlAdapter = new MysqlAdapter ( {
client
} ) ;
const ormgpt = new ormGPT ( {
apiKey : "OPENAI_API_KEY" ,
schemaFilePath : "./example/schema.sql" ,
dialect : "postgres" ,
dbEngineAdapter : mysqlAdapter ,
} ) ;
await ormgpt . query (
"add new user with username 'test' and email '[email protected]'" ,
) ;
const users = await ormgpt . query ( "get all users" ) ;
console . log ( users ) ;Mysql
const client = await createConnection ( {
host : 'localhost' ,
port : 3306 ,
database : 'ormgpt' ,
user : 'root' ,
password : 'mysecretpassword' ,
} ) ;
const mysqlAdapter = new MysqlAdapter ( {
client
} ) ;Постгрес
const client = new Client ( {
host : 'localhost' ,
port : 5432 ,
database : 'ormgpt' ,
user : 'mysecretuser' ,
password : 'mysecretpassword' ,
} ) ;
client . connect ( ) ;
const postgresAdapter = new PostgresAdapter ( {
client
} ) ;SQLite
const sqliteAdapter = new SqliteAdapter ( {
dbFilePath : "./example/db.sqlite" ,
} ) ;За последние два года я обнаружил, что ORM становятся новыми «днями с момента последней структуры JavaScript» в экосистеме JavaScript. А так как ИИ - горячее модное слово, я решил немного поэкспериментировать, чтобы объединить оба и создать ORM, который использует OpenAI для генерации запросов SQL. Пожалуйста, не используйте это в производстве.
Грань