Alpha V2.5.9a

This commit is contained in:
Flatlogic Bot 2026-03-07 03:32:51 +00:00
parent ca9f149495
commit dbe9be88d0
4 changed files with 574 additions and 476 deletions

1022
admin.php

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ $input = json_decode(file_get_contents('php://input'), true);
$message = $input['message'] ?? '';
if (empty($message)) {
echo json_encode(['reply' => "I didn't catch that. Could you repeat?"]);
echo json_encode(['reply' => "Je n'ai pas bien compris. Pouvez-vous répéter ?"]);
exit;
}
@ -16,18 +16,18 @@ try {
$stmt = db()->query("SELECT keywords, answer FROM faqs");
$faqs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$knowledgeBase = "Here is the knowledge base for this website:\n\n";
$knowledgeBase = "Voici la base de connaissances pour ce site Web :\n\n";
foreach ($faqs as $faq) {
$knowledgeBase .= "Q: " . $faq['keywords'] . "\nA: " . $faq['answer'] . "\n---\n";
}
// 2. Construct Prompt for AI
$systemPrompt = "You are a helpful, friendly AI assistant for this website. " .
"Use the provided Knowledge Base to answer user questions accurately. " .
"If the answer is found in the Knowledge Base, rephrase it naturally. " .
$systemPrompt = "Vous êtes un assistant IA utile et amical pour ce site Web. " .
"Utilisez la base de connaissances fournie pour répondre avec précision aux questions des utilisateurs. " .
"Si la réponse se trouve dans la base de connaissances, reformulez-la naturellement. " .
"If the answer is NOT in the Knowledge Base, use your general knowledge to help, " .
"but politely mention that you don't have specific information about that if it seems like a site-specific question. " .
"Keep answers concise and professional.\n\n" .
"Gardez les réponses concises et professionnelles. RÉPONDEZ TOUJOURS EN FRANÇAIS.\n\n" .
$knowledgeBase;
// 3. Call AI API
@ -55,10 +55,10 @@ try {
} else {
// Fallback if AI fails
error_log("AI Error: " . ($response['error'] ?? 'Unknown'));
echo json_encode(['reply' => "I'm having trouble connecting to my brain right now. Please try again later."]);
echo json_encode(['reply' => "J'ai du mal à me connecter à mon cerveau pour le moment. Veuillez réessayer plus tard."]);
}
} catch (Exception $e) {
error_log("Chat Error: " . $e->getMessage());
echo json_encode(['reply' => "An internal error occurred."]);
echo json_encode(['reply' => "Une erreur interne est survenue."]);
}

View File

@ -33,7 +33,7 @@ document.addEventListener('DOMContentLoaded', () => {
}, 500);
} catch (error) {
console.error('Error:', error);
appendMessage("Sorry, something went wrong. Please try again.", 'bot');
appendMessage("Désolé, une erreur est survenue. Veuillez réessayer.", 'bot');
}
});
});

View File

@ -81,10 +81,10 @@ if (isset($_SESSION['user_id'])) {
LEFT JOIN user_resources ur ON gr.id = ur.resource_id AND ur.user_id = ?
WHERE gr.show_in_header = 1
ORDER BY CASE
WHEN gr.name = 'Crédits' THEN 1
WHEN gr.name = 'Materials' THEN 2
WHEN gr.name = 'Energie' THEN 3
WHEN gr.name = 'Données' THEN 4
WHEN gr.name LIKE 'Crédit%' THEN 1
WHEN gr.name LIKE 'Matériau%' THEN 2
WHEN gr.name LIKE 'Energie%' THEN 3
WHEN gr.name LIKE 'Donnée%' THEN 4
ELSE 5
END ASC, gr.name ASC
");
@ -99,7 +99,7 @@ if (isset($_SESSION['user_id'])) {
];
}
} else {
$header_resources = $db->query("SELECT * FROM game_resources WHERE show_in_header = 1 ORDER BY CASE WHEN name = 'Crédits' THEN 1 WHEN name = 'Materials' THEN 2 WHEN name = 'Energie' THEN 3 WHEN name = 'Données' THEN 4 ELSE 5 END ASC, name ASC")->fetchAll(PDO::FETCH_ASSOC);
$header_resources = $db->query("SELECT * FROM game_resources WHERE show_in_header = 1 ORDER BY CASE WHEN name LIKE 'Crédit%' THEN 1 WHEN name LIKE 'Matériau%' THEN 2 WHEN name LIKE 'Energie%' THEN 3 WHEN name LIKE 'Donnée%' THEN 4 ELSE 5 END ASC, name ASC")->fetchAll(PDO::FETCH_ASSOC);
foreach($header_resources as $hr) {
$resources[$hr["name"]] = ["val" => "0", "prod" => "", "icon" => $hr["icon"] ?: "fa-gem", "image" => $hr["image_url"]];
}