fix(build): 回退到comp168(2d5232c)——唯一确认docker build成功的版本
Dockerfile: comp168结构 (2 COPY + 1 RUN, 无ex_engine, 无CUDA编译) qwen3_6_scripts/: comp168内容 (31文件, 141行patch_ops.sh) computility-run.yaml: max_model_len=100000 (comp168=100000, 避免replay 400拒绝) comp168得分: functional=0.923, replay=60194, total=60194 改动: 只有yaml的max_model_len从comp168的100000保持不变
This commit is contained in:
@@ -309,50 +309,12 @@ async def show_version():
|
||||
return JSONResponse(content=ver)
|
||||
|
||||
|
||||
def _select_error_policy(e: Exception):
|
||||
"""CCCL tuning_adjacent_difference policy_selector pattern:
|
||||
Select error handling strategy based on exception characteristics,
|
||||
like policy_selector chooses kernel config based on value_type_size
|
||||
and may_alias. Returns (status_code, error_code, message)."""
|
||||
err_msg = str(e)
|
||||
err_type = type(e).__name__
|
||||
|
||||
# Policy: OOM → 503 retryable (like LOAD_CA for aliased data)
|
||||
if "OutOfMemory" in err_msg or "CUDA out of memory" in err_msg:
|
||||
return 503, "oom", "GPU memory insufficient for this request"
|
||||
|
||||
# Policy: Engine death → 503 retryable
|
||||
if "Dead" in err_type or "dead" in err_msg.lower():
|
||||
return 503, "engine_dead", "Engine temporarily unavailable"
|
||||
|
||||
# Policy: Validation errors → 400 client error
|
||||
if isinstance(e, (ValueError, TypeError)):
|
||||
return 400, "invalid_request", err_msg
|
||||
|
||||
# Policy: Timeout → 504
|
||||
if "timeout" in err_msg.lower() or "Timeout" in err_type:
|
||||
return 504, "timeout", "Request processing timed out"
|
||||
|
||||
# Default policy: 500 internal
|
||||
return 500, "internal", err_msg
|
||||
|
||||
|
||||
@router.post("/v1/chat/completions")
|
||||
async def create_chat_completion(request: ChatCompletionRequest,
|
||||
raw_request: Request):
|
||||
try:
|
||||
generator = await chat(raw_request).create_chat_completion(
|
||||
request, raw_request)
|
||||
except Exception as e:
|
||||
status, code, msg = _select_error_policy(e)
|
||||
if status >= 500:
|
||||
logger.exception("Error in chat completion (policy=%s)", code)
|
||||
else:
|
||||
logger.warning("Client error in chat completion: %s", code)
|
||||
return JSONResponse(
|
||||
content={"error": {"message": msg, "type": "server_error",
|
||||
"code": code}},
|
||||
status_code=status)
|
||||
|
||||
generator = await chat(raw_request).create_chat_completion(
|
||||
request, raw_request)
|
||||
|
||||
if isinstance(generator, ErrorResponse):
|
||||
return JSONResponse(content=generator.model_dump(),
|
||||
|
||||
Reference in New Issue
Block a user