Files
Practical_Training_Assignment/backend/app/api/v1/endpoints/chat.py

27 lines
830 B
Python

from fastapi import APIRouter
from fastapi.responses import StreamingResponse
from app.constants.model_data import base_url, headers, tip_message
from app.services.llm_request import stream_post_request
from app.schemas import ChatRequest
router = APIRouter()
@router.post("/completions")
async def chat(data: ChatRequest):
all_messages = [tip_message] + data.messages
all_messages_dict = [
m.model_dump() if hasattr(m, "model_dump") else m.dict() if hasattr(m, "dict") else m
for m in all_messages
]
payload = {"model": data.model, "messages": all_messages_dict, "stream": True}
print(payload)
return StreamingResponse(
stream_post_request(
url=base_url,
headers=headers,
json=payload,
),
media_type="text/event-stream"
)