.
This commit is contained in:
@@ -1599,21 +1599,47 @@ public class MarketingAnalysisService {
|
||||
}
|
||||
break;
|
||||
case "swot":
|
||||
// Новая структура: strategyAnalysis.globalSwot
|
||||
if (fullJson.containsKey("swot")) {
|
||||
context.put("swot", fullJson.get("swot"));
|
||||
} else if (fullJson.containsKey("strategyAnalysis")) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> strategyAnalysis = (Map<String, Object>) fullJson.get("strategyAnalysis");
|
||||
if (strategyAnalysis != null && strategyAnalysis.get("globalSwot") != null) {
|
||||
context.put("swot", strategyAnalysis.get("globalSwot"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "channels":
|
||||
// Новая структура: strategyAnalysis.channelsPotential (List)
|
||||
if (fullJson.containsKey("channels")) {
|
||||
context.put("channels", fullJson.get("channels"));
|
||||
}
|
||||
if (fullJson.containsKey("channelsPotential")) {
|
||||
context.put("channelsPotential", fullJson.get("channelsPotential"));
|
||||
} else if (fullJson.containsKey("strategyAnalysis")) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> strategyAnalysis = (Map<String, Object>) fullJson.get("strategyAnalysis");
|
||||
if (strategyAnalysis != null && strategyAnalysis.get("channelsPotential") != null) {
|
||||
Object channelsPotential = strategyAnalysis.get("channelsPotential");
|
||||
context.put("channelsPotential", channelsPotential);
|
||||
// Alias: чтобы текущие промпты (про channels) работали даже без старого ключа
|
||||
if (!context.containsKey("channels")) {
|
||||
context.put("channels", channelsPotential);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "funnel":
|
||||
// Новая структура: strategyAnalysis.funnel (Map со stages)
|
||||
if (fullJson.containsKey("funnel")) {
|
||||
context.put("funnel", fullJson.get("funnel"));
|
||||
} else if (fullJson.containsKey("strategyAnalysis")) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> strategyAnalysis = (Map<String, Object>) fullJson.get("strategyAnalysis");
|
||||
if (strategyAnalysis != null && strategyAnalysis.get("funnel") != null) {
|
||||
context.put("funnel", strategyAnalysis.get("funnel"));
|
||||
}
|
||||
}
|
||||
if (fullJson.containsKey("conversionFunnel")) {
|
||||
context.put("conversionFunnel", fullJson.get("conversionFunnel"));
|
||||
@@ -4057,8 +4083,9 @@ public class MarketingAnalysisService {
|
||||
|
||||
// Паттерн для поиска следующего раздела: может быть markdown заголовок или
|
||||
// римская цифра
|
||||
java.util.regex.Pattern nextSectionPattern = java.util.regex.Pattern
|
||||
.compile("^(##+\\s*[IVX]+\\.|\\s*[IVX]+\\.\\s+[А-Я])", java.util.regex.Pattern.MULTILINE);
|
||||
java.util.regex.Pattern nextSectionPattern = java.util.regex.Pattern.compile(
|
||||
"^(##+\\s*[IVX]+\\.|\\s*[IVX]+\\.\\s+[A-ZА-Я])",
|
||||
java.util.regex.Pattern.MULTILINE);
|
||||
java.util.regex.Matcher nextSectionMatcher = nextSectionPattern.matcher(remainingText);
|
||||
|
||||
String blocks = blocksToInsert.toString();
|
||||
@@ -4070,7 +4097,7 @@ public class MarketingAnalysisService {
|
||||
} else {
|
||||
// Ищем следующий раздел по римской цифре
|
||||
java.util.regex.Pattern romanNumeralPattern = java.util.regex.Pattern
|
||||
.compile("\\n\\s*[IVX]+\\.\\s+[А-Я]", java.util.regex.Pattern.MULTILINE);
|
||||
.compile("\\n\\s*[IVX]+\\.\\s+[A-ZА-Я]", java.util.regex.Pattern.MULTILINE);
|
||||
java.util.regex.Matcher romanMatcher = romanNumeralPattern.matcher(remainingText);
|
||||
|
||||
if (romanMatcher.find()) {
|
||||
|
||||
Reference in New Issue
Block a user