|
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': |
|
|
|
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.") |
|
|