from fastapi import HTTPException from fastapi.responses import StreamingResponse from api.config import MODEL_PROVIDER_MAPPING from api.models import ChatRequest from api.provider import gizai from api.logger import setup_logger logger = setup_logger(__name__) async def process_streaming_response(request: ChatRequest): provider_name = MODEL_PROVIDER_MAPPING.get(request.model) if provider_name == 'gizai': # GizAI does not support streaming; process as non-streaming response = await gizai.process_non_streaming_response(request) return StreamingResponse(iter([json.dumps(response)]), media_type="application/json") else: raise HTTPException(status_code=400, detail=f"Model {request.model} is not supported for streaming.") async def process_non_streaming_response(request: ChatRequest): provider_name = MODEL_PROVIDER_MAPPING.get(request.model) if provider_name == 'gizai': return await gizai.process_non_streaming_response(request) else: raise HTTPException(status_code=400, detail=f"Model {request.model} is not supported.")