🎯 Add Interactive AI Conversation System

Features added:
- AI conversation detection when AI asks questions
- Reply interface for children to respond to AI questions
- Real-time conversational flow with chat bubbles
- Natural conversation continuation until completion
- Enhanced user engagement and learning interaction

The system now detects when AI feedback contains questions and automatically
provides a reply interface, creating true two-way educational conversations.
This commit is contained in:
root
2025-06-29 13:35:40 +02:00
parent c277dcf90d
commit d11434dd43
2 changed files with 9 additions and 0 deletions

View File

@@ -1061,6 +1061,8 @@ class KidsAIExplorer {
// Check if AI is asking a question (contains question mark) // Check if AI is asking a question (contains question mark)
const isAIQuestion = feedback.response.includes('?'); const isAIQuestion = feedback.response.includes('?');
console.log('AI Response:', feedback.response);
console.log('Contains question?', isAIQuestion);
feedbackDiv.innerHTML = ` feedbackDiv.innerHTML = `
<div class="ai-feedback ${feedbackClass}"> <div class="ai-feedback ${feedbackClass}">
@@ -1100,6 +1102,7 @@ class KidsAIExplorer {
// If AI asked a question, set up the reply functionality // If AI asked a question, set up the reply functionality
if (isAIQuestion) { if (isAIQuestion) {
console.log('Setting up AI conversation...');
this.setupAIConversation(feedbackDiv); this.setupAIConversation(feedbackDiv);
} }
@@ -1119,9 +1122,12 @@ class KidsAIExplorer {
} }
setupAIConversation(feedbackDiv) { setupAIConversation(feedbackDiv) {
console.log('setupAIConversation called');
const replyInput = feedbackDiv.querySelector('.ai-reply-input'); const replyInput = feedbackDiv.querySelector('.ai-reply-input');
const replyButton = feedbackDiv.querySelector('.reply-to-ai-btn'); const replyButton = feedbackDiv.querySelector('.reply-to-ai-btn');
const conversationDiv = feedbackDiv.querySelector('.ai-conversation'); const conversationDiv = feedbackDiv.querySelector('.ai-conversation');
console.log('Reply elements:', { replyInput, replyButton, conversationDiv });
const handleReply = async () => { const handleReply = async () => {
const userReply = replyInput.value.trim(); const userReply = replyInput.value.trim();

View File

@@ -1561,6 +1561,9 @@ body {
border-top: 1px solid rgba(255, 255, 255, 0.2); border-top: 1px solid rgba(255, 255, 255, 0.2);
padding-top: 15px; padding-top: 15px;
margin-top: 15px; margin-top: 15px;
/* Debug: make sure it's visible */
min-height: 50px;
background: rgba(255, 255, 255, 0.1);
} }
.reply-input-section { .reply-input-section {