conersationMemory
Browse files
app.py
CHANGED
|
@@ -67,6 +67,35 @@ def health():
|
|
| 67 |
return {"status": "ok", "service": "FISCAL"}
|
| 68 |
|
| 69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
@app.post("/chat", response_model=ChatResponse)
|
| 71 |
def chat(
|
| 72 |
request: ChatRequest,
|
|
|
|
| 67 |
return {"status": "ok", "service": "FISCAL"}
|
| 68 |
|
| 69 |
|
| 70 |
+
class LoadHistoryRequest(BaseModel):
|
| 71 |
+
messages: list
|
| 72 |
+
|
| 73 |
+
@app.post("/load_history")
|
| 74 |
+
def load_history(
|
| 75 |
+
request: LoadHistoryRequest,
|
| 76 |
+
credentials: HTTPAuthorizationCredentials = Depends(security),
|
| 77 |
+
):
|
| 78 |
+
user = verify_token(credentials.credentials)
|
| 79 |
+
if not user:
|
| 80 |
+
raise HTTPException(status_code=401, detail="Unauthorized")
|
| 81 |
+
|
| 82 |
+
from fiscal import _get_memory
|
| 83 |
+
memory = _get_memory(user["sub"])
|
| 84 |
+
memory.clear()
|
| 85 |
+
|
| 86 |
+
# Rebuild memory from saved messages
|
| 87 |
+
messages = request.messages
|
| 88 |
+
for i in range(0, len(messages) - 1, 2):
|
| 89 |
+
if i + 1 < len(messages):
|
| 90 |
+
human_msg = messages[i].get("text", "")
|
| 91 |
+
ai_msg = messages[i + 1].get("text", "")
|
| 92 |
+
if human_msg and ai_msg:
|
| 93 |
+
memory.chat_memory.add_user_message(human_msg)
|
| 94 |
+
memory.chat_memory.add_ai_message(ai_msg)
|
| 95 |
+
|
| 96 |
+
return {"status": "history loaded"}
|
| 97 |
+
|
| 98 |
+
|
| 99 |
@app.post("/chat", response_model=ChatResponse)
|
| 100 |
def chat(
|
| 101 |
request: ChatRequest,
|