Spaces:
Runtime error
Runtime error
Upload 2 files
Browse files- app.py +26 -13
- diagnostics.py +20 -0
app.py
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
from fastapi import FastAPI, Request, Header
|
2 |
from fastapi.responses import HTMLResponse
|
3 |
from fastapi.staticfiles import StaticFiles
|
@@ -7,6 +8,7 @@ import os, uuid
|
|
7 |
from memory import MemoryVectorStore
|
8 |
from auth import authorize
|
9 |
from session import init_session_db, create_session, log_interaction, get_session_logs
|
|
|
10 |
|
11 |
import gradio as gr
|
12 |
from sentence_transformers import SentenceTransformer
|
@@ -18,28 +20,34 @@ index = faiss.IndexFlatL2(384)
|
|
18 |
memory_text = []
|
19 |
|
20 |
def autonomous_agent(input_text):
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
else:
|
30 |
-
response = f"π€ Received: {input_text}\nπ§ No prior memory yet."
|
31 |
|
32 |
return response
|
33 |
|
34 |
ui = gr.Interface(fn=autonomous_agent, inputs="text", outputs="text", title="Autonomous AI Agent", description="Self-enhancing chatbot with vector memory.")
|
|
|
35 |
|
36 |
app = FastAPI()
|
37 |
memory = MemoryVectorStore()
|
38 |
init_session_db()
|
39 |
|
40 |
-
from gradio.asgi import ASGIApp
|
41 |
-
app.mount("/gradio", ASGIApp(ui))
|
42 |
-
|
43 |
app.add_middleware(
|
44 |
CORSMiddleware,
|
45 |
allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"]
|
@@ -59,7 +67,8 @@ async def session_task(request: Request, x_api_key: str = Header(...)):
|
|
59 |
session_id = data.get("session_id", create_session(user))
|
60 |
memory.add(goal)
|
61 |
ideas = memory.search(goal)
|
62 |
-
|
|
|
63 |
memory.add(result)
|
64 |
log_interaction(session_id, goal, result)
|
65 |
return {"session_id": session_id, "output": result}
|
@@ -68,4 +77,8 @@ async def session_task(request: Request, x_api_key: str = Header(...)):
|
|
68 |
def logs(sid: str):
|
69 |
return get_session_logs(sid)
|
70 |
|
|
|
|
|
|
|
|
|
71 |
app.mount("/static", StaticFiles(directory="static"), name="static")
|
|
|
1 |
+
|
2 |
from fastapi import FastAPI, Request, Header
|
3 |
from fastapi.responses import HTMLResponse
|
4 |
from fastapi.staticfiles import StaticFiles
|
|
|
8 |
from memory import MemoryVectorStore
|
9 |
from auth import authorize
|
10 |
from session import init_session_db, create_session, log_interaction, get_session_logs
|
11 |
+
from diagnostics import run_diagnostics
|
12 |
|
13 |
import gradio as gr
|
14 |
from sentence_transformers import SentenceTransformer
|
|
|
20 |
memory_text = []
|
21 |
|
22 |
def autonomous_agent(input_text):
|
23 |
+
try:
|
24 |
+
vec = model.encode([input_text])
|
25 |
+
index.add(vec)
|
26 |
+
memory_text.append(input_text)
|
27 |
+
|
28 |
+
if index.ntotal > 1:
|
29 |
+
D, I = index.search(vec, k=2)
|
30 |
+
related = memory_text[I[0][1]]
|
31 |
+
response = f"π§ Memory Match: {related}
|
32 |
+
π€ Working on: {input_text}"
|
33 |
+
else:
|
34 |
+
response = f"π€ Received: {input_text}
|
35 |
+
π§ No prior memory yet."
|
36 |
|
37 |
+
except Exception as e:
|
38 |
+
diag = run_diagnostics()
|
39 |
+
response = f"β Error: {str(e)}
|
40 |
+
π οΈ Diagnostics: {diag['status']}"
|
|
|
|
|
41 |
|
42 |
return response
|
43 |
|
44 |
ui = gr.Interface(fn=autonomous_agent, inputs="text", outputs="text", title="Autonomous AI Agent", description="Self-enhancing chatbot with vector memory.")
|
45 |
+
ui.launch()
|
46 |
|
47 |
app = FastAPI()
|
48 |
memory = MemoryVectorStore()
|
49 |
init_session_db()
|
50 |
|
|
|
|
|
|
|
51 |
app.add_middleware(
|
52 |
CORSMiddleware,
|
53 |
allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"]
|
|
|
67 |
session_id = data.get("session_id", create_session(user))
|
68 |
memory.add(goal)
|
69 |
ideas = memory.search(goal)
|
70 |
+
diag = run_diagnostics()
|
71 |
+
result = f"[Goal]: {goal}\n[Related]: {ideas}\n[Response]: π§ working on it...\nπ οΈ System Status: {diag['status']}"
|
72 |
memory.add(result)
|
73 |
log_interaction(session_id, goal, result)
|
74 |
return {"session_id": session_id, "output": result}
|
|
|
77 |
def logs(sid: str):
|
78 |
return get_session_logs(sid)
|
79 |
|
80 |
+
@app.get("/diagnostics")
|
81 |
+
async def diagnostics():
|
82 |
+
return run_diagnostics()
|
83 |
+
|
84 |
app.mount("/static", StaticFiles(directory="static"), name="static")
|
diagnostics.py
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
import platform
|
3 |
+
import psutil
|
4 |
+
import shutil
|
5 |
+
|
6 |
+
def run_diagnostics():
|
7 |
+
report = {
|
8 |
+
"platform": platform.platform(),
|
9 |
+
"cpu_percent": psutil.cpu_percent(),
|
10 |
+
"memory": psutil.virtual_memory()._asdict(),
|
11 |
+
"disk": shutil.disk_usage("/"),
|
12 |
+
"status": "π’ All systems functional"
|
13 |
+
}
|
14 |
+
|
15 |
+
if report["memory"]["percent"] > 90:
|
16 |
+
report["status"] = "π‘ High memory usage"
|
17 |
+
if report["cpu_percent"] > 85:
|
18 |
+
report["status"] = "π‘ High CPU load"
|
19 |
+
|
20 |
+
return report
|