Skip to content

feat(together-ai): update model YAMLs [bot]#1313

Open
models-bot[bot] wants to merge 2 commits into
mainfrom
bot/update-together-ai-20260609-105520
Open

feat(together-ai): update model YAMLs [bot]#1313
models-bot[bot] wants to merge 2 commits into
mainfrom
bot/update-together-ai-20260609-105520

Conversation

@models-bot

@models-bot models-bot Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Auto-generated by poc-agent for provider together-ai.


Note

Low Risk
Metadata-only catalog edits with no runtime or auth changes; wrong feature flags could mislead integrators but impact is limited to model discovery and routing hints.

Overview
Updates two Together AI model catalog YAMLs to match current provider capabilities.

MiniMax-M2.7 drops structured_output from features, leaving function calling, JSON output, and prompt caching unchanged.

DeepSeek-V4-Pro gains a reasoning_effort param (high / max, default high) so callers can configure reasoning depth for this thinking model.

Reviewed by Cursor Bugbot for commit 1f3e460. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

/test-models

@harshiv-26

Copy link
Copy Markdown
Collaborator

Gateway test results

  • Total: 18
  • Passed: 12
  • Failed: 0
  • Validation failed: 6
  • Errored: 0
  • Skipped: 0
  • Success rate: 66.67%
Provider Model Scenarios
together-ai MiniMaxAI/MiniMax-M2.7 success: params, json-output, params:stream, tool-call, json-output:stream

validation_failure: tool-call:stream, reasoning:stream, reasoning
together-ai deepseek-ai/DeepSeek-V4-Pro success: structured-output:stream, structured-output, params, params:stream, tool-call, json-output, json-output:stream

validation_failure: tool-call:stream, reasoning, reasoning:stream
Failures (6)

together-ai/deepseek-ai/DeepSeek-V4-Pro — tool-call:stream (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmpcfq6gz9b/snippet.py", line 49, in <module>
    raise Exception("VALIDATION FAILED: tool-call stream - no tool calls received")
Exception: VALIDATION FAILED: tool-call stream - no tool calls received
Code snippet
from 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-together-ai/deepseek-ai-DeepSeek-V4-Pro",
    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")
Output
I'll check the weather in London for you right away

together-ai/deepseek-ai/DeepSeek-V4-Pro — reasoning (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmpq3i2wj_1/snippet.py", line 39, in <module>
    raise Exception("VALIDATION FAILED: reasoning - no reasoning information in response")
Exception: VALIDATION FAILED: reasoning - no reasoning information in response
Code snippet
from openai import OpenAI

client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")

response = client.chat.completions.create(
    model="test-v2-together-ai/deepseek-ai-DeepSeek-V4-Pro",
    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")
Output
Alright — let’s break this down carefully. The expression:  

\[
3^{3^{3^3}}
\]

---

### Step 1 – Clarifying the order of operations
Exponentiation is **right-associative**, which means we evaluate from the top down (right to left), not left to right.  
So:

\[
3^{3^{3^3}} = 3^{\left(3^{\left(3^3\right)}\right)}
\]

---

### Step 2 – Start with the topmost exponent
First calculate the exponent \(3^3\):

\[
3^3 = 27
\]

---

### Step 3 – Next level
Now substitute back:

\[
3^{(3^{27})}
\]

Here \(3^{27}\) is already enormous, but let’s compute it exactly to understand its scale.

---

### Step 4 – What’s \(3^{27}\)
We can do this in steps:

- \(3^3 = 27\)  
- \(3^6 = 27^2 = 729\)  
- \(3^9 = 3^6 \cdot 27 = 729 \cdot 27 = 19683\)  
- \(3^{18} = (3^9)^2 = 19683^2\)

\(19683^2 = (20000 - 317)^2  
= 20000^2 - 2 \cdot 20000 \cdot 317 + 317^2\)  
\(= 400,000,000 - 12,680,000 + 100,489\)  
\(= 387,420,489\)  

- Now \(3^{27} = 3^{18} \cdot 3^9 = 387,420,489 \cdot 19,683\)

Multiply:  
- 387,420,489 × 19,683 = 387,420,489 × (20,000 - 317)  
= 7,748,409,780,000 - 122,812,295,013  
= 7,625,597,484,987

So:

\[
3^{27} = 7,625,597,484,987
\]

---

### Step 5 – Understanding the scale
Now the original expression is:

\[
3^{(3^{27})} = 3^{7,625,597,484,987}
\]

This is a number with about  
\(\log_{10}(3) \times 7.6 \times 10^{12} \approx 0.4771 \times 7.6 \times 10^{12}\)  
\(\approx 3.63 \times 10^{12}\) decimal digits.

That’s **trillions of digits** — astronomically huge and impossible to write out in full.

---

### Step 6 – Conclusion
So the final expression reduces to:

\[
\boxed{3^{7,625,597,484,987}}
\]

If we want just the approximate magnitude:

\[
\boxed{\approx 10^{3.63 \times 10^{12}}}
\]
Response:  ChatCompletion(id='onU6rPK-2dTqGa-a08f9c614efff828', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='Alright — let’s break this down carefully. The expression:  \n\n\\[\n3^{3^{3^3}}\n\\]\n\n---\n\n### Step 1 – Clarifying the order of operations\nExponentiation is **right-associative**, which means we evaluate from the top down (right to left), not left to right.  \nSo:\n\n\\[\n3^{3^{3^3}} = 3^{\\left(3^{\\left(3^3\\right)}\\right)}\n\\]\n\n---\n\n### Step 2 – Start with the topmost exponent\nFirst calculate the exponent \\(3^3\\):\n\n\\[\n3^3 = 27\n\\]\n\n---\n\n### Step 3 – Next level\nNow substitute back:\n\n\\[\n3^{(3^{27})}\n\\]\n\nHere \\(3^{27}\\) is already enormous, but let’s compute it exactly to understand its scale.\n\n---\n\n### Step 4 – What’s \\(3^{27}\\)\nWe can do this in steps:\n\n- \\(3^3 = 27\\)  \n- \\(3^6 = 27^2 = 729\\)  \n- \\(3^9 = 3^6 \\cdot 27 = 729 \\cdot 27 = 19683\\)  \n- \\(3^{18} = (3^9)^2 = 19683^2\\)\n\n\\(19683^2 = (20000 - 317)^2  \n= 20000^2 - 2 \\cdot 20000 \\cdot 317 + 317^2\\)  \n\\(= 400,000,000 - 12,680,000 + 100,489\\)  \n\\(= 387,420,489\\)  \n\n- Now \\(3^{27} = 3^{18} \\cdot 3^9 = 387,420,489 \\cdot 19,683\\)\n\nMultiply:  \n- 387,420,489 × 19,683 = 387,420,489 × (20,000 - 317)  \n= 7,748,409,780,000 - 122,812,295,013  \n= 7,625,597,484,987\n\nSo:\n\n\\[\n3^{27} = 7,625,597,484,987\n\\]\n\n---\n\n### Step 5 – Understanding the scale\nNow the original expression is:\n\n\\[\n3^{(3^{27})} = 3^{7,625,597,484,987}\n\\]\n\nThis is a number with about  \n\\(\\log_{10}(3) \\times 7.6 \\times 10^{12} \\approx 0.4771 \\times 7.6 \\times 10^{12}\\)  \n\\(\\approx 3.63 \\times 10^{12}\\) decimal digits.\n\nThat’s **trillions of digits** — astronomically huge and impossible to write out in full.\n\n---\n\n### Step 6 – Conclusion\nSo the final expression reduces to:\n\n\\[\n\\boxed{3^{7,625,597,484,987}}\n\\]\n\nIf we want just the approximate magnitude:\n\n\\[\n\\boxed{\\approx 10^{3.63 \\times 10^{12}}}\n\\]', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=[]))], created=1781002598, model='deepseek-ai/DeepSeek-V4-Pro', object='chat.completion', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=651, prompt_tokens=25, total_tokens=676, completion_tokens_details=None, prompt_tokens_details=None), provider='together-ai')

together-ai/deepseek-ai/DeepSeek-V4-Pro — reasoning:stream (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmp4ueqe4pf/snippet.py", line 31, in <module>
    raise Exception("VALIDATION FAILED: reasoning stream - no reasoning information in stream")
Exception: VALIDATION FAILED: reasoning stream - no reasoning information in stream
Code snippet
from openai import OpenAI

client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")

response = client.chat.completions.create(
    model="test-v2-together-ai/deepseek-ai-DeepSeek-V4-Pro",
    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")
Output
Alright, let’s go step-by-step.

---

**Step 1 – Clarify the expression**

We have:

\[
3^{3^{3^{3}}}
\]

Exponentiation is right-associative—meaning we evaluate from the top down.  
This differs from something like \((3^3)^3\) which is left-associative.

So the expression is:

\[
3^{(3^{(3^3)})}
\]

---

**Step 2 – Start from the topmost exponent**

The exponent stack is:

\[
3^{(3^{(3^3)})}
\]

Start inside the parentheses at the very top:

\[
3^3 = 27
\]

So the exponent becomes:

\[
3^{(3^{27})}
\]

---

**Step 3 – Evaluate the next exponent**

Now we need \(3^{27}\):

\[
3^3 = 27
\]
\[
3^9 = 27^3 = 19683
\]
\[
3^{27} = 3^{9 \cdot 3} = (3^9)^3 = (19683)^3
\]

Let's compute \(19683^2\) first:  
\(19683^2 = (20000 - 317)^2\)  
= \(400,000,000 - 2 \cdot 20000 \cdot 317 + 317^2\)  
= \(400,000,000 - 12,680,000 + 100,489\)  
= \(387,420,489\)

Now multiply by 19683:

\(387,420,489 \times 19683\):

Break it:  
- \(387,420,489 \times 20000 = 7,748,409,780,000\)  
- Subtract \(387,420,489 \times 317\):

First \(387,420,489 \times 300 = 116,226,146,700\)  
Then \(387,420,489 \times 17 = 6,586,148,313\)  
Sum = \(122,812,295,013\)

So:

\(7,748,409,780,000 - 122,812,295,013 = 7,625,597,484,987\)

Thus:

\[
3^{27} = 7,625,597,484,987
\]

---

**Step 4 – Result so far**

We now have:

\[
3^{(3^{27})} = 3^{7,625,597,484,987}
\]

So our original expression is:

\[
3^{3^{3^{3}}} = 3^{3^{27}} = 3^{7,625,597,484,987}
\]

---

**Step 5 – Magnitude**

This is astronomically large; it has about \(7.6 \times 10^{12}\) in the exponent. If we tried to find the number of decimal digits:

\[
\log_{10}(3^{7.6 \times 10^{12}}) = 7.6 \times 10^{12} \cdot \log_{10} 3
\]

Since \(\log_{10} 3 \approx 0.4771\):

\[
7.6 \times 10^{12} \times 0.4771 \approx 3.63 \times 10^{12} \text{ digits}
\]

So the number has over **3.6 trillion digits**.

---

**Final Answer:**

\[
3^{3^{3^{3}}} = 3^{7,625,597,484,987}
\]
This is a number with ~3.6 trillion digits—impossible to write out fully.

together-ai/MiniMaxAI/MiniMax-M2.7 — tool-call:stream (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmpg4jy7pi1/snippet.py", line 49, in <module>
    raise Exception("VALIDATION FAILED: tool-call stream - no tool calls received")
Exception: VALIDATION FAILED: tool-call stream - no tool calls received
Code snippet
from 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-together-ai/MiniMaxAI-MiniMax-M2.7",
    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")

together-ai/MiniMaxAI/MiniMax-M2.7 — reasoning:stream (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmpbo6d9lfx/snippet.py", line 31, in <module>
    raise Exception("VALIDATION FAILED: reasoning stream - no reasoning information in stream")
Exception: VALIDATION FAILED: reasoning stream - no reasoning information in stream
Code snippet
from openai import OpenAI

client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")

response = client.chat.completions.create(
    model="test-v2-together-ai/MiniMaxAI-MiniMax-M2.7",
    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")

together-ai/MiniMaxAI/MiniMax-M2.7 — reasoning (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmp38gi23_z/snippet.py", line 39, in <module>
    raise Exception("VALIDATION FAILED: reasoning - no reasoning information in response")
Exception: VALIDATION FAILED: reasoning - no reasoning information in response
Code snippet
from openai import OpenAI

client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")

response = client.chat.completions.create(
    model="test-v2-together-ai/MiniMaxAI-MiniMax-M2.7",
    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")
Output
Response:  ChatCompletion(id='onU6yu8-gBAtS-a08f9cfe9f45ca32', choices=[Choice(finish_reason='length', index=0, logprobs=None, message=ChatCompletionMessage(content='', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=[]))], created=1781002623, model='MiniMaxAI/MiniMax-M2.7', object='chat.completion', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=2048, prompt_tokens=59, total_tokens=2107, completion_tokens_details=None, prompt_tokens_details=None), provider='together-ai')
Successes (12)

together-ai/deepseek-ai/DeepSeek-V4-Pro — structured-output:stream (success)

Output
{"name": "Science Fair", "date": "Friday", "participants": ["Alice", "Bob"]}
VALIDATION: structured-output stream SUCCESS

together-ai/deepseek-ai/DeepSeek-V4-Pro — structured-output (success)

Output
{
  "name": "Science Fair",
  "date": "Friday",
  "participants": ["Alice", "Bob"]
}
VALIDATION: structured-output SUCCESS

together-ai/deepseek-ai/DeepSeek-V4-Pro — params (success)

Output
The capital of France is **Paris**.

together-ai/deepseek-ai/DeepSeek-V4-Pro — params:stream (success)

Output
The capital of France is **Paris**.

together-ai/deepseek-ai/DeepSeek-V4-Pro — tool-call (success)

Output
Function: get_weather
Arguments: {"location":"London"}
VALIDATION: tool-call SUCCESS

together-ai/deepseek-ai/DeepSeek-V4-Pro — json-output (success)

Output
{
  "colors": [
    {
      "name": "Turquoise",
      "hex": "#40E0D0"
    },
    {
      "name": "Coral",
      "hex": "#FF7F50"
    },
    {
      
... (truncated, 87 chars omitted)

together-ai/deepseek-ai/DeepSeek-V4-Pro — json-output:stream (success)

Output
{
  "colors": [
    {
      "name": "Cerulean",
      "hex": "#007BA7"
    },
    {
      "name": "Coral",
      "hex": "#FF7F50"
    },
    {
      "
... (truncated, 97 chars omitted)

together-ai/MiniMaxAI/MiniMax-M2.7 — params (success)

Output
The capital of France is **Paris**.

together-ai/MiniMaxAI/MiniMax-M2.7 — json-output (success)

Output
{"messages":[{"role":"system","content":"You are a helpful assistant named MiniMax-M2.1, who is expected to answer the user's queries as precisely and
... (truncated, 333 chars omitted)

together-ai/MiniMaxAI/MiniMax-M2.7 — params:stream (success)

Output
The capital of France is **Paris**.

together-ai/MiniMaxAI/MiniMax-M2.7 — tool-call (success)

Output
Function: get_weather
Arguments: {"location":"London"}
VALIDATION: tool-call SUCCESS

together-ai/MiniMaxAI/MiniMax-M2.7 — json-output:stream (success)

Output
{
  "colors": [
    {
      "name": "Red",
      "hex": "#FF0000"
    },
    {
      "name": "Green",
      "hex": "#008000"
    },
    {
      "name"
... (truncated, 557 chars omitted)

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

/test-models

@harshiv-26 harshiv-26 enabled auto-merge (squash) June 9, 2026 12:38
@harshiv-26

Copy link
Copy Markdown
Collaborator

Gateway test results

  • Total: 18
  • Passed: 12
  • Failed: 0
  • Validation failed: 6
  • Errored: 0
  • Skipped: 0
  • Success rate: 66.67%
Provider Model Scenarios
together-ai MiniMaxAI/MiniMax-M2.7 success: json-output:stream, params, params:stream, json-output, tool-call

validation_failure: tool-call:stream, reasoning, reasoning:stream
together-ai deepseek-ai/DeepSeek-V4-Pro success: params, structured-output:stream, params:stream, structured-output, json-output, json-output:stream, tool-call

validation_failure: tool-call:stream, reasoning, reasoning:stream
Failures (6)

together-ai/deepseek-ai/DeepSeek-V4-Pro — tool-call:stream (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmpe9dh2a0f/snippet.py", line 49, in <module>
    raise Exception("VALIDATION FAILED: tool-call stream - no tool calls received")
Exception: VALIDATION FAILED: tool-call stream - no tool calls received
Code snippet
from 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-together-ai/deepseek-ai-DeepSeek-V4-Pro",
    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")

together-ai/deepseek-ai/DeepSeek-V4-Pro — reasoning (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmpq9ho97nz/snippet.py", line 39, in <module>
    raise Exception("VALIDATION FAILED: reasoning - no reasoning information in response")
Exception: VALIDATION FAILED: reasoning - no reasoning information in response
Code snippet
from openai import OpenAI

client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")

response = client.chat.completions.create(
    model="test-v2-together-ai/deepseek-ai-DeepSeek-V4-Pro",
    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")
Output
Alright, let’s break down **3^3^3^3** carefully.

---

**Step 1 – Understanding the notation**

We have:

\[
3^{3^{3^3}}
\]

By convention, exponentiation is **right-associative**, meaning we evaluate from the **top down**:

\[
3^{(3^{(3^3)})}
\]

---

**Step 2 – Start from the topmost exponent: \(3^3\)**

\[
3^3 = 27
\]

So now we have:

\[
3^{(3^{27})}
\]

---

**Step 3 – Next exponent: \(3^{27}\)**

Let’s compute \(3^{27}\):

\[
3^3 = 27
\]
\[
3^6 = 27^2 = 729
\]
\[
3^9 = 3^6 \cdot 3^3 = 729 \cdot 27 = 19\,683
\]
\[
3^{18} = (3^9)^2 = 19\,683^2
\]
\(19\,683^2 = 387\,420\,489\)

Now, \(3^{27} = 3^{18} \cdot 3^9\)
\[
387\,420\,489 \cdot 19\,683
\]

We can break this down:

- \(387\,420\,489 \cdot 20\,000 = 7\,748\,409\,780\,000\)
- \(387\,420\,489 \cdot 317\) to subtract (since \(20\,000 - 19\,683 = 317\)):
    - \(387\,420\,489 \cdot 300 = 116\,226\,146\,700\)
    - \(387\,420\,489 \cdot 17 = 6\,586\,148\,313\)
    - Sum: \(116\,226\,146\,700 + 6\,586\,148\,313 = 122\,812\,295\,013\)
- Subtract: \(7\,748\,409\,780\,000 - 122\,812\,295\,013 = 7\,625\,597\,484\,987\)

Thus:

\[
3^{27} = 7\,625\,597\,484\,987
\]

---

**Step 4 – The size of the number**

We now have:

\[
3^{(3^{27})} = 3^{7\,625\,597\,484\,987}
\]

This number is unimaginably vast.  
Its number of *decimal digits* is:

\[
\lfloor 7\,625\,597\,484\,987 \cdot \log_{10}(3) \rfloor + 1
\]

Using \(\log_{10}(3) \approx 0.47712125472\):

Multiply:
\[
7\,625\,597\,484\,987 \cdot 0.47712125472 \approx 3\,638\,334\,640\,024
\]
digits (roughly 3.6 trillion digits).

---

**Step 5 – Conclusion**

The expression \(3^{3^{3^3}}\) evaluates to:

\[
3^{7\,625\,597\,484\,987}
\]

which is a number with about **3.6 trillion digits**—far beyond the number of atoms in the observable universe.

\[
\boxed{3^{7\,625\,597\,484\,987}}
\]
Response:  ChatCompletion(id='onUeoLi-gBAtS-a090348f29a20434', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='Alright, let’s break down **3^3^3^3** carefully.\n\n---\n\n**Step 1 – Understanding the notation**\n\nWe have:\n\n\\[\n3^{3^{3^3}}\n\\]\n\nBy convention, exponentiation is **right-associative**, meaning we evaluate from the **top down**:\n\n\\[\n3^{(3^{(3^3)})}\n\\]\n\n---\n\n**Step 2 – Start from the topmost exponent: \\(3^3\\)**\n\n\\[\n3^3 = 27\n\\]\n\nSo now we have:\n\n\\[\n3^{(3^{27})}\n\\]\n\n---\n\n**Step 3 – Next exponent: \\(3^{27}\\)**\n\nLet’s compute \\(3^{27}\\):\n\n\\[\n3^3 = 27\n\\]\n\\[\n3^6 = 27^2 = 729\n\\]\n\\[\n3^9 = 3^6 \\cdot 3^3 = 729 \\cdot 27 = 19\\,683\n\\]\n\\[\n3^{18} = (3^9)^2 = 19\\,683^2\n\\]\n\\(19\\,683^2 = 387\\,420\\,489\\)\n\nNow, \\(3^{27} = 3^{18} \\cdot 3^9\\)\n\\[\n387\\,420\\,489 \\cdot 19\\,683\n\\]\n\nWe can break this down:\n\n- \\(387\\,420\\,489 \\cdot 20\\,000 = 7\\,748\\,409\\,780\\,000\\)\n- \\(387\\,420\\,489 \\cdot 317\\) to subtract (since \\(20\\,000 - 19\\,683 = 317\\)):\n    - \\(387\\,420\\,489 \\cdot 300 = 116\\,226\\,146\\,700\\)\n    - \\(387\\,420\\,489 \\cdot 17 = 6\\,586\\,148\\,313\\)\n    - Sum: \\(116\\,226\\,146\\,700 + 6\\,586\\,148\\,313 = 122\\,812\\,295\\,013\\)\n- Subtract: \\(7\\,748\\,409\\,780\\,000 - 122\\,812\\,295\\,013 = 7\\,625\\,597\\,484\\,987\\)\n\nThus:\n\n\\[\n3^{27} = 7\\,625\\,597\\,484\\,987\n\\]\n\n---\n\n**Step 4 – The size of the number**\n\nWe now have:\n\n\\[\n3^{(3^{27})} = 3^{7\\,625\\,597\\,484\\,987}\n\\]\n\nThis number is unimaginably vast.  \nIts number of *decimal digits* is:\n\n\\[\n\\lfloor 7\\,625\\,597\\,484\\,987 \\cdot \\log_{10}(3) \\rfloor + 1\n\\]\n\nUsing \\(\\log_{10}(3) \\approx 0.47712125472\\):\n\nMultiply:\n\\[\n7\\,625\\,597\\,484\\,987 \\cdot 0.47712125472 \\approx 3\\,638\\,334\\,640\\,024\n\\]\ndigits (roughly 3.6 trillion digits).\n\n---\n\n**Step 5 – Conclusion**\n\nThe expression \\(3^{3^{3^3}}\\) evaluates to:\n\n\\[\n3^{7\\,625\\,597\\,484\\,987}\n\\]\n\nwhich is a number with about **3.6 trillion digits**—far beyond the number of atoms in the observable universe.\n\n\\[\n\\boxed{3^{7\\,625\\,597\\,484\\,987}}\n\\]', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=[]))], created=1781008832, model='deepseek-ai/DeepSeek-V4-Pro', object='chat.completion', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=709, prompt_tokens=25, total_tokens=734, completion_tokens_details=None, prompt_tokens_details=None), provider='together-ai')

together-ai/deepseek-ai/DeepSeek-V4-Pro — reasoning:stream (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmpnstm9w68/snippet.py", line 31, in <module>
    raise Exception("VALIDATION FAILED: reasoning stream - no reasoning information in stream")
Exception: VALIDATION FAILED: reasoning stream - no reasoning information in stream
Code snippet
from openai import OpenAI

client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")

response = client.chat.completions.create(
    model="test-v2-together-ai/deepseek-ai-DeepSeek-V4-Pro",
    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")
Output
Alright — let’s break this down step-by-step.

---

**Step 1 – Understanding the notation**

The expression:

\[
3^{3^{3^3}}
\]

means we need to work **from the top down** in the exponents.  
Exponentiation is right-associative, meaning:

\[
a^{b^{c^d}} = a^{\left(b^{\left(c^d\right)}\right)}
\]

So here:

\[
3^{3^{3^3}} = 3^{\left(3^{\left(3^3\right)}\right)}
\]

---

**Step 2 – Evaluate the innermost exponent**

First:

\[
3^3 = 27
\]

Now substitute:

\[
3^{3^3} = 3^{27}
\]

---

**Step 3 – Evaluate the next exponent**

We have:

\[
3^{27}
\]

That is:

\[
3^{27} = 3^{3^3} = 7,625,597,484,987
\]

That’s about \(7.6 \times 10^{12}\).

---

**Step 4 – Final step**

Now we have:

\[
3^{7,625,597,484,987}
\]

This is an astronomically large number.  
It has about \( \log_{10}(3) \times 7,625,597,484,987 \) digits.

Using \(\log_{10}(3) \approx 0.4771\):

\[
\text{Number of digits} \approx 0.4771 \times 7,625,597,484,987 \approx 3.64 \times 10^{12} \text{ digits}
\]

---

**Step 5 – Conclusion**

The value of \(3^{3^{3^3}}\) is:

- The power tower evaluated top-down.
- It is \(3\) raised to the power \(3^{27}\).
- The result is too large to write explicitly—it has trillions of digits.

So:

\[
3^{3^{3^3}} = 3^{7,625,597,484,987}
\]

That’s the simplified exact form.

together-ai/MiniMaxAI/MiniMax-M2.7 — tool-call:stream (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmp92v9in7y/snippet.py", line 49, in <module>
    raise Exception("VALIDATION FAILED: tool-call stream - no tool calls received")
Exception: VALIDATION FAILED: tool-call stream - no tool calls received
Code snippet
from 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-together-ai/MiniMaxAI-MiniMax-M2.7",
    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")

together-ai/MiniMaxAI/MiniMax-M2.7 — reasoning (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmpkbqtsyw0/snippet.py", line 39, in <module>
    raise Exception("VALIDATION FAILED: reasoning - no reasoning information in response")
Exception: VALIDATION FAILED: reasoning - no reasoning information in response
Code snippet
from openai import OpenAI

client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")

response = client.chat.completions.create(
    model="test-v2-together-ai/MiniMaxAI-MiniMax-M2.7",
    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")
Output
Response:  ChatCompletion(id='onUezJu-2byqsH-a09035762f0eb87e', choices=[Choice(finish_reason='length', index=0, logprobs=None, message=ChatCompletionMessage(content='', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=[]))], created=1781008868, model='MiniMaxAI/MiniMax-M2.7', object='chat.completion', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=2048, prompt_tokens=59, total_tokens=2107, completion_tokens_details=None, prompt_tokens_details=None), provider='together-ai')

together-ai/MiniMaxAI/MiniMax-M2.7 — reasoning:stream (validation_failure)

Error
Traceback (most recent call last):
  File "/tmp/tmptuhwk7_m/snippet.py", line 31, in <module>
    raise Exception("VALIDATION FAILED: reasoning stream - no reasoning information in stream")
Exception: VALIDATION FAILED: reasoning stream - no reasoning information in stream
Code snippet
from openai import OpenAI

client = OpenAI(api_key="***", base_url="https://internal.devtest.truefoundry.tech/api/llm")

response = client.chat.completions.create(
    model="test-v2-together-ai/MiniMaxAI-MiniMax-M2.7",
    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")
Output
**Understanding the expression**

Exponentiation is **right‑associative**, i.e.

\[
a^{\;b^{\;c}}=a^{\;\bigl(b^{\;c}\bigr)} .
\]

Because of this convention the tower  

\[
3^{3^{3^{3}}}
\]

must be read as  

\[
3^{\;\bigl(3^{\;(3^{\,3})}\bigr)} .
\]

So we evaluate the power from the *top‑most* exponent down to the base.

---

### Step‑by‑step evaluation

1. **Innermost exponent**

\[
3^{3}=27 .
\]

2. **
Successes (12)

together-ai/deepseek-ai/DeepSeek-V4-Pro — params (success)

Output
The capital of France is **Paris**.

together-ai/deepseek-ai/DeepSeek-V4-Pro — structured-output:stream (success)

Output
{
  "name": "Science Fair",
  "date": "Friday",
  "participants": ["Alice", "Bob"]
}
VALIDATION: structured-output stream SUCCESS

together-ai/deepseek-ai/DeepSeek-V4-Pro — params:stream (success)

Output
The capital of France is **Paris**.

together-ai/deepseek-ai/DeepSeek-V4-Pro — structured-output (success)

Output
{
  "name": "Science Fair",
  "date": "Friday"
  ,
  "participants": ["Alice", "Bob"]
}
VALIDATION: structured-output SUCCESS

together-ai/deepseek-ai/DeepSeek-V4-Pro — json-output (success)

Output
{
  "colors": [
    {
      "name": "Deep Sky Blue",
      "hex": "#00BFFF"
    },
    {
      "name": "Crimson",
      "hex": "#DC143C"
    },
    {

... (truncated, 95 chars omitted)

together-ai/deepseek-ai/DeepSeek-V4-Pro — json-output:stream (success)

Output
{
  "colors": [
    {
      "name": "Deep Sky Blue",
      "hex": "#00BFFF"
    },
    {
      "name": "Crimson",
      "hex": "#DC143C"
    },
    {

... (truncated, 104 chars omitted)

together-ai/deepseek-ai/DeepSeek-V4-Pro — tool-call (success)

Output
Function: get_weather
Arguments: {"location":"London"}
VALIDATION: tool-call SUCCESS

together-ai/MiniMaxAI/MiniMax-M2.7 — json-output:stream (success)

Output
{ "colors": [ { "name": "Red", "hex": "#FF0000" }, { "name": "Green", "hex": "#00FF00" }, { "name": "Blue", "hex": "#0000FF" } ] }
VALIDATION: json-ou
... (truncated, 20 chars omitted)

together-ai/MiniMaxAI/MiniMax-M2.7 — params (success)

Output
The capital of France is Paris.

together-ai/MiniMaxAI/MiniMax-M2.7 — params:stream (success)

Output
Paris.

together-ai/MiniMaxAI/MiniMax-M2.7 — json-output (success)

Output
{"role": "assistant", "content": "json\n[\n  {\"color\": \"Red\", \"hex\": \"#FF0000\"},\n  {\"color\": \"Green\", \"hex\": \"#00FF00\"},\n  {\"color\
... (truncated, 351 chars omitted)

together-ai/MiniMaxAI/MiniMax-M2.7 — tool-call (success)

Output
Function: get_weather
Arguments: {"location":"London"}
VALIDATION: tool-call SUCCESS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant