Views
No views yet
enable_thinking. Launch the server with --reasoning-parser qwen3 to have Furiosa-LLM parse the chain of thought into a separate field (see Basic Usage below).hermes tool-call parser, the parser used by the Qwen3 series.Qwen3-30B-A3B-FP8 is a hybrid model that reasons by default and can switch
thinking on and off (see Advanced Usage). Serve it with the
qwen3 reasoning parser so the chain of thought is returned in a separate field:1furiosa-llm serve furiosa-ai/Qwen3-30B-A3B-FP8 \
2 --reasoning-parser qwen3hermes tool-call parser (the
parser used by the Qwen3 series):1furiosa-llm serve furiosa-ai/Qwen3-30B-A3B-FP8 \
2 --reasoning-parser qwen3 \
3 --enable-auto-tool-choice \
4 --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/Qwen3-30B-A3B-FP8",
5 "messages": [{"role": "user", "content": "What is the capital of France?"}]
6 }' \
7 | python -m json.toolQwen3-30B-A3B-FP8 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/Qwen3-30B-A3B-FP8",
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.
Qwen3-30B-A3B-FP8 reasons by default. To turn thinking
off for a single request, pass 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/Qwen3-30B-A3B-FP8",
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)--default-chat-template-kwargs (a request can still re-enable thinking with its
own chat_template_kwargs):1furiosa-llm serve furiosa-ai/Qwen3-30B-A3B-FP8 \
2 --reasoning-parser qwen3 \
3 --default-chat-template-kwargs '{"enable_thinking": false}'--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