feat(databricks): update model YAMLs [bot]#1760
Conversation
|
/test-models |
Gateway test results
Failures (4)
ErrorCode snippetfrom openai import OpenAI
client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")
response = client.chat.completions.create(
model="test-v2-databricks/databricks-claude-opus-4-5",
messages=[
{"role": "user", "content": "How to calculate 3^3^3^3? Think step by step and show all reasoning."},
],
reasoning_effort="medium",
stream=True,
)
_reasoning_detected = False
for chunk in response:
if chunk.choices and len(chunk.choices) > 0:
delta = chunk.choices[0].delta
if delta.content is not None:
print(delta.content, end="", flush=True)
if getattr(delta, "reasoning_content", None) is not None:
_reasoning_detected = True
if getattr(delta, "reasoning", None) is not None:
_reasoning_detected = True
_usage = getattr(chunk, "usage", None)
if _usage is not None:
_details = getattr(_usage, "completion_tokens_details", None)
if _details and getattr(_details, "reasoning_tokens", 0) > 0:
_reasoning_detected = True
if not _reasoning_detected:
raise Exception("VALIDATION FAILED: reasoning stream - no reasoning information in stream")
print("\nVALIDATION: reasoning stream SUCCESS")
ErrorCode snippetfrom openai import OpenAI
client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")
response = client.chat.completions.create(
model="test-v2-databricks/databricks-claude-opus-4-5",
messages=[
{"role": "user", "content": "How to calculate 3^3^3^3? Think step by step and show all reasoning."},
],
reasoning_effort="medium",
stream=False,
)
_usage = getattr(response, "usage", None)
_reasoning_detected = False
_choices = getattr(response, "choices", None)
if _choices and len(_choices) > 0:
_message = getattr(_choices[0], "message", None)
else:
_message = None
if _message and getattr(_message, "content", None) is not None:
print(_message.content)
if _usage is not None:
_output_token_details = getattr(_usage, "completion_tokens_details", None)
if _output_token_details and getattr(_output_token_details, "reasoning_tokens", 0) > 0:
_reasoning_detected = True
elif getattr(_usage, "reasoning", None) is not None:
_reasoning_detected = True
if getattr(_message, "reasoning_content", None) is not None:
_reasoning_detected = True
elif getattr(_message, "reasoning", None) is not None:
_reasoning_detected = True
if not _reasoning_detected:
print("Response: ", response)
raise Exception("VALIDATION FAILED: reasoning - no reasoning information in response")
print("VALIDATION: reasoning SUCCESS")
ErrorCode snippetfrom openai import OpenAI
client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. London",
},
},
"required": ["location"],
"additionalProperties": False,
},
"strict": True,
},
},
]
response = client.chat.completions.create(
model="test-v2-databricks/databricks-claude-opus-4-1",
messages=[
{"role": "user", "content": "Use the get_weather tool to check the weather in London. You must call the tool, do not respond with plain text."},
],
tools=tools,
tool_choice="auto",
stream=False,
)
_message = response.choices[0].message
if _message.tool_calls:
for _tc in _message.tool_calls:
print(f"Function: {_tc.function.name}")
print(f"Arguments: {_tc.function.arguments}")
else:
print(_message.content)
if not _message.tool_calls or len(_message.tool_calls) == 0:
raise Exception("VALIDATION FAILED: tool-call - no tool calls in response")
print("VALIDATION: tool-call SUCCESS")
ErrorCode snippetfrom openai import OpenAI
client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. London",
},
},
"required": ["location"],
"additionalProperties": False,
},
"strict": True,
},
},
]
response = client.chat.completions.create(
model="test-v2-databricks/databricks-claude-opus-4-1",
messages=[
{"role": "user", "content": "Use the get_weather tool to check the weather in London. You must call the tool, do not respond with plain text."},
],
tools=tools,
tool_choice="auto",
stream=True,
)
_tool_calls_made = False
for chunk in response:
if chunk.choices and len(chunk.choices) > 0:
delta = chunk.choices[0].delta
if delta.content is not None:
print(delta.content, end="", flush=True)
if delta.tool_calls:
_tool_calls_made = True
for _tc in delta.tool_calls:
if _tc.function:
print(_tc.function.arguments or "", end="", flush=True)
if not _tool_calls_made:
raise Exception("VALIDATION FAILED: tool-call stream - no tool calls received")
print("\nVALIDATION: tool-call stream SUCCESS")Successes (28)
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
Output
OutputSkipped (1)
Skip reason |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 9158dd0. Configure here.
| - structured_output | ||
| limits: | ||
| context_window: 128000 | ||
| max_input_tokens: 128000 |
There was a problem hiding this comment.
Missing model context limits
High Severity
context_window and max_input_tokens were removed from limits, leaving only output caps. Those values previously documented a 128000-token context that external Databricks listings still report, so consumers of this registry lose the input/context bounds for databricks-llama-4-maverick.
Reviewed by Cursor Bugbot for commit 9158dd0. Configure here.
| - json_output | ||
| - prompt_caching | ||
| - system_messages | ||
| - cache_control |
There was a problem hiding this comment.
Wrong cache control feature
Medium Severity
cache_control was added to features for databricks-gpt-5-mini. In this schema that flag means fine-grained cache breakpoints on content blocks, which is an Anthropic-style capability. Sibling Databricks GPT models only declare prompt_caching, so this mislabels the model and can steer clients toward unsupported request fields.
Reviewed by Cursor Bugbot for commit 9158dd0. Configure here.
| - tool_choice | ||
| - assistant_prefill | ||
| - prompt_caching | ||
| - system_messages |
There was a problem hiding this comment.
Incomplete Claude caching features
Medium Severity
prompt_caching was added without cache_control. Every other Databricks Claude model that declares prompt_caching also declares cache_control, which this schema defines as fine-grained cache breakpoints. Claude-style prompt caching generally depends on those breakpoints, so the new feature set is incomplete and inconsistent with sibling configs.
Reviewed by Cursor Bugbot for commit 9158dd0. Configure here.


Auto-generated by poc-agent for provider
databricks.Note
Low Risk
Declarative provider catalog changes only; no runtime code paths, though billing/feature flags may shift how clients are validated or costed.
Overview
Updates six Databricks model YAMLs so routing, billing, and request shaping match current Foundation Model API behavior.
Claude Opus 4-5 and GPT-5 mini now declare prompt-cache pricing (
cache_creation_input_token_cost,cache_read_input_token_cost) and expanded features (e.g.prompt_caching,system_messages; GPT-5 mini also gains structured/JSON output andcache_control). Opus 4-5 adds pricing/docs sources.Several chat/embedding models gain
removeParams: reasoning_effort(plus BGE embedding adds it alongsidemax_tokens) so clients don’t send an unsupported param on Databricks.Llama 4 Maverick drops
context_window/max_input_tokensfromlimits, leaving output token caps only.Reviewed by Cursor Bugbot for commit 9158dd0. Bugbot is set up for automated code reviews on this repo. Configure here.