Build request payload for chat completions API. Args: message: Preprocessed message list (OpenAI format). **kwargs: Override parameters. Returns: Request payload dict.
(self, message: List[dict], **kwargs)
| 147 | ) |
| 148 | |
| 149 | def _build_payload(self, message: List[dict], **kwargs) -> dict: |
| 150 | """Build request payload for chat completions API. |
| 151 | |
| 152 | Args: |
| 153 | message: Preprocessed message list (OpenAI format). |
| 154 | **kwargs: Override parameters. |
| 155 | |
| 156 | Returns: |
| 157 | Request payload dict. |
| 158 | """ |
| 159 | temperature = kwargs.get("temperature", self.temperature) |
| 160 | max_tokens = kwargs.get("max_tokens", self.max_tokens) |
| 161 | top_p = kwargs.get("top_p", self.top_p) |
| 162 | top_k = kwargs.get("top_k", self.top_k) |
| 163 | min_p = kwargs.get("min_p", self.min_p) |
| 164 | presence_penalty = kwargs.get("presence_penalty", self.presence_penalty) |
| 165 | repetition_penalty = kwargs.get("repetition_penalty", self.repetition_penalty) |
| 166 | |
| 167 | # Filter out known keys to avoid duplicates in payload |
| 168 | extra_kwargs = { |
| 169 | k: v for k, v in kwargs.items() if k not in self._SAMPLING_PARAM_KEYS |
| 170 | } |
| 171 | |
| 172 | payload = { |
| 173 | "model": self.model, |
| 174 | "messages": message, |
| 175 | "max_tokens": max_tokens, |
| 176 | "temperature": temperature, |
| 177 | "top_p": top_p, |
| 178 | "top_k": top_k, |
| 179 | "min_p": min_p, |
| 180 | "presence_penalty": presence_penalty, |
| 181 | "repetition_penalty": repetition_penalty, |
| 182 | **extra_kwargs, |
| 183 | } |
| 184 | |
| 185 | # Request structured JSON output when return_dict is enabled |
| 186 | if self.return_dict: |
| 187 | payload["response_format"] = {"type": "json_object"} |
| 188 | |
| 189 | # Add thinking mode config (for vLLM/SGLang with Qwen3 etc.) |
| 190 | if "chat_template_kwargs" not in payload: |
| 191 | payload["chat_template_kwargs"] = {} |
| 192 | if "enable_thinking" not in payload["chat_template_kwargs"]: |
| 193 | payload["chat_template_kwargs"]["enable_thinking"] = self.enable_thinking |
| 194 | |
| 195 | return payload |
| 196 | |
| 197 | async def _request_non_streaming( |
| 198 | self, |