Skip to content

Commit 8c82063

Browse files
gcalmettesshreyankg
authored andcommitted
[BugFix]: properly catch templating error when preprocess input (vllm-project#13976)
Signed-off-by: Guillaume Calmettes <[email protected]>
1 parent acfda68 commit 8c82063

File tree

5 files changed

+37
-0
lines changed

5 files changed

+37
-0
lines changed

vllm/entrypoints/openai/serving_chat.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from collections.abc import Sequence as GenericSequence
88
from typing import Callable, Final, Optional, Union
99

10+
import jinja2
1011
from fastapi import Request
1112

1213
from vllm.config import ModelConfig
@@ -199,6 +200,15 @@ async def create_chat_completion(
199200
except ValueError as e:
200201
logger.exception("Error in preprocessing prompt inputs")
201202
return self.create_error_response(str(e))
203+
except TypeError as e:
204+
logger.exception("Error in preprocessing prompt inputs")
205+
return self.create_error_response(str(e))
206+
except RuntimeError as e:
207+
logger.exception("Error in preprocessing prompt inputs")
208+
return self.create_error_response(str(e))
209+
except jinja2.TemplateError as e:
210+
logger.exception("Error in preprocessing prompt inputs")
211+
return self.create_error_response(str(e))
202212

203213
request_id = "chatcmpl-" \
204214
f"{self._base_request_id(raw_request, request.request_id)}"

vllm/entrypoints/openai/serving_completion.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from collections.abc import Sequence as GenericSequence
77
from typing import Optional, Union, cast
88

9+
import jinja2
910
from fastapi import Request
1011

1112
from vllm.config import ModelConfig
@@ -114,6 +115,15 @@ async def create_completion(
114115
except ValueError as e:
115116
logger.exception("Error in preprocessing prompt inputs")
116117
return self.create_error_response(str(e))
118+
except TypeError as e:
119+
logger.exception("Error in preprocessing prompt inputs")
120+
return self.create_error_response(str(e))
121+
except RuntimeError as e:
122+
logger.exception("Error in preprocessing prompt inputs")
123+
return self.create_error_response(str(e))
124+
except jinja2.TemplateError as e:
125+
logger.exception("Error in preprocessing prompt inputs")
126+
return self.create_error_response(str(e))
117127

118128
# Schedule the request and get the result generator.
119129
generators: list[AsyncGenerator[RequestOutput, None]] = []

vllm/entrypoints/openai/serving_embedding.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ async def create_embedding(
142142
except ValueError as e:
143143
logger.exception("Error in preprocessing prompt inputs")
144144
return self.create_error_response(str(e))
145+
except TypeError as e:
146+
logger.exception("Error in preprocessing prompt inputs")
147+
return self.create_error_response(str(e))
145148

146149
# Schedule the request and get the result generator.
147150
generators: list[AsyncGenerator[PoolingRequestOutput, None]] = []

vllm/entrypoints/openai/serving_pooling.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from collections.abc import AsyncGenerator
77
from typing import Final, Literal, Optional, Union, cast
88

9+
import jinja2
910
import numpy as np
1011
from fastapi import Request
1112
from typing_extensions import assert_never
@@ -138,6 +139,12 @@ async def create_pooling(
138139
except ValueError as e:
139140
logger.exception("Error in preprocessing prompt inputs")
140141
return self.create_error_response(str(e))
142+
except TypeError as e:
143+
logger.exception("Error in preprocessing prompt inputs")
144+
return self.create_error_response(str(e))
145+
except jinja2.TemplateError as e:
146+
logger.exception("Error in preprocessing prompt inputs")
147+
return self.create_error_response(str(e))
141148

142149
# Schedule the request and get the result generator.
143150
generators: list[AsyncGenerator[PoolingRequestOutput, None]] = []

vllm/entrypoints/openai/serving_tokenization.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from typing import Final, Optional, Union
44

5+
import jinja2
56
from fastapi import Request
67

78
from vllm.config import ModelConfig
@@ -91,6 +92,12 @@ async def create_tokenize(
9192
except ValueError as e:
9293
logger.exception("Error in preprocessing prompt inputs")
9394
return self.create_error_response(str(e))
95+
except TypeError as e:
96+
logger.exception("Error in preprocessing prompt inputs")
97+
return self.create_error_response(str(e))
98+
except jinja2.TemplateError as e:
99+
logger.exception("Error in preprocessing prompt inputs")
100+
return self.create_error_response(str(e))
94101

95102
input_ids: list[int] = []
96103
for i, engine_prompt in enumerate(engine_prompts):

0 commit comments

Comments
 (0)