Konversationen eingefügt
This commit is contained in:
5
api.php
5
api.php
@@ -5,11 +5,10 @@ require_once 'config.php';
|
||||
// Check if a POST request is sent
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$input = json_decode(file_get_contents('php://input'), true);
|
||||
$user_message = $input['message'];
|
||||
$conversation = $input['conversation'];
|
||||
|
||||
// Prepare the command to execute the Python script
|
||||
// Note: Make sure `python` or `python3` is properly configured in your system's PATH.
|
||||
$command = escapeshellcmd("python3 assistant.py '$user_message'");
|
||||
$command = escapeshellcmd("python3 assistant.py '" . json_encode($conversation) . "'");
|
||||
$output = shell_exec($command);
|
||||
|
||||
// Decode the response from Python script
|
||||
|
||||
18
assistant.py
18
assistant.py
@@ -1,19 +1,20 @@
|
||||
import sys
|
||||
import json
|
||||
from openai import OpenAI
|
||||
import time
|
||||
from openai import OpenAI
|
||||
|
||||
def get_assistant_response(user_message):
|
||||
def get_assistant_response(conversation):
|
||||
client = OpenAI(api_key='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')
|
||||
|
||||
# Thread erstellen
|
||||
thread = client.beta.threads.create()
|
||||
|
||||
# Nachricht zum Thread hinzufügen
|
||||
message = client.beta.threads.messages.create(
|
||||
# Alle Nachrichten zum Thread hinzufügen
|
||||
for message in conversation:
|
||||
client.beta.threads.messages.create(
|
||||
thread_id=thread.id,
|
||||
role="user",
|
||||
content=user_message
|
||||
role=message['role'],
|
||||
content=message['content']
|
||||
)
|
||||
|
||||
# Run mit dem Assistant starten
|
||||
@@ -39,7 +40,6 @@ def get_assistant_response(user_message):
|
||||
return {"response": assistant_message}
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) > 1:
|
||||
user_message = sys.argv[1]
|
||||
response = get_assistant_response(user_message)
|
||||
conversation = json.loads(sys.argv[1])
|
||||
response = get_assistant_response(conversation)
|
||||
print(json.dumps(response))
|
||||
@@ -14,6 +14,7 @@
|
||||
<input type="text" id="user-input" placeholder="Geben Sie Ihre Nachricht ein..." required>
|
||||
<button type="submit">Senden</button>
|
||||
</form>
|
||||
<button id="reset-button">Konversation zurücksetzen</button>
|
||||
</div>
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
|
||||
85
script.js
85
script.js
@@ -2,89 +2,46 @@ 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
|
||||
}
|
||||
]
|
||||
})
|
||||
resetButton.addEventListener('click', () => {
|
||||
conversation = [];
|
||||
chatMessages.innerHTML = '';
|
||||
addMessage('System', 'Die Konversation wurde zurückgesetzt.');
|
||||
});
|
||||
|
||||
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 = `<strong>${sender}:</strong> ${message}`;
|
||||
|
||||
15
styles.css
15
styles.css
@@ -52,3 +52,18 @@ button {
|
||||
button:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
|
||||
#reset-button {
|
||||
margin-top: 10px;
|
||||
padding: 10px 20px;
|
||||
font-size: 16px;
|
||||
background-color: #dc3545;
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#reset-button:hover {
|
||||
background-color: #c82333;
|
||||
}
|
||||
Reference in New Issue
Block a user