mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-23 00:41:40 +00:00
fix(oci): map max_completion_tokens to maxCompletionTokens
The OCI parameter mapping incorrectly maps max_completion_tokens to maxTokens (the legacy OCI field). OCI OpenAI GPT-5 models reject maxTokens and require maxCompletionTokens instead. Fix the mapping so max_completion_tokens maps to maxCompletionTokens while max_tokens continues to map to maxTokens for backward compatibility with older models. Fixes #27429
This commit is contained in:
parent
fa81017e12
commit
ca8b2471c7
3 changed files with 42 additions and 1 deletions
|
|
@ -213,7 +213,7 @@ class OCIChatConfig(BaseConfig):
|
|||
self.openai_to_oci_generic_param_map = {
|
||||
"stream": "isStream",
|
||||
"max_tokens": "maxTokens",
|
||||
"max_completion_tokens": "maxTokens",
|
||||
"max_completion_tokens": "maxCompletionTokens",
|
||||
"temperature": "temperature",
|
||||
"tools": "tools",
|
||||
"frequency_penalty": "frequencyPenalty",
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ class OCIChatRequestPayload(BaseModel):
|
|||
isStream: bool = False
|
||||
numGenerations: Optional[int] = None
|
||||
maxTokens: Optional[int] = None
|
||||
maxCompletionTokens: Optional[int] = None
|
||||
temperature: Optional[float] = None
|
||||
topP: Optional[float] = None
|
||||
stop: Optional[List[str]] = None
|
||||
|
|
|
|||
|
|
@ -765,3 +765,43 @@ class TestOCISignerSupport:
|
|||
)
|
||||
|
||||
assert wrapper.path_url == "/api/v1/chat"
|
||||
|
||||
def test_max_completion_tokens_maps_to_maxCompletionTokens(self):
|
||||
"""
|
||||
max_completion_tokens should map to maxCompletionTokens, not maxTokens.
|
||||
|
||||
Regression test for https://github.com/BerriAI/litellm/issues/27429
|
||||
"""
|
||||
config = OCIChatConfig()
|
||||
optional_params = {
|
||||
"oci_compartment_id": TEST_COMPARTMENT_ID,
|
||||
"max_completion_tokens": 100,
|
||||
}
|
||||
transformed_request = config.transform_request(
|
||||
model=TEST_MODEL_NAME,
|
||||
messages=TEST_MESSAGES, # type: ignore
|
||||
optional_params=optional_params,
|
||||
litellm_params={},
|
||||
headers={},
|
||||
)
|
||||
chat_request = transformed_request["chatRequest"]
|
||||
assert chat_request.get("maxCompletionTokens") == 100
|
||||
assert "maxTokens" not in chat_request
|
||||
|
||||
def test_max_tokens_maps_to_maxTokens(self):
|
||||
"""max_tokens (legacy param) should still map to maxTokens."""
|
||||
config = OCIChatConfig()
|
||||
optional_params = {
|
||||
"oci_compartment_id": TEST_COMPARTMENT_ID,
|
||||
"max_tokens": 200,
|
||||
}
|
||||
transformed_request = config.transform_request(
|
||||
model=TEST_MODEL_NAME,
|
||||
messages=TEST_MESSAGES, # type: ignore
|
||||
optional_params=optional_params,
|
||||
litellm_params={},
|
||||
headers={},
|
||||
)
|
||||
chat_request = transformed_request["chatRequest"]
|
||||
assert chat_request.get("maxTokens") == 200
|
||||
assert "maxCompletionTokens" not in chat_request
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue