diff --git a/index.php b/index.php new file mode 100644 index 0000000..ac88f5a --- /dev/null +++ b/index.php @@ -0,0 +1,29 @@ + + + + + + + ChatGPT Assistent + + + +
+

ChatGPT Assistent

+
+
+ + +
+
+ + + + \ No newline at end of file diff --git a/script.js b/script.js index d422a36..4f5675a 100644 --- a/script.js +++ b/script.js @@ -3,6 +3,8 @@ document.addEventListener('DOMContentLoaded', () => { const userInput = document.getElementById('user-input'); const chatMessages = document.getElementById('chat-messages'); + let threadId; // Variable to store the thread ID + chatForm.addEventListener('submit', async (e) => { e.preventDefault(); const message = userInput.value.trim(); @@ -11,31 +13,82 @@ document.addEventListener('DOMContentLoaded', () => { userInput.value = ''; try { - const response = await fetch('api.php', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ message: message }), - }); - - if (response.ok) { - const data = await response.json(); - addMessage('Assistant', data.response); + if (!threadId) { + // Create a new thread + threadId = await createThread(message); } else { - throw new Error('Fehler bei der API-Anfrage'); + // Post a message to the existing thread + await postMessageToThread(threadId, message); } } catch (error) { - console.error('Fehler:', error); + console.error('Error:', error); addMessage('System', 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.'); } } }); + async function createThread(message) { + try { + const response = await fetch('https://api.openai.com/v1/threads', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${OPENAI_API_KEY}` + }, + body: JSON.stringify({ + "messages": [ + { + "role": "user", + "content": message + } + ] + }) + }); + + if (response.ok) { + const data = await response.json(); + addMessage('Assistant', data.choices[0].message.content); + return data.id; + } else { + throw new Error('Fehler bei der Erstellung des Threads'); + } + } catch (error) { + throw error; + } + } + async function postMessageToThread(threadId, message) { + try { + const response = await fetch(`https://api.openai.com/v1/threads/${threadId}/messages`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${OPENAI_API_KEY}` + }, + body: JSON.stringify({ + "messages": [ + { + "role": "user", + "content": message + } + ] + }) + }); + + if (response.ok) { + const data = await response.json(); + addMessage('Assistant', data.choices[0].message.content); + } else { + throw new Error('Fehler beim Posten der Nachricht'); + } + } catch (error) { + throw error; + } + } + function addMessage(sender, message) { const messageElement = document.createElement('div'); messageElement.innerHTML = `${sender}: ${message}`; chatMessages.appendChild(messageElement); chatMessages.scrollTop = chatMessages.scrollHeight; } -}); \ No newline at end of file +});