Digibot / knowledge_base.py
snagaich07's picture
Upload 8 files
f2393fe verified
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}")