| import json |
| import os |
| |
| import json, pathlib |
|
|
| BASE_DIR = pathlib.Path(__file__).parent |
|
|
| def _file(name: str) -> pathlib.Path: |
| return BASE_DIR / name |
|
|
| def load_memory(username: str | None = None): |
| path = _file(f"memory_{username}.json") if username else _file("memory.json") |
| return json.loads(path.read_text(encoding="utf-8")) if path.exists() else {} |
|
|
| def save_memory(data, username: str | None = None): |
| path = _file(f"memory_{username}.json") if username else _file("memory.json") |
| path.write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8") |
|
|
| def load_global_memory(): |
| return load_memory(None) |
|
|
| def save_global_memory(data): |
| save_memory(data, None) |
|
|
| knowledge_base_path = "knowledge_base.json" |
|
|
| |
| def load_knowledge_base(): |
| if os.path.exists(knowledge_base_path): |
| with open(knowledge_base_path, "r", encoding="utf-8") as f: |
| return json.load(f) |
| return {} |
|
|
| def save_knowledge_base(data): |
| with open(knowledge_base_path, "w", encoding="utf-8") as f: |
| json.dump(data, f, ensure_ascii=False, indent=2) |
|
|
| |
| def learn_from_unknown(prompt): |
| print("نورا: لا أملك إجابة لهذا السؤال حاليًا. سأبحث عن إجابة وأتعلم.") |
| answer = input("يرجى تزويدي بالإجابة المناسبة لأتعلمها: ") |
| if answer.strip(): |
| return answer |
| return None |
|
|
| |
| def update_knowledge_base(prompt, answer): |
| kb = load_knowledge_base() |
| kb[prompt] = answer |
| save_knowledge_base(kb) |
|
|