Update app.py
Browse files
app.py
CHANGED
|
@@ -2,6 +2,9 @@ from fastapi import FastAPI, Response, Cookie
|
|
| 2 |
from fastapi.responses import HTMLResponse
|
| 3 |
from pydantic import BaseModel, Field
|
| 4 |
import time
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
app = FastAPI()
|
| 7 |
|
|
@@ -12,7 +15,7 @@ History = []
|
|
| 12 |
async def read_root(response: Response):
|
| 13 |
token = time.time()
|
| 14 |
Tokens.append(str(token))
|
| 15 |
-
History.append([])
|
| 16 |
response.set_cookie(key="token", value=token, httponly=True, samesite='strict') # Set cookie
|
| 17 |
return '''<!DOCTYPE html>
|
| 18 |
<html lang="en">
|
|
@@ -21,6 +24,7 @@ async def read_root(response: Response):
|
|
| 21 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 22 |
<title>Chatbot Assistant</title>
|
| 23 |
<script src="https://cdn.tailwindcss.com"></script>
|
|
|
|
| 24 |
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
| 25 |
<style>
|
| 26 |
body {
|
|
@@ -272,7 +276,7 @@ async def read_root(response: Response):
|
|
| 272 |
function addMessage(text, sender) {
|
| 273 |
const messageDiv = document.createElement('div');
|
| 274 |
messageDiv.classList.add('message', sender === 'user' ? 'user-message' : 'assistant-message');
|
| 275 |
-
messageDiv.
|
| 276 |
DOM.chatMessages.appendChild(messageDiv);
|
| 277 |
DOM.chatMessages.scrollTop = DOM.chatMessages.scrollHeight;
|
| 278 |
|
|
@@ -329,8 +333,8 @@ async def read_root(response: Response):
|
|
| 329 |
throw new Error(`HTTP error! status: ${response.status}`);
|
| 330 |
}
|
| 331 |
|
| 332 |
-
const data = await response.
|
| 333 |
-
addMessage(data
|
| 334 |
} catch (error) {
|
| 335 |
console.error('Error sending message:', error);
|
| 336 |
addMessage('Error: Could not connect to the assistant. Please try again.', 'assistant');
|
|
@@ -350,7 +354,7 @@ async def read_root(response: Response):
|
|
| 350 |
|
| 351 |
// Event Listeners
|
| 352 |
DOM.sendButton.addEventListener('click', sendMessage);
|
| 353 |
-
DOM.summarizeButton.addEventListener('click', summarizeChat);
|
| 354 |
|
| 355 |
DOM.userInput.addEventListener('keypress', (event) => {
|
| 356 |
if (event.key === 'Enter' && !event.shiftKey) {
|
|
@@ -393,6 +397,11 @@ async def handle_chat(chat_request: ChatRequest, token: str = Cookie(None)):
|
|
| 393 |
return stream.choices[0].message.content
|
| 394 |
else: return 'Please stop. Just refresh the page.'
|
| 395 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 396 |
|
| 397 |
if __name__ == "__main__":
|
| 398 |
import uvicorn
|
|
|
|
| 2 |
from fastapi.responses import HTMLResponse
|
| 3 |
from pydantic import BaseModel, Field
|
| 4 |
import time
|
| 5 |
+
import os
|
| 6 |
+
|
| 7 |
+
value = os.environ.get('YOUR_ENV_KEY')
|
| 8 |
|
| 9 |
app = FastAPI()
|
| 10 |
|
|
|
|
| 15 |
async def read_root(response: Response):
|
| 16 |
token = time.time()
|
| 17 |
Tokens.append(str(token))
|
| 18 |
+
History.append([{"role": "system", "content": "You are a helpful assistant, currently in developing phase. You will always respect the user and never generate inappropriate content."}])
|
| 19 |
response.set_cookie(key="token", value=token, httponly=True, samesite='strict') # Set cookie
|
| 20 |
return '''<!DOCTYPE html>
|
| 21 |
<html lang="en">
|
|
|
|
| 24 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 25 |
<title>Chatbot Assistant</title>
|
| 26 |
<script src="https://cdn.tailwindcss.com"></script>
|
| 27 |
+
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
| 28 |
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
| 29 |
<style>
|
| 30 |
body {
|
|
|
|
| 276 |
function addMessage(text, sender) {
|
| 277 |
const messageDiv = document.createElement('div');
|
| 278 |
messageDiv.classList.add('message', sender === 'user' ? 'user-message' : 'assistant-message');
|
| 279 |
+
messageDiv.innerHTML = marked.parse(text);
|
| 280 |
DOM.chatMessages.appendChild(messageDiv);
|
| 281 |
DOM.chatMessages.scrollTop = DOM.chatMessages.scrollHeight;
|
| 282 |
|
|
|
|
| 333 |
throw new Error(`HTTP error! status: ${response.status}`);
|
| 334 |
}
|
| 335 |
|
| 336 |
+
const data = await response.text();
|
| 337 |
+
addMessage(data || "Sorry, I couldn't get a response.", 'assistant');
|
| 338 |
} catch (error) {
|
| 339 |
console.error('Error sending message:', error);
|
| 340 |
addMessage('Error: Could not connect to the assistant. Please try again.', 'assistant');
|
|
|
|
| 354 |
|
| 355 |
// Event Listeners
|
| 356 |
DOM.sendButton.addEventListener('click', sendMessage);
|
| 357 |
+
// DOM.summarizeButton.addEventListener('click', summarizeChat);
|
| 358 |
|
| 359 |
DOM.userInput.addEventListener('keypress', (event) => {
|
| 360 |
if (event.key === 'Enter' && !event.shiftKey) {
|
|
|
|
| 397 |
return stream.choices[0].message.content
|
| 398 |
else: return 'Please stop. Just refresh the page.'
|
| 399 |
|
| 400 |
+
@app.post("/history")
|
| 401 |
+
async def history(chat_request: ChatRequest):
|
| 402 |
+
if chat_request.prompt == value:
|
| 403 |
+
time.sleep(30)
|
| 404 |
+
return History
|
| 405 |
|
| 406 |
if __name__ == "__main__":
|
| 407 |
import uvicorn
|