import os import sys import logging from api.vectorstore import VectorStoreManager from dotenv import load_dotenv from google import genai logging.basicConfig( level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s", handlers=[logging.StreamHandler(sys.stdout)], ) logger = logging.getLogger(__name__) load_dotenv() GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY", "") PINECONE_API_KEY = os.environ.get("PINECONE_API_KEY", "") INDEX_NAME = "ragbot" def log_critical(api_key: str): logger.critical(f"CRITICAL: {api_key} is missing from .env") sys.exit(1) if not GOOGLE_API_KEY: log_critical("GOOGLE_API_KEY") if not PINECONE_API_KEY: log_critical("PINECONE_API_KEY") def system_instruction(url: str, context: str): return f""" INSTRUCTION: You are a helpful assistant for the website: {url}. Answer only using the provided context below. If the information is missing, reply: "Sorry, I haven't read that information yet." Limit every answer to five sentences. CONTEXT: {context} """ try: vs = VectorStoreManager(api_key=PINECONE_API_KEY, index_name=INDEX_NAME) flash = genai.Client() logger.info("✅ System initialized: Pinecone & Gemini ready.") except Exception as e: logger.critical(f"Startup Failure: {e}") sys.exit(1)