adsurkasur's picture
clone from arina-hf-spaces
68964c2
import os
from pymongo.mongo_client import MongoClient
from pymongo.server_api import ServerApi
import certifi
from datetime import datetime, timezone
from app.core.logging_setup import logger
# MongoDB setup
MONGO_DB = os.getenv("MONGO_URI", "")
if not MONGO_DB:
raise ValueError("MONGO_URI environment variable not set. Please set it to your MongoDB connection string.")
# Create a new client and connect to the server
client = MongoClient(MONGO_DB, server_api=ServerApi('1'), tls=True, tlsCAFile=certifi.where())
# Send a ping to confirm a successful connection
try:
client.admin.command('ping')
print("Pinged your deployment. You successfully connected to MongoDB!")
except Exception as e:
print(e)
db = client["arina_database"]
# Define collections
conversations_collection = db["conversations"]
user_memory_collection = db["user_memory"]
feedback_collection = db["feedback"]
interaction_patterns_collection = db["interaction_patterns"]
web_search_keywords_collection = db["web_search_keywords"]
# Initialize collections with default data
def init_db():
try:
# Insert default user memory if not exists
if not user_memory_collection.find_one({"key": "last_interaction"}):
user_memory_collection.insert_one({"key": "last_interaction", "value": datetime.now(timezone.utc).isoformat()})
# Insert default web search keywords if not exists
if web_search_keywords_collection.count_documents({}) == 0:
default_keywords = [
"news", "update", "latest", "recent", "event", "schedule", "release",
"stock price", "weather", "sports score", "match result", "forecast",
"celebrities", "trending", "movie times", "game release", "scientific discovery",
"politics", "economic news", "current time", "today's date", "happening now"
]
web_search_keywords_collection.insert_many([{"keyword": kw} for kw in default_keywords])
logger.info("Database initialized successfully.")
except Exception as e:
logger.error(f"Unexpected error during database initialization: {e}")
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description="Database Initialization")
parser.add_argument("--init", action="store_true", help="Initialize the database")
args = parser.parse_args()
if args.init:
init_db()