Leonydis137 commited on
Commit
e8d9d1b
·
verified ·
1 Parent(s): ecbe2cb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -9
app.py CHANGED
@@ -4,13 +4,15 @@ from src.utils.hf_packager import HFSpacePackager
4
  from agents.planner import plan_task
5
  from agents.executor import execute_step
6
  from agents.critic import review_result
7
- from memory import init_memory, add_to_memory, search_memory, get_memory
 
 
 
8
  import uuid
9
  from datetime import datetime
10
  import os
11
  import psutil
12
  import json
13
- import time
14
  import subprocess
15
  from sentence_transformers import SentenceTransformer
16
  import numpy as np
@@ -18,12 +20,12 @@ import faiss
18
  from fastapi import FastAPI
19
  from ctransformers import AutoModelForCausalLM
20
  from src.core.cognitive_engine import CognitiveEngine
21
- from pydantic import BaseModel
22
- from memory import add_to_memory, get_memory
23
 
24
  class GenerateRequest(BaseModel):
25
- prompt: str
26
- session_id: str
27
 
28
  # Load LLM model
29
  llm_model = AutoModelForCausalLM.from_pretrained(
@@ -52,9 +54,21 @@ def status():
52
 
53
  @app.post("/generate")
54
  def generate_post(data: GenerateRequest):
55
- response = llm_model(data.prompt)
56
- add_to_memory(data.session_id, data.prompt, response)
57
- return {"session_id": data.session_id, "response": response}
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
  @app.get("/memory")
60
  def view_memory():
@@ -64,6 +78,18 @@ def view_memory():
64
  def session_memory(session_id: str):
65
  return {"session_id": session_id, "history": get_memory(session_id)}
66
 
 
 
 
 
 
 
 
 
 
 
 
 
67
 
68
  # Test the model at startup (optional)
69
  if __name__ == "__main__":
 
4
  from agents.planner import plan_task
5
  from agents.executor import execute_step
6
  from agents.critic import review_result
7
+ import time, logging
8
+ from fastapi import FastAPI, Request, HTTPException
9
+ from pydantic import BaseModel, constr
10
+ from memory import init_memory, add_to_memory, search_memory, get_memory, get_summary
11
  import uuid
12
  from datetime import datetime
13
  import os
14
  import psutil
15
  import json
 
16
  import subprocess
17
  from sentence_transformers import SentenceTransformer
18
  import numpy as np
 
20
  from fastapi import FastAPI
21
  from ctransformers import AutoModelForCausalLM
22
  from src.core.cognitive_engine import CognitiveEngine
23
+
24
+ logging.basicConfig(filename="app.log", level=logging.INFO)
25
 
26
  class GenerateRequest(BaseModel):
27
+ prompt: constr(min_length=5, max_length=1000)
28
+ session_id: constr(min_length=3, max_length=50)
29
 
30
  # Load LLM model
31
  llm_model = AutoModelForCausalLM.from_pretrained(
 
54
 
55
  @app.post("/generate")
56
  def generate_post(data: GenerateRequest):
57
+ start = time.time()
58
+ try:
59
+ response = llm_model(data.prompt)
60
+ latency = round(time.time() - start, 2)
61
+
62
+ add_to_memory(data.session_id, data.prompt, response)
63
+ logging.info(f"[{data.session_id}] Prompt processed in {latency}s")
64
+
65
+ return {
66
+ "session_id": data.session_id,
67
+ "response": response,
68
+ "latency": latency
69
+ }
70
+ except Exception as e:
71
+ raise HTTPException(status_code=500, detail=str(e))
72
 
73
  @app.get("/memory")
74
  def view_memory():
 
78
  def session_memory(session_id: str):
79
  return {"session_id": session_id, "history": get_memory(session_id)}
80
 
81
+ @app.get("/summary/{session_id}")
82
+ def memory_summary(session_id: str):
83
+ return {
84
+ "session_id": session_id,
85
+ "summary": get_summary(session_id)
86
+ }
87
+
88
+ @app.middleware("http")
89
+ async def auth_middleware(request: Request, call_next):
90
+ if request.url.path.startswith("/generate") and request.headers.get("X-API-Key") != "your-secret":
91
+ return JSONResponse(status_code=401, content={"detail": "Invalid API Key"})
92
+ return await call_next(request)
93
 
94
  # Test the model at startup (optional)
95
  if __name__ == "__main__":