Examples · General
Seven models: which one for what
Gemma, Qwen3.6, Qwen3.8, Qwen3-Coder, Ministral, Apertus and gpt-oss-120b side by side. What each one is good at, and a script that asks six of them the same question and times them.
Beginner · 20 min
The seven models
| model | id for the API | maker | good for |
|---|---|---|---|
| Gemma 4 26B | gemma-4-26b |
the default: fast, reads images, extracts data from free text | |
| Qwen3.6 35B | qwen3.6-35b |
Alibaba Qwen | general questions, images and tools; strong on office work |
| Qwen3.8 27B | qwen3.8-27b |
Alibaba Qwen | the newest: thinks before every answer, without showing it; code and tasks in several steps |
| Qwen3-Coder 30B | qwen3-coder-30b |
Alibaba Qwen | programming: writes, explains, fixes and reviews code |
| Ministral 3 14B | ministral-3-14b |
Mistral AI | the European one: quick, reads images, good in French and German |
| Apertus 70B | apertus-70b-instruct |
Swiss AI Initiative | the Swiss one: Italian, German, French, English and Romansh; bigger and slower |
| gpt-oss-120b | gpt-oss-120b |
OpenAI | the biggest: it reasons before answering; slow, but the one for sums, invoices and contracts |
They are all open models: anyone can download them and run them on their own machines, as the school does. In the chat you pick the model from the menu. On the home page you see how many copies of each one are running, live.
Same question, six answers
You need your API key, from Your first API call in Python.
import os
import time
from openai import OpenAI
client = OpenAI(
base_url="https://api.ai.itsincom.org/v1",
api_key=os.environ["API_KEY"],
)
question = "In three sentences: what is the difference between a firewall and an IDS?"
models = ["gemma-4-26b", "qwen3.6-35b", "qwen3-coder-30b", "ministral-3-14b",
"apertus-70b-instruct", "gpt-oss-120b"]
for model in models:
start = time.time()
answer = client.chat.completions.create(
model=model,
temperature=0,
messages=[{"role": "user", "content": question}],
)
seconds = time.time() - start
print(f"--- {model}: {seconds:.1f} s, {answer.usage.completion_tokens} tokens")
print(answer.choices[0].message.content)
print()
gpt-oss-120b comes last on purpose: it thinks before it answers, so it takes longer, and the tokens of its reasoning are counted too. Qwen3.8 is not in the list: adding it is the first exercise.
Exercise
- Add
"qwen3.8-27b"tomodels. It thinks before every answer too, without showing it: compare its seconds and its tokens with those of gpt-oss-120b. - Which answer is the most precise? Which one would you give to a first-year student?
- Ask the same question in Italian, then in German: which model keeps the language best?
- Look at the seconds and the tokens: is the biggest model also the best one here?
- Now ask a question with a calculation, for example the VAT on three items with a discount on one. Does the ranking change? See Sums you can trust.
- Your Usage page shows what each answer cost.
