ваше сообщение коммита

This commit is contained in:
2025-06-04 18:39:53 +03:00
parent 59557e4413
commit 80e0cb5272
16 changed files with 504 additions and 265 deletions

View File

@@ -73,16 +73,16 @@ async function processGuestMessages(userId, guestId) {
conversation = lastConvResult.rows[0];
} else {
// Если нет ни одного диалога, создаём новый
const firstMessage = guestMessages[0];
const title = firstMessage.content
? (firstMessage.content.length > 30 ? `${firstMessage.content.substring(0, 30)}...` : firstMessage.content)
: (firstMessage.attachment_filename ? `Файл: ${firstMessage.attachment_filename}` : 'Новый диалог');
const newConversationResult = await db.getQuery()(
'INSERT INTO conversations (user_id, title) VALUES ($1, $2) RETURNING *',
[userId, title]
);
const firstMessage = guestMessages[0];
const title = firstMessage.content
? (firstMessage.content.length > 30 ? `${firstMessage.content.substring(0, 30)}...` : firstMessage.content)
: (firstMessage.attachment_filename ? `Файл: ${firstMessage.attachment_filename}` : 'Новый диалог');
const newConversationResult = await db.getQuery()(
'INSERT INTO conversations (user_id, title) VALUES ($1, $2) RETURNING *',
[userId, title]
);
conversation = newConversationResult.rows[0];
logger.info(`Created new conversation ${conversation.id} for guest messages`);
logger.info(`Created new conversation ${conversation.id} for guest messages`);
}
// --- КОНЕЦ блока поиска/создания диалога ---
@@ -151,18 +151,18 @@ async function processGuestMessages(userId, guestId) {
rules ? rules.rules : null
);
logger.info('AI response for guest message received' + (aiResponseContent ? '' : ' (empty)'), { conversationId: conversation.id });
if (aiResponseContent) {
if (aiResponseContent) {
await db.getQuery()(
`INSERT INTO messages
`INSERT INTO messages
(conversation_id, user_id, content, sender_type, role, channel)
VALUES ($1, $2, $3, 'assistant', 'assistant', 'web')`,
[conversation.id, userId, aiResponseContent]
);
);
logger.info('AI response for guest message saved', { conversationId: conversation.id });
}
}
} catch (aiError) {
logger.error('Error getting or saving AI response for guest message:', aiError);
}
}
}
}
// --- конец блока генерации ответа ИИ ---
@@ -361,16 +361,16 @@ router.post('/message', requireAuth, upload.array('attachments'), async (req, re
conversationId = conversation.id;
} else {
// Создаем новый диалог, если нет ни одного
const title = message
? (message.length > 50 ? `${message.substring(0, 50)}...` : message)
: (file ? `Файл: ${file.originalname}` : 'Новый диалог');
const newConvResult = await db.getQuery()(
'INSERT INTO conversations (user_id, title) VALUES ($1, $2) RETURNING *',
[userId, title]
);
conversation = newConvResult.rows[0];
conversationId = conversation.id;
logger.info('Created new conversation', { conversationId, userId });
const title = message
? (message.length > 50 ? `${message.substring(0, 50)}...` : message)
: (file ? `Файл: ${file.originalname}` : 'Новый диалог');
const newConvResult = await db.getQuery()(
'INSERT INTO conversations (user_id, title) VALUES ($1, $2) RETURNING *',
[userId, title]
);
conversation = newConvResult.rows[0];
conversationId = conversation.id;
logger.info('Created new conversation', { conversationId, userId });
}
}

View File

@@ -23,10 +23,10 @@ router.get('/', async (req, res, next) => {
// Создать новую таблицу (доступно всем)
router.post('/', async (req, res, next) => {
try {
const { name, description } = req.body;
const { name, description, isRagSourceId } = req.body;
const result = await db.getQuery()(
'INSERT INTO user_tables (name, description) VALUES ($1, $2) RETURNING *',
[name, description || null]
'INSERT INTO user_tables (name, description, is_rag_source_id) VALUES ($1, $2, $3) RETURNING *',
[name, description || null, isRagSourceId || 2]
);
res.json(result.rows[0]);
} catch (err) {
@@ -38,10 +38,12 @@ router.post('/', async (req, res, next) => {
router.get('/:id', async (req, res, next) => {
try {
const tableId = req.params.id;
const tableMetaResult = await db.getQuery()('SELECT name, description FROM user_tables WHERE id = $1', [tableId]);
const tableMeta = tableMetaResult.rows[0] || { name: '', description: '' };
const columns = (await db.getQuery()('SELECT * FROM user_columns WHERE table_id = $1 ORDER BY "order" ASC, id ASC', [tableId])).rows;
const rows = (await db.getQuery()('SELECT * FROM user_rows WHERE table_id = $1 ORDER BY id', [tableId])).rows;
const cellValues = (await db.getQuery()('SELECT * FROM user_cell_values WHERE row_id IN (SELECT id FROM user_rows WHERE table_id = $1)', [tableId])).rows;
res.json({ columns, rows, cellValues });
res.json({ name: tableMeta.name, description: tableMeta.description, columns, rows, cellValues });
} catch (err) {
next(err);
}
@@ -181,14 +183,15 @@ router.patch('/column/:columnId', async (req, res, next) => {
router.patch('/:id', async (req, res, next) => {
try {
const tableId = req.params.id;
const { name, description } = req.body;
const { name, description, isRagSourceId } = req.body;
const result = await db.getQuery()(
`UPDATE user_tables SET
name = COALESCE($1, name),
description = COALESCE($2, description),
is_rag_source_id = COALESCE($3, is_rag_source_id),
updated_at = NOW()
WHERE id = $3 RETURNING *`,
[name, description, tableId]
WHERE id = $4 RETURNING *`,
[name, description, isRagSourceId, tableId]
);
res.json(result.rows[0]);
} catch (err) {