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