MCPcopy Create free account
hub / github.com/Open-Bee/DataStudio / _build_payload

Method _build_payload

datastudio/models/openai_api.py:149–195  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

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,

Calls 1

getMethod · 0.45