Spaces:
No application file
No application file
import json | |
import logging | |
# Configure logging | |
logging.basicConfig(level=logging.INFO) | |
# Load the knowledge base from data.json | |
def load_knowledge_base(): | |
"""Loads knowledge base from data.json file.""" | |
try: | |
with open("data.json", "r", encoding="utf-8") as file: | |
data = json.load(file) | |
logging.info("Knowledge base loaded successfully.") | |
return data | |
except Exception as e: | |
logging.error(f"Failed to load knowledge base: {e}") | |
return {"paragraphs": [], "headings": {}, "links": {}} | |
knowledge_base = load_knowledge_base() | |
def search_knowledge_base(query): | |
"""Search knowledge base for relevant information.""" | |
try: | |
for para in knowledge_base.get("paragraphs", []): | |
if query.lower() in para.lower(): | |
return para | |
for heading_list in knowledge_base.get("headings", {}).values(): | |
for heading in heading_list: | |
if query.lower() in heading.lower(): | |
return heading | |
return None | |
except Exception as e: | |
logging.error(f"Error searching knowledge base: {e}") | |
return None | |
def save_to_knowledge_base(question, answer): | |
"""Save new Gemini AI responses to the knowledge base.""" | |
try: | |
knowledge_base["paragraphs"].append(answer) | |
with open("data.json", "w", encoding="utf-8") as file: | |
json.dump(knowledge_base, file, indent=4, ensure_ascii=False) | |
logging.info("New data saved to knowledge base.") | |
except Exception as e: | |
logging.error(f"Failed to save data to knowledge base: {e}") |