Niansuh commited on
Commit
042230d
·
verified ·
1 Parent(s): 521a764

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +15 -1
main.py CHANGED
@@ -9,7 +9,7 @@ import base64
9
  from aiohttp import ClientSession, ClientTimeout, ClientError
10
  from fastapi import FastAPI, HTTPException, Request
11
  from pydantic import BaseModel
12
- from typing import List, Dict, Any, Optional, AsyncGenerator
13
  from datetime import datetime
14
  from fastapi.responses import StreamingResponse
15
 
@@ -371,6 +371,20 @@ def create_response(content: str, model: str, finish_reason: Optional[str] = Non
371
  async def chat_completions(request: ChatRequest, req: Request):
372
  logger.info(f"Received chat completions request: model='{request.model}' messages={request.messages} stream={request.stream} webSearchMode={request.webSearchMode} image={request.image}")
373
  try:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
  # Convert Pydantic messages to dicts
375
  messages = [{"role": msg.role, "content": msg.content} for msg in request.messages]
376
 
 
9
  from aiohttp import ClientSession, ClientTimeout, ClientError
10
  from fastapi import FastAPI, HTTPException, Request
11
  from pydantic import BaseModel
12
+ from typing import List, Dict, Any, Optional, AsyncGenerator, Union
13
  from datetime import datetime
14
  from fastapi.responses import StreamingResponse
15
 
 
371
  async def chat_completions(request: ChatRequest, req: Request):
372
  logger.info(f"Received chat completions request: model='{request.model}' messages={request.messages} stream={request.stream} webSearchMode={request.webSearchMode} image={request.image}")
373
  try:
374
+ # Validate that all messages have string content
375
+ for idx, msg in enumerate(request.messages):
376
+ if not isinstance(msg.content, str):
377
+ logger.error(f"Message at index {idx} has invalid content type: {type(msg.content)}")
378
+ raise HTTPException(
379
+ status_code=422,
380
+ detail=[{
381
+ "type": "string_type",
382
+ "loc": ["body", "messages", idx, "content"],
383
+ "msg": "Input should be a valid string",
384
+ "input": msg.content
385
+ }]
386
+ )
387
+
388
  # Convert Pydantic messages to dicts
389
  messages = [{"role": msg.role, "content": msg.content} for msg in request.messages]
390