File size: 1,186 Bytes
6172a47 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | """Request builder for DeepSeek provider."""
from typing import Any
from loguru import logger
from providers.common.message_converter import build_base_request_body
def build_request_body(request_data: Any, *, thinking_enabled: bool) -> dict:
"""Build OpenAI-format request body from Anthropic request for DeepSeek."""
logger.debug(
"DEEPSEEK_REQUEST: conversion start model={} msgs={}",
getattr(request_data, "model", "?"),
len(getattr(request_data, "messages", [])),
)
body = build_base_request_body(
request_data,
include_reasoning_content=True,
)
extra_body: dict[str, Any] = {}
request_extra = getattr(request_data, "extra_body", None)
if request_extra:
extra_body.update(request_extra)
if thinking_enabled and body.get("model") != "deepseek-reasoner":
extra_body.setdefault("thinking", {"type": "enabled"})
if extra_body:
body["extra_body"] = extra_body
logger.debug(
"DEEPSEEK_REQUEST: conversion done model={} msgs={} tools={}",
body.get("model"),
len(body.get("messages", [])),
len(body.get("tools", [])),
)
return body
|