Jainish1808
Move project files to repository root for Hugging Face Space
bf177ff
Raw
History Blame Contribute Delete
1.41 kB
"""OpenRouter provider implementation."""
from collections.abc import Iterator
from typing import Any
from providers.base import ProviderConfig
from providers.common import SSEBuilder
from providers.openai_compat import OpenAICompatibleProvider
from .request import build_request_body
OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1"
class OpenRouterProvider(OpenAICompatibleProvider):
"""OpenRouter provider using OpenAI-compatible API."""
def __init__(self, config: ProviderConfig):
super().__init__(
config,
provider_name="OPENROUTER",
base_url=config.base_url or OPENROUTER_BASE_URL,
api_key=config.api_key,
)
def _build_request_body(self, request: Any) -> dict:
"""Internal helper for tests and shared building."""
return build_request_body(request)
def _handle_extra_reasoning(self, delta: Any, sse: SSEBuilder) -> Iterator[str]:
"""Handle reasoning_details for StepFun models."""
reasoning_details = getattr(delta, "reasoning_details", None)
if reasoning_details and isinstance(reasoning_details, list):
for item in reasoning_details:
text = item.get("text", "") if isinstance(item, dict) else ""
if text:
yield from sse.ensure_thinking_block()
yield sse.emit_thinking_delta(text)