Skip to content
Fondazione ITS INCOM

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 Google 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

All examples