Unverified Commit fd8e055f authored by Guillaume Calmettes's avatar Guillaume Calmettes Committed by GitHub
Browse files

[BugFix]: properly catch templating error when preprocess input (#13976)


Signed-off-by: default avatarGuillaume Calmettes <gcalmettes@scaleway.com>
parent ab93f136
...@@ -7,6 +7,7 @@ from collections.abc import AsyncGenerator, AsyncIterator ...@@ -7,6 +7,7 @@ from collections.abc import AsyncGenerator, AsyncIterator
from collections.abc import Sequence as GenericSequence from collections.abc import Sequence as GenericSequence
from typing import Callable, Final, Optional, Union from typing import Callable, Final, Optional, Union
import jinja2
from fastapi import Request from fastapi import Request
from vllm.config import ModelConfig from vllm.config import ModelConfig
...@@ -199,6 +200,15 @@ class OpenAIServingChat(OpenAIServing): ...@@ -199,6 +200,15 @@ class OpenAIServingChat(OpenAIServing):
except ValueError as e: except ValueError as e:
logger.exception("Error in preprocessing prompt inputs") logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e)) return self.create_error_response(str(e))
except TypeError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
except RuntimeError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
except jinja2.TemplateError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
request_id = "chatcmpl-" \ request_id = "chatcmpl-" \
f"{self._base_request_id(raw_request, request.request_id)}" f"{self._base_request_id(raw_request, request.request_id)}"
......
...@@ -6,6 +6,7 @@ from collections.abc import AsyncGenerator, AsyncIterator ...@@ -6,6 +6,7 @@ from collections.abc import AsyncGenerator, AsyncIterator
from collections.abc import Sequence as GenericSequence from collections.abc import Sequence as GenericSequence
from typing import Optional, Union, cast from typing import Optional, Union, cast
import jinja2
from fastapi import Request from fastapi import Request
from vllm.config import ModelConfig from vllm.config import ModelConfig
...@@ -114,6 +115,15 @@ class OpenAIServingCompletion(OpenAIServing): ...@@ -114,6 +115,15 @@ class OpenAIServingCompletion(OpenAIServing):
except ValueError as e: except ValueError as e:
logger.exception("Error in preprocessing prompt inputs") logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e)) return self.create_error_response(str(e))
except TypeError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
except RuntimeError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
except jinja2.TemplateError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
# Schedule the request and get the result generator. # Schedule the request and get the result generator.
generators: list[AsyncGenerator[RequestOutput, None]] = [] generators: list[AsyncGenerator[RequestOutput, None]] = []
......
...@@ -142,6 +142,9 @@ class OpenAIServingEmbedding(OpenAIServing): ...@@ -142,6 +142,9 @@ class OpenAIServingEmbedding(OpenAIServing):
except ValueError as e: except ValueError as e:
logger.exception("Error in preprocessing prompt inputs") logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e)) return self.create_error_response(str(e))
except TypeError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
# Schedule the request and get the result generator. # Schedule the request and get the result generator.
generators: list[AsyncGenerator[PoolingRequestOutput, None]] = [] generators: list[AsyncGenerator[PoolingRequestOutput, None]] = []
......
...@@ -6,6 +6,7 @@ import time ...@@ -6,6 +6,7 @@ import time
from collections.abc import AsyncGenerator from collections.abc import AsyncGenerator
from typing import Final, Literal, Optional, Union, cast from typing import Final, Literal, Optional, Union, cast
import jinja2
import numpy as np import numpy as np
from fastapi import Request from fastapi import Request
from typing_extensions import assert_never from typing_extensions import assert_never
...@@ -138,6 +139,12 @@ class OpenAIServingPooling(OpenAIServing): ...@@ -138,6 +139,12 @@ class OpenAIServingPooling(OpenAIServing):
except ValueError as e: except ValueError as e:
logger.exception("Error in preprocessing prompt inputs") logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e)) return self.create_error_response(str(e))
except TypeError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
except jinja2.TemplateError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
# Schedule the request and get the result generator. # Schedule the request and get the result generator.
generators: list[AsyncGenerator[PoolingRequestOutput, None]] = [] generators: list[AsyncGenerator[PoolingRequestOutput, None]] = []
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
from typing import Final, Optional, Union from typing import Final, Optional, Union
import jinja2
from fastapi import Request from fastapi import Request
from vllm.config import ModelConfig from vllm.config import ModelConfig
...@@ -91,6 +92,12 @@ class OpenAIServingTokenization(OpenAIServing): ...@@ -91,6 +92,12 @@ class OpenAIServingTokenization(OpenAIServing):
except ValueError as e: except ValueError as e:
logger.exception("Error in preprocessing prompt inputs") logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e)) return self.create_error_response(str(e))
except TypeError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
except jinja2.TemplateError as e:
logger.exception("Error in preprocessing prompt inputs")
return self.create_error_response(str(e))
input_ids: list[int] = [] input_ids: list[int] = []
for i, engine_prompt in enumerate(engine_prompts): for i, engine_prompt in enumerate(engine_prompts):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment