mirror of
https://github.com/Alishahryar1/free-claude-code.git
synced 2026-06-02 06:13:46 +02:00
8687fb3cbb
Claude Code newer versions send a `betas` list in the request body (e.g. "interleaved-thinking-2025-05-14"). This landed in `__pydantic_extra__` and triggered `_openai_reject_native_only_top_level_fields`, surfacing as "Invalid request sent to provider." for all OpenAI Chat upstreams (kimi, nvidia_nim). Declare `betas` on both `MessagesRequest` and `TokenCountRequest` with `exclude=True` so it is accepted from clients but never forwarded to any provider body.
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
"""Request builder for Kimi (Moonshot) provider."""
|
|
|
|
from typing import Any
|
|
|
|
from loguru import logger
|
|
|
|
from core.anthropic import ReasoningReplayMode, build_base_request_body
|
|
from core.anthropic.conversion import OpenAIConversionError
|
|
from providers.exceptions import InvalidRequestError
|
|
|
|
|
|
def build_request_body(request_data: Any, *, thinking_enabled: bool) -> dict:
|
|
"""Build OpenAI-format request body from Anthropic request."""
|
|
logger.debug(
|
|
"KIMI_REQUEST: conversion start model={} msgs={}",
|
|
getattr(request_data, "model", "?"),
|
|
len(getattr(request_data, "messages", [])),
|
|
)
|
|
try:
|
|
body = build_base_request_body(
|
|
request_data,
|
|
reasoning_replay=ReasoningReplayMode.REASONING_CONTENT,
|
|
)
|
|
except OpenAIConversionError as exc:
|
|
raise InvalidRequestError(str(exc)) from exc
|
|
|
|
logger.debug(
|
|
"KIMI_REQUEST: conversion done model={} msgs={} tools={}",
|
|
body.get("model"),
|
|
len(body.get("messages", [])),
|
|
len(body.get("tools", [])),
|
|
)
|
|
return body
|