mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 10:16:00 +00:00
AI assistant
This commit is contained in:
@@ -34,6 +34,8 @@ const pipeForkLogs = require('../utility/pipeForkLogs');
|
||||
const crypto = require('crypto');
|
||||
const loadModelTransform = require('../utility/loadModelTransform');
|
||||
const exportDbModelSql = require('../utility/exportDbModelSql');
|
||||
const axios = require('axios');
|
||||
const { getAuthProxyUrl } = require('../utility/authProxy');
|
||||
|
||||
const logger = getLogger('databaseConnections');
|
||||
|
||||
@@ -562,4 +564,35 @@ module.exports = {
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
textToSql_meta: true,
|
||||
async textToSql({ conid, database, text, dialect }) {
|
||||
const existing = this.opened.find(x => x.conid == conid && x.database == database);
|
||||
const { structure } = existing || {};
|
||||
if (!structure) return { errorMessage: 'No database structure' };
|
||||
const model = {
|
||||
tables: structure.tables.map(table => ({
|
||||
name: table.pureName,
|
||||
columns: table.columns.map(column => column.columnName),
|
||||
primaryKey: table.primaryKey?.columns?.map(column => column.columnName),
|
||||
foreignKeys: table.foreignKeys.map(fk => ({
|
||||
refTable: fk.refTableName,
|
||||
column: fk.columns[0]?.columnName,
|
||||
refColumn: fk.columns[0]?.refColumnName,
|
||||
})),
|
||||
})),
|
||||
};
|
||||
|
||||
const resp = await axios.default.post(`${getAuthProxyUrl()}/text-to-sql`, {
|
||||
text,
|
||||
model,
|
||||
dialect,
|
||||
});
|
||||
|
||||
if (!resp.data.sql) {
|
||||
return { errorMessage: 'No SQL generated' };
|
||||
}
|
||||
|
||||
return resp.data;
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user