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}") |