Konversationen eingefügt
This commit is contained in:
89
script.js
89
script.js
@@ -2,88 +2,45 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
const chatForm = document.getElementById('chat-form');
|
||||
const userInput = document.getElementById('user-input');
|
||||
const chatMessages = document.getElementById('chat-messages');
|
||||
|
||||
let threadId; // Variable to store the thread ID
|
||||
const resetButton = document.getElementById('reset-button');
|
||||
let conversation = [];
|
||||
|
||||
chatForm.addEventListener('submit', async (e) => {
|
||||
e.preventDefault();
|
||||
const message = userInput.value.trim();
|
||||
if (message) {
|
||||
addMessage('User', message);
|
||||
conversation.push({ role: 'user', content: message });
|
||||
userInput.value = '';
|
||||
|
||||
try {
|
||||
if (!threadId) {
|
||||
// Create a new thread
|
||||
threadId = await createThread(message);
|
||||
const response = await fetch('api.php', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({ conversation: conversation }),
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
addMessage('Assistant', data.response);
|
||||
conversation.push({ role: 'assistant', content: data.response });
|
||||
} else {
|
||||
// Post a message to the existing thread
|
||||
await postMessageToThread(threadId, message);
|
||||
throw new Error('Fehler bei der API-Anfrage');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error:', error);
|
||||
console.error('Fehler:', 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;
|
||||
}
|
||||
}
|
||||
resetButton.addEventListener('click', () => {
|
||||
conversation = [];
|
||||
chatMessages.innerHTML = '';
|
||||
addMessage('System', 'Die Konversation wurde zurückgesetzt.');
|
||||
});
|
||||
|
||||
function addMessage(sender, message) {
|
||||
const messageElement = document.createElement('div');
|
||||
@@ -91,4 +48,4 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
chatMessages.appendChild(messageElement);
|
||||
chatMessages.scrollTop = chatMessages.scrollHeight;
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user