This commit is contained in:
root
2026-01-13 01:23:29 +05:00
parent fbee8a9ed4
commit 473ca1e31f
@@ -680,10 +680,10 @@ public class MarketingAnalysisService {
+ "3) Используй реальные цифры/темпы роста/проценты из evidence (researchPack). Если конкретных цифр нет — сделай Analytical Extrapolation, " + "3) Используй реальные цифры/темпы роста/проценты из evidence (researchPack). Если конкретных цифр нет — сделай Analytical Extrapolation, "
+ "но НИКОГДА не пиши «данных нет/не найдено/недоступно».\n" + "но НИКОГДА не пиши «данных нет/не найдено/недоступно».\n"
+ "4) Соблюдай типы:\n" + "4) Соблюдай типы:\n"
+ " - проценты/строки формата \"76/100\", \"+27%\", \"1.34x\" => string\n" + " - проценты/рейтинги/коэффициенты (форматы: +N%, A/B, Kx) => string\n"
+ " - monthly_online_index.* => number (double)\n" + " - monthly_online_index.* => number (double)\n"
+ " - funnel_metrics.leads/bookings/payments => integer\n" + " - funnel_metrics.leads/bookings/payments => integer\n"
+ " - market_overview.geography => object with city names as keys and interest_index as integer values: {\"Алматы\": 20, \"Астана\": 30}\n" + " - market_overview.geography => object: ключ=город, значение=целое число (индекс интереса, 0..100)\n"
+ "5) Пиши на русском языке.\n" + "5) Пиши на русском языке.\n"
+ "6) НИКОГДА не копируй значения из примера. В примере намеренно стоят плейсхолдеры, " + "6) НИКОГДА не копируй значения из примера. В примере намеренно стоят плейсхолдеры, "
+ "которые начинаются с 'EXAMPLE__' и числа -9999/-9999.0 — в твоем ответе их быть НЕ должно." + "которые начинаются с 'EXAMPLE__' и числа -9999/-9999.0 — в твоем ответе их быть НЕ должно."
@@ -697,6 +697,7 @@ public class MarketingAnalysisService {
// 3) Call OpenAI (sleep to reduce 429 rate-limit bursts) + guard against // 3) Call OpenAI (sleep to reduce 429 rate-limit bursts) + guard against
// copying placeholders // copying placeholders
// ВАЖНО: Для генерации V2 отчёта ВСЕГДА используется gpt-4o (textModelName)
String lastCleaned = null; String lastCleaned = null;
for (int attempt = 1; attempt <= 2; attempt++) { for (int attempt = 1; attempt <= 2; attempt++) {
try { try {
@@ -714,11 +715,12 @@ public class MarketingAnalysisService {
+ " Верни ТОЛЬКО JSON."; + " Верни ТОЛЬКО JSON.";
} }
// Для V2 всегда используется gpt-4o (textModelName), независимо от detailLevel
String aiResponse = openAIAnalyticsService.generateWithInstructionWithModel( String aiResponse = openAIAnalyticsService.generateWithInstructionWithModel(
contextJson, contextJson,
attemptInstruction, attemptInstruction,
"ru", "ru",
textModelName, textModelName, // gpt-4o - всегда для V2
systemPrompt, systemPrompt,
15000, 15000,
180000L); 180000L);