Latest
Browse files
app.py
CHANGED
@@ -1,15 +1,12 @@
|
|
1 |
import os
|
2 |
import sqlite3
|
3 |
from fastapi import FastAPI, Request, Depends, HTTPException
|
4 |
-
from fastapi.responses import JSONResponse
|
5 |
from pydantic import BaseModel
|
6 |
-
from functools import wraps
|
7 |
import hashlib
|
8 |
from textblob import TextBlob
|
9 |
from groq import Groq
|
10 |
from starlette.middleware.sessions import SessionMiddleware
|
11 |
-
from starlette.responses import RedirectResponse
|
12 |
-
from starlette.staticfiles import StaticFiles
|
13 |
|
14 |
app = FastAPI()
|
15 |
|
@@ -47,6 +44,7 @@ def init_db():
|
|
47 |
conn.close()
|
48 |
|
49 |
init_db()
|
|
|
50 |
# Helper functions
|
51 |
def hash_password(password):
|
52 |
return hashlib.sha256(password.encode()).hexdigest()
|
@@ -56,7 +54,7 @@ def get_sentiment(text):
|
|
56 |
return analysis.sentiment.polarity
|
57 |
|
58 |
def store_chat(user_id, user_message, bot_response, sentiment_score):
|
59 |
-
conn = sqlite3.connect(
|
60 |
c = conn.cursor()
|
61 |
c.execute('''INSERT INTO chats (user_id, user_message, bot_response, sentiment_score)
|
62 |
VALUES (?, ?, ?, ?)''', (user_id, user_message, bot_response, sentiment_score))
|
@@ -92,6 +90,10 @@ def generate_response(prompt):
|
|
92 |
class UserMessage(BaseModel):
|
93 |
message: str
|
94 |
|
|
|
|
|
|
|
|
|
95 |
@app.post("/chat")
|
96 |
async def chat_endpoint(request: Request, message: UserMessage):
|
97 |
user_message = message.message
|
@@ -101,7 +103,7 @@ async def chat_endpoint(request: Request, message: UserMessage):
|
|
101 |
raise HTTPException(status_code=401, detail="User not logged in")
|
102 |
|
103 |
# Get user's recent chat history for context
|
104 |
-
conn = sqlite3.connect(
|
105 |
c = conn.cursor()
|
106 |
c.execute('''SELECT user_message, bot_response
|
107 |
FROM chats
|
@@ -127,4 +129,3 @@ async def chat_endpoint(request: Request, message: UserMessage):
|
|
127 |
})
|
128 |
except Exception as e:
|
129 |
raise HTTPException(status_code=500, detail=f"I apologize, but I encountered an error: {str(e)}")
|
130 |
-
|
|
|
1 |
import os
|
2 |
import sqlite3
|
3 |
from fastapi import FastAPI, Request, Depends, HTTPException
|
4 |
+
from fastapi.responses import JSONResponse
|
5 |
from pydantic import BaseModel
|
|
|
6 |
import hashlib
|
7 |
from textblob import TextBlob
|
8 |
from groq import Groq
|
9 |
from starlette.middleware.sessions import SessionMiddleware
|
|
|
|
|
10 |
|
11 |
app = FastAPI()
|
12 |
|
|
|
44 |
conn.close()
|
45 |
|
46 |
init_db()
|
47 |
+
|
48 |
# Helper functions
|
49 |
def hash_password(password):
|
50 |
return hashlib.sha256(password.encode()).hexdigest()
|
|
|
54 |
return analysis.sentiment.polarity
|
55 |
|
56 |
def store_chat(user_id, user_message, bot_response, sentiment_score):
|
57 |
+
conn = sqlite3.connect(DATABASE_PATH) # Use the DATABASE_PATH defined above
|
58 |
c = conn.cursor()
|
59 |
c.execute('''INSERT INTO chats (user_id, user_message, bot_response, sentiment_score)
|
60 |
VALUES (?, ?, ?, ?)''', (user_id, user_message, bot_response, sentiment_score))
|
|
|
90 |
class UserMessage(BaseModel):
|
91 |
message: str
|
92 |
|
93 |
+
@app.get("/")
|
94 |
+
async def root():
|
95 |
+
return {"message": "Welcome to Amara, your chatbot!"}
|
96 |
+
|
97 |
@app.post("/chat")
|
98 |
async def chat_endpoint(request: Request, message: UserMessage):
|
99 |
user_message = message.message
|
|
|
103 |
raise HTTPException(status_code=401, detail="User not logged in")
|
104 |
|
105 |
# Get user's recent chat history for context
|
106 |
+
conn = sqlite3.connect(DATABASE_PATH) # Use the DATABASE_PATH defined above
|
107 |
c = conn.cursor()
|
108 |
c.execute('''SELECT user_message, bot_response
|
109 |
FROM chats
|
|
|
129 |
})
|
130 |
except Exception as e:
|
131 |
raise HTTPException(status_code=500, detail=f"I apologize, but I encountered an error: {str(e)}")
|
|