Update main.py
Browse files
main.py
CHANGED
@@ -17,10 +17,15 @@ from datetime import datetime
|
|
17 |
from aiohttp import ClientSession, ClientTimeout, ClientError
|
18 |
from fastapi import FastAPI, HTTPException, Request, Depends, Header
|
19 |
from fastapi.responses import StreamingResponse, JSONResponse, RedirectResponse
|
20 |
-
from pydantic import BaseModel
|
21 |
from io import BytesIO
|
22 |
import base64
|
23 |
|
|
|
|
|
|
|
|
|
|
|
24 |
# Configure logging
|
25 |
logging.basicConfig(
|
26 |
level=logging.INFO,
|
@@ -30,10 +35,6 @@ logging.basicConfig(
|
|
30 |
logger = logging.getLogger(__name__)
|
31 |
|
32 |
# Load environment variables
|
33 |
-
from dotenv import load_dotenv
|
34 |
-
|
35 |
-
load_dotenv()
|
36 |
-
|
37 |
API_KEYS = os.getenv('API_KEYS', '').split(',') # Comma-separated API keys
|
38 |
RATE_LIMIT = int(os.getenv('RATE_LIMIT', '60')) # Requests per minute
|
39 |
AVAILABLE_MODELS = os.getenv('AVAILABLE_MODELS', '') # Comma-separated available models
|
@@ -457,6 +458,12 @@ class Message(BaseModel):
|
|
457 |
role: str
|
458 |
content: str
|
459 |
|
|
|
|
|
|
|
|
|
|
|
|
|
460 |
class ChatRequest(BaseModel):
|
461 |
model: str
|
462 |
messages: List[Message]
|
|
|
17 |
from aiohttp import ClientSession, ClientTimeout, ClientError
|
18 |
from fastapi import FastAPI, HTTPException, Request, Depends, Header
|
19 |
from fastapi.responses import StreamingResponse, JSONResponse, RedirectResponse
|
20 |
+
from pydantic import BaseModel, validator
|
21 |
from io import BytesIO
|
22 |
import base64
|
23 |
|
24 |
+
from dotenv import load_dotenv
|
25 |
+
|
26 |
+
# Load environment variables
|
27 |
+
load_dotenv()
|
28 |
+
|
29 |
# Configure logging
|
30 |
logging.basicConfig(
|
31 |
level=logging.INFO,
|
|
|
35 |
logger = logging.getLogger(__name__)
|
36 |
|
37 |
# Load environment variables
|
|
|
|
|
|
|
|
|
38 |
API_KEYS = os.getenv('API_KEYS', '').split(',') # Comma-separated API keys
|
39 |
RATE_LIMIT = int(os.getenv('RATE_LIMIT', '60')) # Requests per minute
|
40 |
AVAILABLE_MODELS = os.getenv('AVAILABLE_MODELS', '') # Comma-separated available models
|
|
|
458 |
role: str
|
459 |
content: str
|
460 |
|
461 |
+
@validator('content')
|
462 |
+
def content_must_be_string(cls, v):
|
463 |
+
if not isinstance(v, str):
|
464 |
+
raise ValueError('content must be a string')
|
465 |
+
return v
|
466 |
+
|
467 |
class ChatRequest(BaseModel):
|
468 |
model: str
|
469 |
messages: List[Message]
|