INNER CODE UNIT · Python
get_bamboo_ai
pgalko/BambooAI · web_app/app.py:348
def get_bamboo_ai(session_id, df=None):
"""Factory function to create or retrieve BambooAI instances"""
prefs = user_preferences.get(session_id, {'planning': False, 'auxiliary_datasets': [], 'df_id': None})
# Get API keys for this session
api_keys = {} # This is a placeholder, for possible future use if we want to pass specific user API keys to BambooAI
user_id = get_user_id()
# Create new BambooAI instance if it doesn't exist or if executor URL has changed (None in local mode)
base_url = executor_base_url(user_id)
if session_id not in bamboo_ai_instances or bamboo_ai_instances[session_id].executor_api_url != base_url:
logger.info(f"Creating new BambooAI instance for session {session_id}, user {user_id}. Reason: {'new instance' if session_id not in bamboo_ai_instances else 'executor URL changed'}")
# Clean up stale instance if it exists
if session_id in bamboo_ai_instances:
cleanup_and_remove_bamboo_instance(session_id, bamboo_ai_instances)
bamboo_ai_instances[session_id] = BambooAI(