/
DmitriyGkode
/
A_B_Split_Testing
Обзор
Документация
Войти
/
DmitriyGkode
/
A_B_Split_Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Code.js
46 строк
2 KB
Dimitriy
Create: Code.js, methodology.md, prompt_A.md, prompt_B.md, test_queries.md
18 июн 2026, 22:36
Верифицирован
18 июн 2026, 22:36
8241cdf
Код
Авторство
О чём код?
function doPost(e) { try { var data = JSON.parse(e.postData.contents); var action = data.action; var ss = SpreadsheetApp.getActiveSpreadsheet(); if (action === 'get_session') { var sheet = ss.getSheetByName('split_test_sessions'); var sessionId = data.session_id; var values = sheet.getDataRange().getValues(); var headers = values[0]; var sessionIdCol = headers.indexOf('session_id'); var altCol = headers.indexOf('show_alternative'); for (var i = 1; i < values.length; i++) { if (values[i][sessionIdCol] === sessionId) { return ContentService.createTextOutput(JSON.stringify({ exists: true, show_alternative: String(values[i][altCol]).toLowerCase() === 'true' })).setMimeType(ContentService.MimeType.JSON); } } return ContentService.createTextOutput(JSON.stringify({ exists: false, show_alternative: null })) .setMimeType(ContentService.MimeType.JSON); } else if (action === 'save_session') { var sheet = ss.getSheetByName('split_test_sessions'); sheet.appendRow([data.session_id, data.show_alternative]); return ContentService.createTextOutput(JSON.stringify({ success: true })) .setMimeType(ContentService.MimeType.JSON); } else if (action === 'log_result') { var sheet = ss.getSheetByName('ab_test_logs'); sheet.appendRow([data.session_id, data.prompt_version, data.input, data.output, new Date()]); return ContentService.createTextOutput(JSON.stringify({ success: true })) .setMimeType(ContentService.MimeType.JSON); } return ContentService.createTextOutput(JSON.stringify({ error: 'Unknown action' })) .setMimeType(ContentService.MimeType.JSON); } catch (err) { return ContentService.createTextOutput(JSON.stringify({ error: err.toString() })) .setMimeType(ContentService.MimeType.JSON); } }