File size: 1,106 Bytes
261bb88
ddb7871
5f8de6f
 
ddb7871
 
 
 
5f8de6f
 
 
ddb7871
 
 
 
5f8de6f
 
 
 
 
ddb7871
5f8de6f
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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.")