Skip to content

Commit e72fcff

Browse files
committed
修复api_keys失效
1 parent c73df08 commit e72fcff

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

gpt_server/serving/openai_api_server.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import httpx
2828

2929
try:
30-
from pydantic.v1 import BaseSettings
30+
from pydantic.v1 import BaseSettings, validator
3131
except ImportError:
3232
from pydantic import BaseSettings
3333
import shortuuid
@@ -106,6 +106,18 @@ class AppSettings(BaseSettings):
106106
controller_address: str = "http://localhost:21001"
107107
api_keys: Optional[List[str]] = None
108108

109+
@validator("api_keys", pre=True)
110+
def split_api_keys(cls, v):
111+
if isinstance(v, str):
112+
return v.split(",") if v else None
113+
return v
114+
115+
class Config:
116+
# 关闭默认 JSON 解析行为
117+
@classmethod
118+
def parse_env_var(cls, field_name: str, raw_val: str):
119+
return raw_val # 返回原始字符串,不解析成 JSON
120+
109121

110122
app_settings = AppSettings()
111123
from contextlib import asynccontextmanager
@@ -145,6 +157,7 @@ async def timing_tasks():
145157

146158
@asynccontextmanager
147159
async def lifespan(app: fastapi.FastAPI):
160+
logger.info(f"app_settings: {app_settings}")
148161
asyncio.create_task(timing_tasks())
149162
yield
150163

@@ -1123,7 +1136,8 @@ def create_openai_api_server():
11231136
)
11241137
parser.add_argument(
11251138
"--api-keys",
1126-
type=lambda s: s.split(","),
1139+
type=str,
1140+
default=None,
11271141
help="Optional list of comma separated API keys",
11281142
)
11291143
parser.add_argument(
@@ -1142,8 +1156,9 @@ def create_openai_api_server():
11421156
allow_methods=args.allowed_methods,
11431157
allow_headers=args.allowed_headers,
11441158
)
1145-
app_settings.controller_address = args.controller_address
1146-
app_settings.api_keys = args.api_keys
1159+
os.environ["controller_address"] = args.controller_address
1160+
if args.api_keys:
1161+
os.environ["api_keys"] = args.api_keys
11471162

11481163
logger.info(f"args: {args}")
11491164
return args

0 commit comments

Comments
 (0)