MCPcopy Index your code
hub / github.com/PaddlePaddle/FastDeploy / process_request

Method process_request

fastdeploy/input/text_processor.py:214–304  ·  view source on GitHub ↗

Preprocess the request Args: request (Dict): may contain text and messages fields Returns: bool: Whether preprocessing is successful str: error message

(self, request, max_model_len=None, **kwargs)

Source from the content-addressed store, hash-verified

212 self.tokenizer.pad_token_id = self.pad_token_id
213
214 def process_request(self, request, max_model_len=None, **kwargs):
215 """
216 Preprocess the request
217
218 Args:
219 request (Dict): may contain text and messages fields
220
221 Returns:
222 bool: Whether preprocessing is successful
223 str: error message
224 """
225 data_processor_logger.info(f"Start processing request: {request}")
226 request = self._apply_default_parameters(request)
227 if request.get("eos_token_ids") is None or len(request.eos_token_ids) == 0:
228 request.eos_token_ids = self.eos_token_ids
229
230 # processing stop_sequences and stop_token_ids
231 process_stop_token_ids(request, self.update_stop_seq)
232
233 # processing bad_words
234 bad_words = request.get("bad_words")
235 bad_words_token_ids = request.get("bad_words_token_ids")
236 if bad_words:
237 bad_words_token_ids = self.update_bad_words(bad_words, bad_words_token_ids)
238 request["bad_words_token_ids"] = bad_words_token_ids
239
240 # processing prompt_token_ids
241 if request.prompt_token_ids is None or len(request.prompt_token_ids) == 0:
242 if request.prompt is not None:
243 prompt = request.prompt
244 add_special_tokens = request.get("add_special_tokens", False)
245 assert isinstance(prompt, str) or (
246 isinstance(prompt, list) and all([isinstance(t, int) for t in prompt])
247 ), f"prompt must be a string or a list of integers, but got {type(prompt)}"
248 if isinstance(prompt, list): # if prompt is a token id list
249 request.prompt_token_ids = prompt
250 else:
251 request.prompt_token_ids = self.text2ids(
252 request.prompt, max_model_len, add_special_tokens=add_special_tokens
253 )
254 elif request.messages is not None:
255 if self.tokenizer.chat_template is None:
256 raise ValueError("This model does not support chat_template.")
257 task = request.to_dict()
258 chat_template_kwargs = kwargs.get("chat_template_kwargs", {})
259 if chat_template_kwargs:
260 if isinstance(chat_template_kwargs, dict):
261 for k, v in chat_template_kwargs.items():
262 if k not in task or task[k] is None:
263 task[k] = v
264 else:
265 raise ValueError("Invalid input: chat_template_kwargs must be a dict")
266 task.setdefault("enable_thinking", True)
267 request.prompt_token_ids = self.messages2ids(task, **chat_template_kwargs)
268 else:
269 raise ValueError(f"The request should have `input_ids`, `text` or `messages`: {request}.")
270
271 if len(request.prompt_token_ids) == 0:

Callers 1

add_requestsMethod · 0.45

Calls 12

update_bad_wordsMethod · 0.95
text2idsMethod · 0.95
messages2idsMethod · 0.95
process_stop_token_idsFunction · 0.90
itemsMethod · 0.80
splitMethod · 0.80
infoMethod · 0.45
getMethod · 0.45
to_dictMethod · 0.45
setMethod · 0.45
get_model_statusMethod · 0.45

Tested by

no test coverage detected