|
38 | 38 | "deepseek-r1": "deepseek-ai/DeepSeek-R1", |
39 | 39 | "default": "deepseek-ai/DeepSeek-V3" |
40 | 40 | } |
| 41 | +DUMMY_KEY = "dummy-key" |
41 | 42 |
|
42 | 43 | # --- [Shared State] --- |
43 | 44 |
|
@@ -117,11 +118,12 @@ class DeepSeekProxy: |
117 | 118 | def __init__(self, api_key: str, extra_headers: Optional[Dict[str, str]] = None): |
118 | 119 | # We instantiate a new client per request to ensure isolation of user credentials |
119 | 120 | logger.debug("Initializing DeepSeekProxy client with headers: %s", extra_headers) |
| 121 | + kv = {"api_key": api_key} if api_key != DUMMY_KEY else {} |
120 | 122 | self.client = AsyncOpenAI( |
121 | | - api_key=api_key, |
122 | 123 | base_url=SILICON_FLOW_BASE_URL, |
123 | 124 | timeout=httpx.Timeout(connect=10.0, read=600.0, write=600.0, pool=10.0), |
124 | | - default_headers=extra_headers # 透传 Header |
| 125 | + default_headers=extra_headers, # 透传 Header |
| 126 | + **kv |
125 | 127 | ) |
126 | 128 |
|
127 | 129 | def _get_mapped_model(self, request_model: str) -> str: |
@@ -327,7 +329,7 @@ def epoch_clock(): |
327 | 329 | def _prepare_proxy_and_headers(request: Request, authorization: Optional[str]) -> tuple[DeepSeekProxy, str]: |
328 | 330 | """Helper to extract API key, filter headers, and instantiate the proxy.""" |
329 | 331 | request_id = request.headers.get("x-request-id", str(uuid.uuid4())) |
330 | | - api_key = "dummy-key" |
| 332 | + api_key = DUMMY_KEY |
331 | 333 |
|
332 | 334 | if SERVER_STATE.is_mock_mode: |
333 | 335 | api_key = _MOCK_ENV_API_KEY or "mock-key" |
|
0 commit comments