Spaces:
Sleeping
Sleeping
| """Request builder for OpenRouter provider.""" | |
| from typing import Any | |
| from loguru import logger | |
| from providers.common.message_converter import build_base_request_body | |
| OPENROUTER_DEFAULT_MAX_TOKENS = 81920 | |
| def build_request_body(request_data: Any) -> dict: | |
| """Build OpenAI-format request body from Anthropic request for OpenRouter.""" | |
| logger.debug( | |
| "OPENROUTER_REQUEST: conversion start model={} msgs={}", | |
| getattr(request_data, "model", "?"), | |
| len(getattr(request_data, "messages", [])), | |
| ) | |
| body = build_base_request_body( | |
| request_data, | |
| default_max_tokens=OPENROUTER_DEFAULT_MAX_TOKENS, | |
| include_reasoning_for_openrouter=True, | |
| ) | |
| # OpenRouter reasoning: extra_body={"reasoning": {"enabled": True}} | |
| extra_body: dict[str, Any] = {} | |
| request_extra = getattr(request_data, "extra_body", None) | |
| if request_extra: | |
| extra_body.update(request_extra) | |
| thinking = getattr(request_data, "thinking", None) | |
| thinking_enabled = ( | |
| thinking.enabled if thinking and hasattr(thinking, "enabled") else True | |
| ) | |
| if thinking_enabled: | |
| extra_body.setdefault("reasoning", {"enabled": True}) | |
| if extra_body: | |
| body["extra_body"] = extra_body | |
| logger.debug( | |
| "OPENROUTER_REQUEST: conversion done model={} msgs={} tools={}", | |
| body.get("model"), | |
| len(body.get("messages", [])), | |
| len(body.get("tools", [])), | |
| ) | |
| return body | |