AI assistant

This commit is contained in:
SPRINX0\prochazka
2025-02-05 18:56:00 +01:00
parent 07a2e2fa26
commit babfcb6108
4 changed files with 63 additions and 4 deletions

View File

@@ -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;
},
};