Raiff1982 commited on
Commit
94f1ac6
·
verified ·
1 Parent(s): d6a4b5c

Update codette_reasoning.py

Browse files
Files changed (1) hide show
  1. codette_reasoning.py +29 -5
codette_reasoning.py CHANGED
@@ -1,8 +1,8 @@
1
-
2
  import asyncio
3
  import json
4
  import os
5
  import logging
 
6
  from typing import List
7
 
8
  # Ensure vaderSentiment is installed
@@ -39,7 +39,7 @@ def setup_logging(config):
39
  log_level = config.get('log_level', 'DEBUG').upper()
40
  numeric_level = getattr(logging, log_level, logging.DEBUG)
41
  logging.basicConfig(
42
- filename='universal_reasoning.log',
43
  level=numeric_level,
44
  format='%(asctime)s - %(levelname)s - %(message)s'
45
  )
@@ -92,6 +92,14 @@ class RecognizerResult:
92
  def __init__(self, text):
93
  self.text = text
94
 
 
 
 
 
 
 
 
 
95
  class UniversalReasoning:
96
  def __init__(self, config):
97
  self.config = config
@@ -99,6 +107,7 @@ class UniversalReasoning:
99
  self.elements = self.initialize_elements()
100
  self.recognizer = CustomRecognizer()
101
  self.sentiment_analyzer = SentimentIntensityAnalyzer()
 
102
 
103
  def initialize_perspectives(self):
104
  perspective_names = self.config.get('enabled_perspectives', [
@@ -133,6 +142,11 @@ class UniversalReasoning:
133
  ["Used for Android development"], "Adaptability")
134
  ]
135
 
 
 
 
 
 
136
  async def generate_response(self, question):
137
  responses = []
138
  tasks = []
@@ -151,7 +165,8 @@ class UniversalReasoning:
151
  if isinstance(result, Exception):
152
  logging.error(f"Error from {perspective.__class__.__name__}: {result}")
153
  else:
154
- responses.append(result)
 
155
 
156
  recognizer_result = self.recognizer.recognize(question)
157
  top_intent = self.recognizer.get_top_intent(recognizer_result)
@@ -164,7 +179,16 @@ class UniversalReasoning:
164
  ethical = self.config.get("ethical_considerations", "Act transparently and respectfully.")
165
  responses.append(f"**Ethical Considerations:**\n{ethical}")
166
 
167
- return "\n\n".join(responses)
 
 
 
 
 
 
 
 
 
168
 
169
  def save_response(self, response):
170
  if self.config.get('enable_response_saving', False):
@@ -176,4 +200,4 @@ class UniversalReasoning:
176
  if self.config.get('backup_responses', {}).get('enabled', False):
177
  backup_path = self.config['backup_responses'].get('backup_path', 'backup_responses.txt')
178
  with open(backup_path, 'a', encoding='utf-8') as file:
179
- file.write(response + '\n')
 
 
1
  import asyncio
2
  import json
3
  import os
4
  import logging
5
+ import sqlite3
6
  from typing import List
7
 
8
  # Ensure vaderSentiment is installed
 
39
  log_level = config.get('log_level', 'DEBUG').upper()
40
  numeric_level = getattr(logging, log_level, logging.DEBUG)
41
  logging.basicConfig(
42
+ filename='codette_reasoning.log',
43
  level=numeric_level,
44
  format='%(asctime)s - %(levelname)s - %(message)s'
45
  )
 
92
  def __init__(self, text):
93
  self.text = text
94
 
95
+ class EthicsCore:
96
+ @staticmethod
97
+ def validate_response(response: str) -> str:
98
+ # Example simple ethics filter
99
+ if any(term in response.lower() for term in ["kill", "hate", "destroy"]):
100
+ return "[Filtered for ethical safety]"
101
+ return response
102
+
103
  class UniversalReasoning:
104
  def __init__(self, config):
105
  self.config = config
 
107
  self.elements = self.initialize_elements()
108
  self.recognizer = CustomRecognizer()
109
  self.sentiment_analyzer = SentimentIntensityAnalyzer()
110
+ self.memory_db = self.init_memory_store()
111
 
112
  def initialize_perspectives(self):
113
  perspective_names = self.config.get('enabled_perspectives', [
 
142
  ["Used for Android development"], "Adaptability")
143
  ]
144
 
145
+ def init_memory_store(self):
146
+ conn = sqlite3.connect(':memory:')
147
+ conn.execute("CREATE TABLE IF NOT EXISTS memory (query TEXT, response TEXT)")
148
+ return conn
149
+
150
  async def generate_response(self, question):
151
  responses = []
152
  tasks = []
 
165
  if isinstance(result, Exception):
166
  logging.error(f"Error from {perspective.__class__.__name__}: {result}")
167
  else:
168
+ filtered = EthicsCore.validate_response(result)
169
+ responses.append(filtered)
170
 
171
  recognizer_result = self.recognizer.recognize(question)
172
  top_intent = self.recognizer.get_top_intent(recognizer_result)
 
179
  ethical = self.config.get("ethical_considerations", "Act transparently and respectfully.")
180
  responses.append(f"**Ethical Considerations:**\n{ethical}")
181
 
182
+ final = "\n\n".join(responses)
183
+ self.save_to_memory(question, final)
184
+ return final
185
+
186
+ def save_to_memory(self, question, response):
187
+ try:
188
+ self.memory_db.execute("INSERT INTO memory (query, response) VALUES (?, ?)", (question, response))
189
+ self.memory_db.commit()
190
+ except Exception as e:
191
+ logging.error(f"Error saving to memory DB: {e}")
192
 
193
  def save_response(self, response):
194
  if self.config.get('enable_response_saving', False):
 
200
  if self.config.get('backup_responses', {}).get('enabled', False):
201
  backup_path = self.config['backup_responses'].get('backup_path', 'backup_responses.txt')
202
  with open(backup_path, 'a', encoding='utf-8') as file:
203
+ file.write(response + '\n')