Skip to content
Merged
18 changes: 16 additions & 2 deletions bin/lib/onboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -2732,7 +2732,14 @@ async function setupNim(gpu) {
if (!validation.ok) {
continue;
}
preferredInferenceApi = validation.api;
// Ollama's /v1/responses endpoint does not produce correctly
// formatted tool calls — force chat completions like vLLM/NIM.
if (validation.api !== "openai-completions") {
console.log(
" ℹ Using chat completions API (Ollama tool calls require /v1/chat/completions)",
);
}
preferredInferenceApi = "openai-completions";
break;
}
break;
Expand Down Expand Up @@ -2777,7 +2784,14 @@ async function setupNim(gpu) {
if (!validation.ok) {
continue;
}
preferredInferenceApi = validation.api;
// Ollama's /v1/responses endpoint does not produce correctly
// formatted tool calls — force chat completions like vLLM/NIM.
if (validation.api !== "openai-completions") {
console.log(
" ℹ Using chat completions API (Ollama tool calls require /v1/chat/completions)",
);
}
preferredInferenceApi = "openai-completions";
break;
}
break;
Expand Down
2 changes: 1 addition & 1 deletion test/onboard-selection.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -624,7 +624,7 @@ const { setupNim } = require(${onboardPath});
assert.equal(result.status, 0, result.stderr);
const payload = JSON.parse(result.stdout.trim());
assert.equal(payload.result.provider, "ollama-local");
assert.equal(payload.result.preferredInferenceApi, "openai-responses");
assert.equal(payload.result.preferredInferenceApi, "openai-completions");
assert.ok(
payload.lines.some((line) => line.includes("Loading Ollama model: nemotron-3-nano:30b")),
);
Expand Down
Loading