zlm-v1-tool-decisions: Responses
curl --request POST \
--url https://api.zerogpu.ai/v1/responses \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data @- <<EOF
{
"input": "Will it rain in Austin this week? And what's the latest news on the Longhorns?",
"model": "zlm-v1-tool-decisions"
}
EOFimport requests
url = "https://api.zerogpu.ai/v1/responses"
payload = {
"input": "Will it rain in Austin this week? And what's the latest news on the Longhorns?",
"model": "zlm-v1-tool-decisions"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: 'Will it rain in Austin this week? And what\'s the latest news on the Longhorns?',
model: 'zlm-v1-tool-decisions'
})
};
fetch('https://api.zerogpu.ai/v1/responses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));falsepackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.zerogpu.ai/v1/responses"
payload := strings.NewReader("{\n \"input\": \"Will it rain in Austin this week? And what's the latest news on the Longhorns?\",\n \"model\": \"zlm-v1-tool-decisions\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.zerogpu.ai/v1/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": \"Will it rain in Austin this week? And what's the latest news on the Longhorns?\",\n \"model\": \"zlm-v1-tool-decisions\"\n}"
response = http.request(request)
puts response.read_body{}{}By model
zlm-v1-tool-decisions
Model details for zlm-v1-tool-decisions. MCP tool selection with query and argument generation in a single inference step.
POST
/
responses
zlm-v1-tool-decisions: Responses
curl --request POST \
--url https://api.zerogpu.ai/v1/responses \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data @- <<EOF
{
"input": "Will it rain in Austin this week? And what's the latest news on the Longhorns?",
"model": "zlm-v1-tool-decisions"
}
EOFimport requests
url = "https://api.zerogpu.ai/v1/responses"
payload = {
"input": "Will it rain in Austin this week? And what's the latest news on the Longhorns?",
"model": "zlm-v1-tool-decisions"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: 'Will it rain in Austin this week? And what\'s the latest news on the Longhorns?',
model: 'zlm-v1-tool-decisions'
})
};
fetch('https://api.zerogpu.ai/v1/responses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));falsepackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.zerogpu.ai/v1/responses"
payload := strings.NewReader("{\n \"input\": \"Will it rain in Austin this week? And what's the latest news on the Longhorns?\",\n \"model\": \"zlm-v1-tool-decisions\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.zerogpu.ai/v1/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": \"Will it rain in Austin this week? And what's the latest news on the Longhorns?\",\n \"model\": \"zlm-v1-tool-decisions\"\n}"
response = http.request(request)
puts response.read_body{}{}
ZeroGPU’s tool-decision model turns user intent into action, pairing fast MCP tool selection with query and argument generation. It reads the conversation, selects the tools that fit, and generates the inputs needed to call them, with the decision and the generation happening in a single inference step so an agent moves from understanding a request to acting on it. When no tool is needed it returns NO_TOOL, which keeps unnecessary calls out of the workflow. At 0.6B parameters, served as a bf16 build with a 24,576-token context window, it is built for agents that need to choose quickly and act precisely.
References: Model docs • Terms • PrivacyAuthorizations
Headers
Optional project identifier. Scopes the request to a specific project when provided.
Body
application/json
Model identifier (fixed for this playground). Use request examples to change use cases.
Allowed value:
"zlm-v1-tool-decisions"Example:
"zlm-v1-tool-decisions"
Multi-line text or document content to send to the model.
Required string length:
1 - 131072Maximum number of tokens to generate in the response.
Required range:
x >= 1Example:
800
Response
Success
The response is of type object.

