|
|
|
async function sendMessageToChatGPT(message) { |
|
try { |
|
|
|
const response = await fetch('https://api.openai.com/v1/chat/completions', { |
|
method: 'POST', |
|
headers: { |
|
'Content-Type': 'application/json', |
|
'Authorization': 'Bearer YOUR_OPENAI_API_KEY' |
|
}, |
|
body: JSON.stringify({ |
|
model: 'text-davinci-002', |
|
messages: [{ role: 'user', content: message }] |
|
}) |
|
}); |
|
|
|
|
|
const data = await response.json(); |
|
|
|
|
|
const chatGPTResponse = data.choices[0].message.content; |
|
|
|
|
|
return chatGPTResponse; |
|
} catch (error) { |
|
|
|
console.error('Error sending message to ChatGPT:', error); |
|
return 'Sorry, there was an error. Please try again later.'; |
|
} |
|
} |
|
|
|
|
|
function displayMessage(role, content) { |
|
|
|
const messageContainer = document.createElement('div'); |
|
messageContainer.classList.add('message', role); |
|
|
|
|
|
const messageText = document.createElement('span'); |
|
messageText.textContent = content; |
|
|
|
|
|
const copyButton = document.createElement('button'); |
|
copyButton.textContent = 'Copy'; |
|
copyButton.classList.add('copy-button'); |
|
|
|
|
|
copyButton.addEventListener('click', function () { |
|
|
|
navigator.clipboard.writeText(content) |
|
.then(() => { |
|
console.log('Content copied to clipboard:', content); |
|
}) |
|
.catch((error) => { |
|
console.error('Failed to copy content to clipboard:', error); |
|
}); |
|
}); |
|
|
|
|
|
messageContainer.appendChild(messageText); |
|
messageContainer.appendChild(copyButton); |
|
|
|
|
|
document.getElementById('conversation').appendChild(messageContainer); |
|
} |
|
|
|
|
|
document.getElementById('submit').addEventListener('click', async function () { |
|
const userInput = document.getElementById('input').value.trim(); |
|
if (userInput !== '') { |
|
|
|
displayMessage('user', userInput); |
|
|
|
|
|
const chatGPTResponse = await sendMessageToChatGPT(userInput); |
|
|
|
|
|
displayMessage('chatgpt', chatGPTResponse); |
|
} |
|
}); |
|
|