Download services/knowledge_engine.py from autonomous-media-system/ams-core-api: direct link, hf CLI and curl.
- Browser
- Download file 1.78 kB
-
https://huggingface.co/spaces/autonomous-media-system/ams-core-api/resolve/main/services/knowledge_engine.py
- Command line
-
hf download hf://spaces/autonomous-media-system/ams-core-api/services/knowledge_engine.py
-
curl -L -o knowledge_engine.py https://huggingface.co/spaces/autonomous-media-system/ams-core-api/resolve/main/services/knowledge_engine.py
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 |