diff --git a/src/main/java/ru/cathub/telegabot/service/impl/BookAiServiceImpl.java b/src/main/java/ru/cathub/telegabot/service/impl/BookAiServiceImpl.java index ef67ec7..c9611c3 100644 --- a/src/main/java/ru/cathub/telegabot/service/impl/BookAiServiceImpl.java +++ b/src/main/java/ru/cathub/telegabot/service/impl/BookAiServiceImpl.java @@ -11,6 +11,11 @@ import ru.cathub.telegabot.repository.BookRepository; import ru.cathub.telegabot.service.BookAiService; import ru.cathub.telegabot.service.TelegramClientService; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import static ru.cathub.telegabot.model.BotUser.WorkingMode.*; import static ru.cathub.telegabot.utils.BookFormatUtils.escapeNonMarkdown; @@ -29,7 +34,13 @@ public class BookAiServiceImpl implements BookAiService { try { String response = null; List> context = new ArrayList<>(); - + TextRole role; + switch (workingMode) { + case AI_FILTER -> role = TextRole.FILTERER; + case AI_SUGGEST -> role = TextRole.SUGGESTER; + default -> throw new RuntimeException("Invalid working mode"); + } + context.add(Map.of("role", "system", "content", role.getPrompt())); // Добавляем книги пользователя в контекст bookRepository.findByBotUser(user).forEach(book -> { Map bookMap = new HashMap<>(); @@ -38,10 +49,8 @@ public class BookAiServiceImpl implements BookAiService { book.getTitle(), book.getAuthor(), book.getRating())); context.add(bookMap); }); - switch (workingMode) { - case AI_FILTER -> response = openRouterServiceImpl.getChatResponseWithContext(text, context); - case AI_SUGGEST -> response = openRouterServiceImpl.getChatResponseWithContext(text, context); - } + response = openRouterServiceImpl.getChatResponseWithContext(text, context); + log.info("AI response generated: {}", response); telegramClientService.sendMessageWithMarkdown(user, escapeNonMarkdown(response)); } catch (Exception e) { diff --git a/src/main/java/ru/cathub/telegabot/utils/BookFormatUtils.java b/src/main/java/ru/cathub/telegabot/utils/BookFormatUtils.java index 243bf2c..ee3b66c 100644 --- a/src/main/java/ru/cathub/telegabot/utils/BookFormatUtils.java +++ b/src/main/java/ru/cathub/telegabot/utils/BookFormatUtils.java @@ -31,7 +31,7 @@ public class BookFormatUtils { } public static String escapeNonMarkdown(String text) { - return text.replaceAll("([().!-])", "\\\\$1"); + return text.replaceAll("([\\[\\]()~`>#+=|{}.!-])", "\\\\$1"); } public static String formatDate(Date date) {