Views
No views yet
--reasoning-parser deepseek_v3 and --default-chat-template-kwargs '{"enable_thinking": true}' to have the chain of thought returned in a separate field. To use non-reasoning mode, pass "chat_template_kwargs": {"enable_thinking": false} per request.hermes tool-call parser.furiosa-ai/K-EXAONE-236B-A23B-NVFP4A16 identifier; the model
runs on four RNGD cards. K-EXAONE reasons by default and can switch thinking on
and off per request (see Advanced Usage).deepseek_v3 reasoning parser so the chain of thought is
returned in a separate field:1furiosa-llm serve furiosa-ai/K-EXAONE-236B-A23B-NVFP4A16 \
2 --reasoning-parser deepseek_v3 \
3 --default-chat-template-kwargs '{"enable_thinking": true}'--default-chat-template-kwargs '{"enable_thinking": true}' flag keeps the
chat template and the reasoning parser aligned: K-EXAONE's chat template enables
thinking by default, but deepseek_v3 treats reasoning as disabled unless
enable_thinking is set, so without this flag a request that omits
enable_thinking would leak the raw <think>...</think> text into the response.hermes tool-call parser (keep
both the reasoning parser and the --default-chat-template-kwargs flag so
thinking is still parsed into its own field):1furiosa-llm serve furiosa-ai/K-EXAONE-236B-A23B-NVFP4A16 \
2 --reasoning-parser deepseek_v3 \
3 --default-chat-template-kwargs '{"enable_thinking": true}' \
4 --enable-auto-tool-choice \
5 --tool-call-parser hermes1INFO: Started server process [27507]
2INFO: Waiting for application startup.
3INFO: Application startup complete.
4INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)curl:1curl http://localhost:8000/v1/chat/completions \
2 -H "Content-Type: application/json" \
3 -d '{
4 "model": "furiosa-ai/K-EXAONE-236B-A23B-NVFP4A16",
5 "messages": [{"role": "user", "content": "What is the capital of France?"}]
6 }' \
7 | python -m json.tool--reasoning-parser deepseek_v3, K-EXAONE returns its reasoning separately
from the final answer:response.choices[].message.reasoning (non-streaming)response.choices[].delta.reasoning (streaming)1from openai import OpenAI
2
3client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
4
5response = client.chat.completions.create(
6 model="furiosa-ai/K-EXAONE-236B-A23B-NVFP4A16",
7 messages=[{"role": "user", "content": "How many r's are in 'strawberry'?"}],
8)
9
10print("Reasoning:", response.choices[0].message.reasoning)
11print("Answer:", response.choices[0].message.content)Note: Thereasoningfield is not part of the OpenAI API specification but is a widely followed convention (the OpenAI Agents SDK, vLLM, and others). It appears only in responses that contain reasoning content; accessing it otherwise raises anAttributeError.
enable_thinking through chat_template_kwargs; the
response then carries no reasoning content, so read only message.content:1# Disable thinking for a single request
2response = client.chat.completions.create(
3 model="furiosa-ai/K-EXAONE-236B-A23B-NVFP4A16",
4 messages=[{"role": "user", "content": "What is the capital of France?"}],
5 extra_body={"chat_template_kwargs": {"enable_thinking": False}},
6)
7print(response.choices[0].message.content)--enable-auto-tool-choice --tool-call-parser hermes (see
Launch the server), pass tools in the request and let the
model decide when to call them. See the
Tool Calling guide
for a complete client example and details on tool-choice options.furiosa-llm serve) — full OpenAI-compatible API reference and serving options