Spaces:
No application file
No application file
File size: 1,663 Bytes
f2393fe |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
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}") |