Spaces:
Runtime error
Runtime error
Update app.py
Browse files
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 |
-
|
|
|
|
|
|
|
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 |
-
|
22 |
-
|
23 |
|
24 |
class GenerateRequest(BaseModel):
|
25 |
-
prompt:
|
26 |
-
session_id:
|
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 |
-
|
56 |
-
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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__":
|