Sync version of generate for single request (BaseAPI compatibility). Args: inputs: Preprocessed message list (OpenAI format). **kwargs: Additional parameters. Returns: Tuple of (ret_code, answer, response).
(self, inputs, **kwargs)
| 565 | return final |
| 566 | |
| 567 | def generate_inner(self, inputs, **kwargs): |
| 568 | """Sync version of generate for single request (BaseAPI compatibility). |
| 569 | |
| 570 | Args: |
| 571 | inputs: Preprocessed message list (OpenAI format). |
| 572 | **kwargs: Additional parameters. |
| 573 | |
| 574 | Returns: |
| 575 | Tuple of (ret_code, answer, response). |
| 576 | """ |
| 577 | |
| 578 | temperature = kwargs.get("temperature", self.temperature) |
| 579 | max_tokens = kwargs.get("max_tokens", self.max_tokens) |
| 580 | top_p = kwargs.get("top_p", self.top_p) |
| 581 | top_k = kwargs.get("top_k", self.top_k) |
| 582 | min_p = kwargs.get("min_p", self.min_p) |
| 583 | presence_penalty = kwargs.get("presence_penalty", self.presence_penalty) |
| 584 | repetition_penalty = kwargs.get("repetition_penalty", self.repetition_penalty) |
| 585 | |
| 586 | headers = self._build_openai_headers() |
| 587 | |
| 588 | extra_kwargs = { |
| 589 | k: v for k, v in kwargs.items() if k not in self._SAMPLING_PARAM_KEYS |
| 590 | } |
| 591 | |
| 592 | payload = { |
| 593 | "model": self.model, |
| 594 | "messages": inputs, |
| 595 | "max_tokens": max_tokens, |
| 596 | "temperature": temperature, |
| 597 | "top_p": top_p, |
| 598 | "top_k": top_k, |
| 599 | "min_p": min_p, |
| 600 | "presence_penalty": presence_penalty, |
| 601 | "repetition_penalty": repetition_penalty, |
| 602 | **extra_kwargs, |
| 603 | } |
| 604 | |
| 605 | if self.return_dict: |
| 606 | payload["response_format"] = {"type": "json_object"} |
| 607 | |
| 608 | # Add thinking mode config (for vLLM/SGLang with Qwen3 etc.) |
| 609 | if "chat_template_kwargs" not in payload: |
| 610 | payload["chat_template_kwargs"] = {} |
| 611 | if "enable_thinking" not in payload["chat_template_kwargs"]: |
| 612 | payload["chat_template_kwargs"]["enable_thinking"] = self.enable_thinking |
| 613 | |
| 614 | response = requests.post( |
| 615 | self.api_base, |
| 616 | headers=headers, |
| 617 | json=payload, |
| 618 | timeout=self.timeout, |
| 619 | ) |
| 620 | |
| 621 | try: |
| 622 | answer = self._parse_openai_response(response.json()) |
| 623 | except Exception as e: |
| 624 | return 1, e, response |
no test coverage detected