Tpayne101 commited on
Commit
f2fce09
·
verified ·
1 Parent(s): 0b9b5e7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -45
app.py CHANGED
@@ -1,54 +1,52 @@
 
1
  import gradio as gr
2
  from sentence_transformers import SentenceTransformer
3
  from memory_store import MemoryStore
4
- from graph_view import visualize_graph
 
5
 
6
- # --- Initialize Core ---
7
- model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
 
8
  memory = MemoryStore()
 
9
 
10
- # --- Chat Processing ---
11
- def process_input(user_input, chat_history):
12
- user_input = user_input.strip()
13
-
14
- # handle visualization
15
- if user_input.lower() in ["visualize memory", "show memory", "see memory"]:
16
- memories = getattr(memory, "memories", [])
17
- if not memories:
18
- chat_history.append([user_input, "No memories yet to visualize."])
19
- else:
20
- visualize_graph(memories)
21
- chat_history.append([user_input, "🧠 Memory graph generated. Check the right panel."])
22
- return chat_history
23
-
24
- # normal memory flow
25
  vector = model.encode(user_input)
 
 
26
  save_status = memory.add_memory(user_input, vector)
 
 
27
  related = memory.retrieve_relevant(vector)
28
- recall = "\n".join([f"• {txt} (score: {round(score,4)})" for txt, score in related])
29
- response = f"{save_status}\nHere’s what I recall most related:\n{recall}"
30
- chat_history.append([user_input, response])
31
- return chat_history
32
-
33
- # --- Graph Display Helper ---
34
- def render_graph():
35
- visualize_graph(memory.memories)
36
- return "🧠 Memory graph updated."
37
-
38
- # --- Interface ---
39
- with gr.Blocks(theme=gr.themes.Soft()) as demo:
40
- gr.Markdown("## 🧠 Aventra OS — Memory Graph Interface")
41
-
42
- chatbot = gr.Chatbot(height=400)
43
- msg = gr.Textbox(label="Type your message here...")
44
- with gr.Row():
45
- send_btn = gr.Button("Send")
46
- clear_btn = gr.Button("Clear Chat")
47
- graph_btn = gr.Button("Visualize Memory")
48
-
49
- send_btn.click(process_input, [msg, chatbot], [chatbot])
50
- msg.submit(process_input, [msg, chatbot], [chatbot])
51
- clear_btn.click(lambda: [], None, chatbot)
52
- graph_btn.click(render_graph, None, None)
53
-
54
- demo.launch()
 
1
+ import os
2
  import gradio as gr
3
  from sentence_transformers import SentenceTransformer
4
  from memory_store import MemoryStore
5
+ from graph_reasoner import GraphReasoner
6
+ from graph_view import visualize_reasoned_graph
7
 
8
+ # --- Initialize Environment ---
9
+ os.environ["TRANSFORMERS_CACHE"] = "/home/user/.cache"
10
+ model = SentenceTransformer("all-MiniLM-L6-v2")
11
  memory = MemoryStore()
12
+ reasoner = GraphReasoner()
13
 
14
+ # --- Core Logic ---
15
+ def process_input(user_input, history):
16
+ if not user_input.strip():
17
+ return history + [("User input empty.", "Please type something meaningful.")]
18
+
19
+ # Encode input
 
 
 
 
 
 
 
 
 
20
  vector = model.encode(user_input)
21
+
22
+ # Store memory
23
  save_status = memory.add_memory(user_input, vector)
24
+
25
+ # Retrieve related memories
26
  related = memory.retrieve_relevant(vector)
27
+ recall_text = "\n".join([f"• {r[0]} (score: {round(r[1], 4)})" for r in related])
28
+
29
+ # Build response
30
+ response = f"{save_status}\n\nHere’s what I recall that’s most relevant:\n{recall_text if related else 'No related context yet.'}"
31
+ history.append((user_input, response))
32
+ return history
33
+
34
+ def visualize_memory():
35
+ relationships = reasoner.infer_relationships(memory.memories, model)
36
+ output_html = visualize_reasoned_graph(memory.memories, relationships)
37
+ return f"🧠 Cognitive Memory Graph updated: {output_html}"
38
+
39
+ # --- UI Layout ---
40
+ with gr.Blocks(title="Aventra OS — Memory Engine") as demo:
41
+ gr.Markdown("## 🧠 Aventra Memory Interface")
42
+ chatbot = gr.Chatbot(label="Aventra Conversation", height=400)
43
+ user_input = gr.Textbox(label="Message", placeholder="Type something like 'My name is Tirrek'...")
44
+ send_btn = gr.Button("Send")
45
+ graph_btn = gr.Button("Visualize Memory")
46
+ clear_btn = gr.Button("Clear Chat")
47
+
48
+ send_btn.click(process_input, inputs=[user_input, chatbot], outputs=[chatbot])
49
+ graph_btn.click(visualize_memory, inputs=None, outputs=None)
50
+ clear_btn.click(lambda: None, None, chatbot, queue=False)
51
+
52
+ demo.launch(server_name="0.0.0.0", server_port=7860)