MCPcopy Create free account
hub / github.com/PaddlePaddle/FastDeploy / from_generic_request

Method from_generic_request

fastdeploy/engine/request.py:241–318  ·  view source on GitHub ↗
(
        cls,
        req: T,
        request_id: Optional[str] = None,
        prompt: Optional[Union[str, list[int]]] = None,
        pooling_params: Optional[PoolingParams] = None,
    )

Source from the content-addressed store, hash-verified

239
240 @classmethod
241 def from_generic_request(
242 cls,
243 req: T,
244 request_id: Optional[str] = None,
245 prompt: Optional[Union[str, list[int]]] = None,
246 pooling_params: Optional[PoolingParams] = None,
247 ):
248 if request_id is not None:
249 setattr(req, "request_id", request_id)
250
251 if pooling_params is None:
252 sampling_params = SamplingParams.from_generic_request(req)
253 else:
254 sampling_params = SamplingParams()
255
256 guided_json_object = cls._process_guided_json(req)
257
258 metrics = RequestMetrics()
259 request = cls(
260 request_id=getattr(req, "request_id", None),
261 prompt_token_ids=getattr(req, "prompt_token_ids", None),
262 prompt=prompt,
263 sampling_params=sampling_params,
264 pooling_params=pooling_params,
265 metrics=metrics,
266 guided_json_object=guided_json_object,
267 disaggregate_info=getattr(req, "disaggregate_info", None),
268 guided_json=getattr(req, "guided_json", None),
269 guided_regex=getattr(req, "guided_regex", None),
270 guided_choice=getattr(req, "guided_choice", None),
271 guided_grammar=getattr(req, "guided_grammar", None),
272 user=getattr(req, "user", None),
273 response_format=(
274 getattr(req, "response_format", None).model_dump()
275 if (hasattr(getattr(req, "response_format", None), "model_dump"))
276 else None
277 ),
278 mm_hashes=getattr(req, "mm_hashes", None),
279 add_special_tokens=getattr(req, "add_special_tokens", False),
280 )
281
282 if hasattr(req, "messages"):
283 if hasattr(req, "prompt_token_ids") and not req.prompt_token_ids:
284 # If disable_chat_template is set, then the first message in messages will be used as the prompt.
285 assert len(req.messages) > 0, "messages can not be an empty list, unless prompt_token_ids is passed"
286 if req.disable_chat_template:
287 request.prompt = req.messages[0]["content"]
288 request.messages = []
289 request.messages = getattr(req, "messages", None)
290 request.tools = (
291 [tool.model_dump() for tool in getattr(req, "tools", [])] if getattr(req, "tools", None) else None
292 )
293 request.reasoning_max_tokens = getattr(req, "reasoning_max_tokens", None)
294 request.disable_chat_template = getattr(req, "disable_chat_template", None)
295 request.top_logprobs = getattr(req, "top_logprobs", None)
296 request.structural_tag = getattr(req, "structural_tag", None)
297 request.chat_template = getattr(req, "chat_template", None)
298 request.ic_req_data = getattr(req, "ic_req_data", None)

Callers 5

_request_to_dictMethod · 0.45
_request_to_dictMethod · 0.45
create_completionMethod · 0.45

Calls 5

SamplingParamsClass · 0.90
RequestMetricsClass · 0.85
_process_guided_jsonMethod · 0.80
itemsMethod · 0.80
model_dumpMethod · 0.45

Tested by 1