From 63ad2fc97082f43b75cc28caf3c3d1e768a48140 Mon Sep 17 00:00:00 2001 From: Christian Beeznest Date: Thu, 15 Jan 2026 02:08:43 -0500 Subject: [PATCH 1/3] Chat: Add global chat AI tutor: exam lock, prompt, and history - refs #7306 --- assets/vue/components/chat/DockedChat.vue | 790 ++++++++++++------ public/main/inc/lib/chat.lib.php | 308 +++++-- public/main/inc/lib/exercise.lib.php | 45 +- .../AiChatCompletionClientInterface.php | 24 + .../AiProvider/AiChatCompletionResult.php | 18 + .../AiProvider/AiTutorChatService.php | 456 ++++++++++ .../DefaultAiChatCompletionClient.php | 205 +++++ .../AiProvider/GrokDocumentProvider.php | 154 ---- .../AiProvider/GrokImageProvider.php | 150 ---- src/CoreBundle/AiProvider/OpenAiProvider.php | 335 ++++++++ src/CoreBundle/Controller/ChatController.php | 659 +++++++++++++-- src/CoreBundle/Entity/AiTutorConversation.php | 3 +- src/CoreBundle/Entity/AiTutorMessage.php | 3 +- src/CoreBundle/Entity/Chat.php | 7 +- src/CoreBundle/Helpers/AiHelper.php | 242 ++++++ src/CoreBundle/Helpers/LanguageHelper.php | 103 ++- .../AiTutorConversationRepository.php | 77 ++ src/CoreBundle/Repository/ChatRepository.php | 73 ++ .../Repository/LanguageRepository.php | 2 +- src/CoreBundle/Resources/config/services.yml | 4 + .../Resources/views/Chat/chat.html.twig | 79 +- 21 files changed, 3016 insertions(+), 721 deletions(-) create mode 100644 src/CoreBundle/AiProvider/AiChatCompletionClientInterface.php create mode 100644 src/CoreBundle/AiProvider/AiChatCompletionResult.php create mode 100644 src/CoreBundle/AiProvider/AiTutorChatService.php create mode 100644 src/CoreBundle/AiProvider/DefaultAiChatCompletionClient.php delete mode 100644 src/CoreBundle/AiProvider/GrokDocumentProvider.php delete mode 100644 src/CoreBundle/AiProvider/GrokImageProvider.php create mode 100644 src/CoreBundle/Helpers/AiHelper.php create mode 100644 src/CoreBundle/Repository/AiTutorConversationRepository.php create mode 100644 src/CoreBundle/Repository/ChatRepository.php diff --git a/assets/vue/components/chat/DockedChat.vue b/assets/vue/components/chat/DockedChat.vue index 8ef55a3c5db..3b0d3417c63 100644 --- a/assets/vue/components/chat/DockedChat.vue +++ b/assets/vue/components/chat/DockedChat.vue @@ -1,6 +1,9 @@