vip11017 commited on
Commit
edad719
·
1 Parent(s): e199ec6

Added count star messages

Browse files
Files changed (3) hide show
  1. app/auth/auth.py +17 -0
  2. app/models/user.py +11 -0
  3. app/routers/chats.py +7 -1
app/auth/auth.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import APIRouter, HTTPException
2
+ from datetime import datetime, timedelta
3
+ from app.config import settings
4
+ import jwt
5
+
6
+ router = APIRouter(prefix="/auth", tags=["Auth"])
7
+ jwt_secret_key = settings.jwt_secret
8
+
9
+ @router.post("/login")
10
+ async def login(email: str, password: str):
11
+ user = await get_user_by_email(email)
12
+ if not user or not user.verify_password(password):
13
+ raise HTTPException(status_code=401, detail="Invalid Credentials")
14
+
15
+ token_expires = datetime.utcnow() + timedelta(hours=1)
16
+ token=jwt.encode({"sub": email, "exp": token_expires}, jwt_secret_key, algorithm="HS256")
17
+
app/models/user.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pydantic import BaseModel, EmailStr
2
+ from passlib.contetx import CryptContext
3
+
4
+ pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
5
+
6
+ class User(BaseModel):
7
+ email: EmailStr
8
+ hashed_password: str
9
+
10
+ def verify_password(self, password: str) -> bool:
11
+ return pwd_context.verify(password, self.hashed_password)
app/routers/chats.py CHANGED
@@ -37,6 +37,8 @@ async def get_chat_stats():
37
  total_requests = await chat_logs.count_documents({})
38
  unique_sessions = await chat_logs.distinct("session_id")
39
  total_sessions = len(unique_sessions)
 
 
40
  pipeline = [
41
  {
42
  "$group": {
@@ -51,10 +53,14 @@ async def get_chat_stats():
51
  else:
52
  avg_latency = 0.0
53
 
 
 
 
54
  return {
55
  "total_sessions": total_sessions,
56
  "total_requests": total_requests,
57
- "avg_latency": avg_latency
 
58
  }
59
 
60
  #Chat History Toggle Star
 
37
  total_requests = await chat_logs.count_documents({})
38
  unique_sessions = await chat_logs.distinct("session_id")
39
  total_sessions = len(unique_sessions)
40
+
41
+
42
  pipeline = [
43
  {
44
  "$group": {
 
53
  else:
54
  avg_latency = 0.0
55
 
56
+
57
+ num_starred = await chat_logs.count_documents({"starred": True})
58
+
59
  return {
60
  "total_sessions": total_sessions,
61
  "total_requests": total_requests,
62
+ "avg_latency": avg_latency,
63
+ "num_starred": num_starred
64
  }
65
 
66
  #Chat History Toggle Star