const apiKey = 'AIzaSyCl-R2_mUDEcC3Y8CrpJipUb_2ZJ9CR5wI'; // **HÃY CHẮC CHẮN BẠN ĐÃ THAY THẾ BẰNG API KEY CỦA BẠN**
const apiEndpoint = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=' + apiKey;
const chatHistoryDiv = document.getElementById('chatHistory');
const userInputElement = document.getElementById('userInput');
function handleEnter(event) {
if (event.key === 'Enter') {
sendMessage();
}
}
async function sendMessage() {
const userInput = userInputElement.value;
if (!userInput.trim()) return;
// Hiển thị tin nhắn của người dùng
const userMessageDiv = document.createElement('div');
userMessageDiv.textContent = `Bạn: ${userInput}`;
chatHistoryDiv.appendChild(userMessageDiv);
userInputElement.value = ''; // Xóa input
try {
const response = await fetch(apiEndpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
contents: [{
parts: [{ text: userInput }]
}]
})
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(`HTTP error! status: ${response.status}, details: ${JSON.stringify(errorData)}`);
}
const data = await response.json();
console.log('Phản hồi từ Gemini:', data);
if (data.candidates && data.candidates.length > 0 && data.candidates[0].content && data.candidates[0].content.parts && data.candidates[0].content.parts.length > 0) {
const geminiResponse = data.candidates[0].content.parts[0].text;
const geminiMessageDiv = document.createElement('div');
geminiMessageDiv.textContent = `Gemini: ${geminiResponse}`;
chatHistoryDiv.appendChild(geminiMessageDiv);
} else {
const errorMessageDiv = document.createElement('div');
errorMessageDiv.textContent = 'Gemini không có phản hồi hợp lệ.';
chatHistoryDiv.appendChild(errorMessageDiv);
}
} catch (error) {
console.error('Lỗi gọi API:', error);
const errorDiv = document.createElement('div');
errorDiv.textContent = `Lỗi: ${error.message}`;
chatHistoryDiv.appendChild(errorDiv);
} finally {
chatHistoryDiv.scrollTop = chatHistoryDiv.scrollHeight;
}
}