mafzaal's picture
Implement cookie-less session management and user ID handling for Hugging Face Spaces compatibility
8190e40
Raw History Blame Contribute Delete
1.08 kB
import time
import uuid
from fastapi import Request, Response
from .prompts import user_prompts, DEFAULT_SYSTEM_TEMPLATE, DEFAULT_USER_TEMPLATE
def get_or_create_user_id(request: Request, response: Response) -> str:
"""
Get or create a user ID without using cookies to support HuggingFace deployments
Args:
request: FastAPI request object
response: FastAPI response object
Returns:
User ID (either existing or newly created)
"""
# Try to get user ID from header first
user_id = request.headers.get("X-User-ID")
# Then try to get from query parameter
if not user_id:
user_id = request.query_params.get("user_id")
# If no user ID exists, create a new one
if not user_id:
user_id = str(uuid.uuid4())
# Initialize with default prompts
if user_id not in user_prompts:
user_prompts[user_id] = {
"system_template": DEFAULT_SYSTEM_TEMPLATE,
"user_template": DEFAULT_USER_TEMPLATE
}
return user_id