ams-core-api / services /knowledge_engine.py
Amssou's picture
Create knowledge_engine.py
9982cb8 verified
Raw
History Blame Contribute Delete
1.78 kB
import json
import os
import logging
from datetime import datetime
logger = logging.getLogger("ONYX")
KNOWLEDGE_FILE = "database/knowledge.json"
class KnowledgeEngine:
def __init__(self):
if not os.path.exists("database"):
os.makedirs("database")
if not os.path.exists(KNOWLEDGE_FILE):
with open(KNOWLEDGE_FILE, "w", encoding="utf-8") as f:
json.dump([], f)
# =========================
# LOAD KNOWLEDGE
# =========================
def load(self):
try:
with open(KNOWLEDGE_FILE, "r", encoding="utf-8") as f:
return json.load(f)
except Exception as e:
logger.error(f"Knowledge load error: {e}")
return []
# =========================
# SAVE KNOWLEDGE
# =========================
def save(self, data):
try:
with open(KNOWLEDGE_FILE, "w", encoding="utf-8") as f:
json.dump(data, f, indent=2, ensure_ascii=False)
except Exception as e:
logger.error(f"Knowledge save error: {e}")
# =========================
# ADD ENTRY
# =========================
def add_entry(self, category, content):
data = self.load()
entry = {
"category": category,
"content": content,
"timestamp": datetime.utcnow().isoformat()
}
data.append(entry)
self.save(data)
# =========================
# SEARCH
# =========================
def search(self, keyword):
data = self.load()
results = []
for entry in data:
if keyword.lower() in entry["content"].lower():
results.append(entry)
return results