import os # --- API Keys & Secrets --- GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY", "") PINECONE_API_KEY = os.environ.get("PINECONE_API_KEY", "") GOOGLE_CLIENT_ID = os.environ.get("GOOGLE_CLIENT_ID", "") # Optional: shared fallback key (users bring their own via BYOK) OPENROUTER_API_KEY = os.environ.get("OPENROUTER_API_KEY", "") # Optional: shared Tavily web-search fallback key (users bring their own via BYOK) TAVILY_API_KEY = os.environ.get("TAVILY_API_KEY", "") # --- LangSmith (tracing & analytics) --- os.environ["LANGCHAIN_TRACING_V2"] = os.environ.get("LANGSMITH_TRACING", "true") os.environ["LANGCHAIN_API_KEY"] = os.environ.get("LANGSMITH_API_KEY", "") os.environ["LANGCHAIN_PROJECT"] = os.environ.get("LANGCHAIN_PROJECT", "stemcopilot-prod") # --- Pinecone --- PINECONE_INDEX = "stem-embed" # --- Embedding --- EMBED_MODEL_NAME = "BAAI/bge-large-en-v1.5" BGE_QUERY_PREFIX = "Represent this sentence: " # --- Database --- DB_PATH = "/data/stemgraph.db" if os.path.isdir("/data") else "stemgraph.db" # --- Defaults --- DEFAULT_PERSONA = "nerd" RETRIEVAL_TOP_K = 5 LLM_TIMEOUT = 180 # seconds — free models are slow, needs generous timeout