Leonydis137 commited on
Commit
32688bc
Β·
verified Β·
1 Parent(s): 6cf4770

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +26 -13
  2. 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
- vec = model.encode([input_text])
22
- index.add(vec)
23
- memory_text.append(input_text)
 
 
 
 
 
 
 
 
 
 
24
 
25
- if index.ntotal > 1:
26
- D, I = index.search(vec, k=2)
27
- related = memory_text[I[0][1]]
28
- response = f"🧠 Memory Match: {related}\nπŸ€– Working on: {input_text}"
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
- result = f"[Goal]: {goal}\\n[Related]: {ideas}\\n[Response]: 🚧 working on it..."
 
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