fix(model_prices): add gemini lyria-3.5, voyage-multilingual-2, chatgpt gpt-5.5 and gpt-5.6 entries
Some checks failed
LiteLLM Rust / rustfmt, clippy, test (push) Has been cancelled
LiteLLM Rust / release wheel (push) Has been cancelled
Terraform Modules / fmt, validate, test (aws) (push) Has been cancelled
Terraform Provider / gofmt, vet, build, test (push) Has been cancelled
Terraform Provider / Provider endpoints vs proxy OpenAPI schema (push) Has been cancelled

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
mateo 2026-09-05 19:21:18 +00:00
parent 38106cc0f2
commit b4e7776ab3
3 changed files with 249 additions and 2 deletions

View file

@ -27541,6 +27541,70 @@
"max_tokens": 8191,
"mode": "embedding"
},
"chatgpt/gpt-5.5": {
"litellm_provider": "chatgpt",
"source": "https://platform.openai.com/docs/models/gpt-5.5",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
],
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"chatgpt/gpt-5.6-luna": {
"litellm_provider": "chatgpt",
"source": "https://platform.openai.com/docs/models/gpt-5.6-luna",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
],
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"chatgpt/gpt-5.6-sol": {
"litellm_provider": "chatgpt",
"source": "https://platform.openai.com/docs/models/gpt-5.6-sol",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
],
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"chatgpt/gpt-5.6-terra": {
"litellm_provider": "chatgpt",
"source": "https://platform.openai.com/docs/models/gpt-5.6-terra",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
],
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"chatgpt/gpt-5.4": {
"litellm_provider": "chatgpt",
"max_input_tokens": 1050000,
@ -47654,6 +47718,16 @@
"mode": "embedding",
"output_cost_per_token": 0.0
},
"voyage/voyage-multilingual-2": {
"input_cost_per_token": 1.2e-07,
"litellm_provider": "voyage",
"max_input_tokens": 32000,
"max_tokens": 32000,
"mode": "embedding",
"output_cost_per_token": 0.0,
"output_vector_size": 1024,
"source": "https://docs.voyageai.com/docs/pricing"
},
"voyage/voyage-3-large": {
"input_cost_per_token": 1.8e-07,
"litellm_provider": "voyage",
@ -60044,6 +60118,31 @@
"supports_web_search": false,
"output_cost_per_image": 0.08
},
"gemini/lyria-3.5": {
"input_cost_per_token": 0,
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
"max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://ai.google.dev/gemini-api/docs/pricing",
"supported_modalities": [
"text"
],
"supported_output_modalities": [
"audio"
],
"supports_audio_input": false,
"supports_audio_output": true,
"supports_function_calling": false,
"supports_prompt_caching": false,
"supports_response_schema": false,
"supports_system_messages": false,
"supports_vision": false,
"supports_web_search": false,
"output_cost_per_image": 0.08
},
"perplexity/anthropic/claude-fable-5": {
"litellm_provider": "perplexity",
"mode": "responses",

View file

@ -27541,6 +27541,70 @@
"max_tokens": 8191,
"mode": "embedding"
},
"chatgpt/gpt-5.5": {
"litellm_provider": "chatgpt",
"source": "https://platform.openai.com/docs/models/gpt-5.5",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
],
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"chatgpt/gpt-5.6-luna": {
"litellm_provider": "chatgpt",
"source": "https://platform.openai.com/docs/models/gpt-5.6-luna",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
],
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"chatgpt/gpt-5.6-sol": {
"litellm_provider": "chatgpt",
"source": "https://platform.openai.com/docs/models/gpt-5.6-sol",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
],
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"chatgpt/gpt-5.6-terra": {
"litellm_provider": "chatgpt",
"source": "https://platform.openai.com/docs/models/gpt-5.6-terra",
"max_input_tokens": 1050000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "responses",
"supported_endpoints": [
"/v1/chat/completions",
"/v1/responses"
],
"supports_function_calling": true,
"supports_parallel_function_calling": true,
"supports_response_schema": true,
"supports_vision": true
},
"chatgpt/gpt-5.4": {
"litellm_provider": "chatgpt",
"max_input_tokens": 1050000,
@ -47654,6 +47718,16 @@
"mode": "embedding",
"output_cost_per_token": 0.0
},
"voyage/voyage-multilingual-2": {
"input_cost_per_token": 1.2e-07,
"litellm_provider": "voyage",
"max_input_tokens": 32000,
"max_tokens": 32000,
"mode": "embedding",
"output_cost_per_token": 0.0,
"output_vector_size": 1024,
"source": "https://docs.voyageai.com/docs/pricing"
},
"voyage/voyage-3-large": {
"input_cost_per_token": 1.8e-07,
"litellm_provider": "voyage",
@ -60044,6 +60118,31 @@
"supports_web_search": false,
"output_cost_per_image": 0.08
},
"gemini/lyria-3.5": {
"input_cost_per_token": 0,
"litellm_provider": "gemini",
"max_input_tokens": 1048576,
"max_output_tokens": 65536,
"max_tokens": 65536,
"mode": "chat",
"output_cost_per_token": 0,
"source": "https://ai.google.dev/gemini-api/docs/pricing",
"supported_modalities": [
"text"
],
"supported_output_modalities": [
"audio"
],
"supports_audio_input": false,
"supports_audio_output": true,
"supports_function_calling": false,
"supports_prompt_caching": false,
"supports_response_schema": false,
"supports_system_messages": false,
"supports_vision": false,
"supports_web_search": false,
"output_cost_per_image": 0.08
},
"perplexity/anthropic/claude-fable-5": {
"litellm_provider": "perplexity",
"mode": "responses",

View file

@ -10,18 +10,23 @@ from unittest.mock import MagicMock, patch
import httpx
import pytest
import litellm
from litellm.llms.chatgpt.responses.transformation import ChatGPTResponsesAPIConfig
from litellm.llms.openai.common_utils import OpenAIError
from litellm.main import responses_api_bridge_check
from litellm.types.router import GenericLiteLLMParams
from litellm.types.utils import LlmProviders
from litellm.utils import ProviderConfigManager
from litellm.llms.chatgpt.responses.transformation import ChatGPTResponsesAPIConfig
class TestChatGPTResponsesAPITransformation:
@pytest.mark.parametrize(
"model_name",
[
"chatgpt/gpt-5.5",
"chatgpt/gpt-5.6-luna",
"chatgpt/gpt-5.6-sol",
"chatgpt/gpt-5.6-terra",
"chatgpt/gpt-5.4",
"chatgpt/gpt-5.4-pro",
"chatgpt/gpt-5.3-chat-latest",
@ -40,6 +45,50 @@ class TestChatGPTResponsesAPITransformation:
assert isinstance(config, ChatGPTResponsesAPIConfig)
assert config.custom_llm_provider == LlmProviders.CHATGPT
@pytest.mark.parametrize(
"model_name",
[
"chatgpt/gpt-5.5",
"chatgpt/gpt-5.6-luna",
"chatgpt/gpt-5.6-sol",
"chatgpt/gpt-5.6-terra",
],
)
def test_chatgpt_responses_model_metadata(self, model_name, local_model_cost_map):
model_info = litellm.get_model_info(model_name)
assert model_info["litellm_provider"] == "chatgpt"
assert model_info["mode"] == "responses"
assert model_info["supported_endpoints"] == [
"/v1/chat/completions",
"/v1/responses",
]
assert model_info["max_input_tokens"] == 1050000
assert model_info["max_output_tokens"] == 128000
@pytest.mark.parametrize(
"model_name",
[
"gpt-5.5",
"gpt-5.6-luna",
"gpt-5.6-sol",
"gpt-5.6-terra",
],
)
def test_chatgpt_models_bridge_chat_completions_to_responses(self, model_name, local_model_cost_map):
"""A chat completions request for these models must take the Responses bridge.
`gpt-5.6-*` also exists as an openai chat model, so an unregistered
chatgpt model resolves to mode "chat" here and never reaches the bridge.
"""
model_info, resolved_model = responses_api_bridge_check(
model=model_name,
custom_llm_provider="chatgpt",
)
assert model_info["mode"] == "responses"
assert resolved_model == model_name
@patch("litellm.llms.chatgpt.responses.transformation.Authenticator")
def test_chatgpt_responses_endpoint_url(self, mock_authenticator_class):
mock_auth_instance = MagicMock()