AmaanP314 commited on
Commit
94a3dae
·
verified ·
1 Parent(s): 9852f5c

root endpoint

Browse files
Files changed (1) hide show
  1. app.py +44 -29
app.py CHANGED
@@ -1,29 +1,44 @@
1
- from fastapi import FastAPI
2
- from fastapi.middleware.cors import CORSMiddleware
3
- from pydantic import BaseModel
4
- from chatbot import chat
5
-
6
- app = FastAPI()
7
- app.add_middleware(
8
- CORSMiddleware,
9
- allow_origins=["*"],
10
- allow_credentials=True,
11
- allow_methods=["*"],
12
- allow_headers=["*"],
13
- )
14
-
15
- class ChatRequest(BaseModel):
16
- message: str
17
- session_id: str
18
-
19
- @app.post("/chat")
20
- async def chat_endpoint(chat_req: ChatRequest):
21
- message = chat_req.message.strip()
22
- session_id = chat_req.session_id.strip()
23
- if not message or not session_id:
24
- return {"response": "Both message and session_id are required."}
25
- try:
26
- response = chat(message, session_id)
27
- return {"response": response}
28
- except Exception as e:
29
- return {"response": f"Error: {str(e)}"}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+ from pydantic import BaseModel
4
+ from chatbot import chat, store
5
+ from langchain_core.messages import BaseMessage, HumanMessage, AIMessage
6
+
7
+ app = FastAPI()
8
+ app.add_middleware(
9
+ CORSMiddleware,
10
+ allow_origins=["*"],
11
+ allow_credentials=True,
12
+ allow_methods=["*"],
13
+ allow_headers=["*"],
14
+ )
15
+
16
+ @app.get("/")
17
+ async def get_all_sessions():
18
+ all_sessions = {}
19
+ for session_id, history in store.items():
20
+ messages = []
21
+ for msg in history.messages:
22
+ role = "human" if isinstance(msg, HumanMessage) else "ai" if isinstance(msg, AIMessage) else "unknown"
23
+ messages.append({
24
+ "role": role,
25
+ "content": msg.content
26
+ })
27
+ all_sessions[session_id] = messages
28
+ return {"sessions": all_sessions}
29
+
30
+ class ChatRequest(BaseModel):
31
+ message: str
32
+ session_id: str
33
+
34
+ @app.post("/chat")
35
+ async def chat_endpoint(chat_req: ChatRequest):
36
+ message = chat_req.message.strip()
37
+ session_id = chat_req.session_id.strip()
38
+ if not message or not session_id:
39
+ return {"response": "Both message and session_id are required."}
40
+ try:
41
+ response = chat(message, session_id)
42
+ return {"response": response}
43
+ except Exception as e:
44
+ return {"response": f"Error: {str(e)}"}