File size: 2,966 Bytes
1a25ebd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// Function to send user input to ChatGPT API and handle response
async function sendMessageToChatGPT(message) {
    try {
        // Make a POST request to ChatGPT API with user input
        const response = await fetch('https://api.openai.com/v1/chat/completions', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer YOUR_OPENAI_API_KEY' // Replace with your OpenAI API key
            },
            body: JSON.stringify({
                model: 'text-davinci-002', // Sample model for demonstration
                messages: [{ role: 'user', content: message }]
            })
        });

        // Parse the response JSON
        const data = await response.json();

        // Extract the response message from the API response
        const chatGPTResponse = data.choices[0].message.content;

        // Return the response message
        return chatGPTResponse;
    } catch (error) {
        // Handle any errors that occur during the API request
        console.error('Error sending message to ChatGPT:', error);
        return 'Sorry, there was an error. Please try again later.';
    }
}

// Function to display conversation message
function displayMessage(role, content) {
    // Create message container
    const messageContainer = document.createElement('div');
    messageContainer.classList.add('message', role);

    // Create message text
    const messageText = document.createElement('span');
    messageText.textContent = content;

    // Create copy button
    const copyButton = document.createElement('button');
    copyButton.textContent = 'Copy';
    copyButton.classList.add('copy-button');

    // Add click event listener to copy button
    copyButton.addEventListener('click', function () {
        // Copy message content to clipboard
        navigator.clipboard.writeText(content)
            .then(() => {
                console.log('Content copied to clipboard:', content);
            })
            .catch((error) => {
                console.error('Failed to copy content to clipboard:', error);
            });
    });

    // Append elements to message container
    messageContainer.appendChild(messageText);
    messageContainer.appendChild(copyButton);

    // Append message container to conversation
    document.getElementById('conversation').appendChild(messageContainer);
}

// Event listener for submit button click
document.getElementById('submit').addEventListener('click', async function () {
    const userInput = document.getElementById('input').value.trim();
    if (userInput !== '') {
        // Display user's message
        displayMessage('user', userInput);
        
        // Send user input to ChatGPT API and get response
        const chatGPTResponse = await sendMessageToChatGPT(userInput);
        
        // Display ChatGPT's response
        displayMessage('chatgpt', chatGPTResponse);
    }
});