Spaces:
Running
Running
Reality123b
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -10,6 +10,16 @@ from sentence_transformers import SentenceTransformer, util
|
|
10 |
import torch
|
11 |
import numpy as np
|
12 |
import networkx as nx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
@dataclass
|
15 |
class ChatMessage:
|
@@ -75,6 +85,20 @@ class XylariaChat:
|
|
75 |
]
|
76 |
|
77 |
self.system_prompt = """You are a helpful and harmless assistant. You are Xylaria developed by Sk Md Saad Amin. You should think step-by-step """
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
def update_internal_state(self, emotion_deltas, cognitive_load_deltas, introspection_delta, engagement_delta):
|
80 |
# Update emotions with more nuanced changes
|
@@ -472,6 +496,53 @@ class XylariaChat:
|
|
472 |
stream=True
|
473 |
)
|
474 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
475 |
return stream
|
476 |
|
477 |
except Exception as e:
|
@@ -596,7 +667,6 @@ class XylariaChat:
|
|
596 |
if len(self.conversation_history) > 10:
|
597 |
self.conversation_history = self.conversation_history[-10:]
|
598 |
|
599 |
-
|
600 |
custom_css = """
|
601 |
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
|
602 |
body, .gradio-container {
|
|
|
10 |
import torch
|
11 |
import numpy as np
|
12 |
import networkx as nx
|
13 |
+
from collections import Counter
|
14 |
+
import nltk
|
15 |
+
|
16 |
+
# Ensure NLTK resources are available
|
17 |
+
try:
|
18 |
+
nltk.data.find('tokenizers/punkt')
|
19 |
+
nltk.data.find('averaged_perceptron_tagger')
|
20 |
+
except LookupError:
|
21 |
+
nltk.download('punkt')
|
22 |
+
nltk.download('averaged_perceptron_tagger')
|
23 |
|
24 |
@dataclass
|
25 |
class ChatMessage:
|
|
|
85 |
]
|
86 |
|
87 |
self.system_prompt = """You are a helpful and harmless assistant. You are Xylaria developed by Sk Md Saad Amin. You should think step-by-step """
|
88 |
+
|
89 |
+
# --- SCALED-DOWN AGI FEATURES ---
|
90 |
+
|
91 |
+
# 1. Advanced Knowledge Representation & Reasoning (Simplified)
|
92 |
+
self.causal_rules_db = { # Simple rule-based causal relationships
|
93 |
+
"rain": ["wet roads", "flooding"],
|
94 |
+
"study": ["good grades"],
|
95 |
+
"exercise": ["better health"]
|
96 |
+
}
|
97 |
+
self.concept_generalizations = { # Basic concept generalizations
|
98 |
+
"planet": "system with orbiting bodies",
|
99 |
+
"electron": "system with orbiting bodies",
|
100 |
+
"atom": "system with orbiting bodies"
|
101 |
+
}
|
102 |
|
103 |
def update_internal_state(self, emotion_deltas, cognitive_load_deltas, introspection_delta, engagement_delta):
|
104 |
# Update emotions with more nuanced changes
|
|
|
496 |
stream=True
|
497 |
)
|
498 |
|
499 |
+
# --- SCALED-DOWN AGI FEATURE INTEGRATION INTO RESPONSE GENERATION ---
|
500 |
+
|
501 |
+
# 1.b. Abstract Reasoning (Simplified):
|
502 |
+
# Check if the current message involves a concept with a known generalization.
|
503 |
+
for concept, generalization in self.concept_generalizations.items():
|
504 |
+
if concept in user_input.lower():
|
505 |
+
inferred_knowledge = f"This reminds me of a general principle: {generalization}."
|
506 |
+
self.store_information("Inferred Knowledge", inferred_knowledge) # Store for later retrieval, if needed
|
507 |
+
|
508 |
+
# 1.c. Dynamic Updating of Beliefs (Simplified):
|
509 |
+
# Very basic example: increase belief if something is stated repeatedly.
|
510 |
+
belief_updates = Counter()
|
511 |
+
for msg in self.conversation_history:
|
512 |
+
if msg['role'] == 'user':
|
513 |
+
sentences = nltk.sent_tokenize(msg['content']) # Using nltk for sentence tokenization
|
514 |
+
for sentence in sentences:
|
515 |
+
belief_updates[sentence] += 1
|
516 |
+
|
517 |
+
for statement, count in belief_updates.items():
|
518 |
+
if count >= 2: # If a statement is repeated 2 or more times
|
519 |
+
current_belief_score = self.belief_system.get(statement, 0.5) # Default belief 0.5
|
520 |
+
updated_belief_score = min(current_belief_score + 0.2, 1.0) # Increase belief, max 1.0
|
521 |
+
self.update_belief_system(statement, updated_belief_score)
|
522 |
+
|
523 |
+
# 2.a. Lifelong Learning (Simplified):
|
524 |
+
# Store key information from user input in persistent memory.
|
525 |
+
if user_input:
|
526 |
+
self.store_information("User Input", user_input)
|
527 |
+
|
528 |
+
# 2.b. Autonomous Knowledge Discovery (Very Simplified):
|
529 |
+
# Simulate seeking information if curiosity is high and the user asks a question.
|
530 |
+
if self.internal_state["emotions"]["curiosity"] > 0.8 and "?" in user_input:
|
531 |
+
print("Simulating external knowledge seeking...")
|
532 |
+
# In a real implementation, you might query an API or database here.
|
533 |
+
simulated_external_info = "This is a placeholder for external information I would have found."
|
534 |
+
self.store_information("External Knowledge", simulated_external_info)
|
535 |
+
# The chatbot can then use this "External Knowledge" in its response.
|
536 |
+
|
537 |
+
# 1.a. Causal Reasoning (Simplified):
|
538 |
+
# Check for potential causal relationships in the user input and conversation history.
|
539 |
+
for cause, effects in self.causal_rules_db.items():
|
540 |
+
if cause in user_input.lower():
|
541 |
+
for effect in effects:
|
542 |
+
if effect in " ".join([msg['content'].lower() for msg in self.conversation_history]).lower():
|
543 |
+
causal_inference = f"It seems {cause} might be related to {effect}."
|
544 |
+
self.store_information("Causal Inference", causal_inference)
|
545 |
+
|
546 |
return stream
|
547 |
|
548 |
except Exception as e:
|
|
|
667 |
if len(self.conversation_history) > 10:
|
668 |
self.conversation_history = self.conversation_history[-10:]
|
669 |
|
|
|
670 |
custom_css = """
|
671 |
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
|
672 |
body, .gradio-container {
|