Siirry sisältöön
WP-Bench: miten hyvin AI oikeasti osaa WordPressiä (ja miten testaat sen itse)
Mikko Virtanen
Mikko Virtanen 20. January 2026 · 7 min lukuaika

WP-Bench: miten hyvin AI oikeasti osaa WordPressiä (ja miten testaat sen itse)

WordPress-kehityksessä AI-avustaja on parhaimmillaan silloin, kun se ymmärtää muutakin kuin PHP-syntaksin: miten hookit ketjuuntuvat, miten tietokantakyselyt tehdään oikein, mitä WordPress Coding Standards käytännössä tarkoittaa ja missä kohtaa tietoturva menee rikki (nonce, capability checks, escaping/sanitization). Tästä syntyy myös ongelma: mallien vertailu “yleisillä” ohjelmointitesteillä ei kerro kovin paljon WordPress-arkeen liittyvästä osaamisesta.

Tätä aukkoa paikkaamaan WordPress-projekti on tuonut esiin WP-Benchin – virallisen WordPress AI -benchmarkin. Sen idea on yksinkertainen: mitataan nimenomaan sitä, miten hyvin kielimallit suoriutuvat WordPress-kehityksen osa-alueista, sekä teoriassa että käytännön koodissa.

Mikä WP-Bench on (ja mitä se mittaa)?

WP-Bench on avoimen lähdekoodin benchmark (vertailutesti), joka arvioi kielimallien WordPress-osaamista kahdessa ulottuvuudessa:

  • Knowledge: monivalintakysymyksiä WordPress-konsepteista, core-API:sta, hookeista, tietoturvakäytännöistä ja koodausstandardeista. Mukana painotus myös uudempiin lisäyksiin kuten Abilities API ja Interactivity API (ensimmäisellä maininnalla: WordPressin uudemmat rajapinnat/arkkitehtuuripalikat, joiden osaaminen ei välttämättä ole ehtinyt mallien koulutusdataan).
  • Execution: koodin generointitehtäviä, jotka arvioidaan ajamalla syntynyt koodi oikeassa WordPress-ajoympäristössä. Arviointi sisältää staattista analyysiä ja ajonaikaisia assertioita (testiväittämiä).

Oleellinen twist on se, että WordPress itse toimii “tuomarina”: generoitua koodia ei vain verrata tekstiin, vaan se ajetaan eristetyssä ympäristössä ja katsotaan, toimiiko se, noudattaako se standardeja ja onko siinä ilmeisiä turvallisuusongelmia.

Miksi tämä on käytännössä tärkeää WordPress-kehittäjälle?

WordPress pyörittää isoa osaa webistä, mutta AI-mallit arvioidaan usein tehtävillä, joissa WordPressin omat reunaehdot puuttuvat. WP-Benchin arvo tulee siitä, että se tuo vertailuun sen, mikä WordPressissä oikeasti on tyypillisesti haastavaa: API:t, plugin-arkkitehtuuri, hook-pohjainen ohjelmointimalli ja tietoturvan perustekniikat.

  • Työkalun valinta: jos rakennat AI-ominaisuuksia pluginin sisään tai käytät koodiavustajaa päivittäin, haluat mallin, joka tuottaa WordPressiin sopivaa koodia eikä vain “melkein toimivaa PHP:tä”.
  • Mallien kehityksen suuntaaminen: tavoite on, että WP-Benchistä muodostuu standardi, jonka AI-laboratoriot ajavat myös ennen julkaisua. Kun WordPress-tulokset ovat näkyvissä, niistä tulee signaali, johon kannattaa optimoida.
  • Avoin leaderboard: työn alla on julkinen tulostaulukko, joka tekee mallien suoriutumisesta läpinäkyvämpää ja auttaa kehittäjiä vertailemaan vaihtoehtoja.

Miten WP-Benchin arviointi toimii?

Execution-puolella WP-Benchin “harness” (ajokehys) käy läpi melko suoran putken, jossa mallin tuottama koodi viedään WordPress-ajoon:

  1. Ajokehys lähettää mallille promptin, jossa pyydetään WordPress-koodia tiettyyn tehtävään.
  2. Generoitu koodi toimitetaan WordPress-runtimeen WP-CLI:n kautta (WP-CLI = WordPressin komentorivityökalu).
  3. Runtime tekee staattista analyysiä: syntaksi, koodausstandardit ja tietoturvapoikkeamat.
  4. Koodi ajetaan hiekkalaatikossa, jossa testit/assertiot tarkistavat toiminnallisuuden.
  5. Tulokset palautuvat JSON-muodossa pisteiden ja yksityiskohtaisen palautteen kanssa.

Mitä tämä tarkoittaa arjessa?

Benchmark ei palkitse pelkkää “oikean näköistä” koodia. Se pyrkii mittaamaan sitä, tuottaako malli toimivaa, WordPress-ympäristöön istuvaa ja turvallisilta perusratkaisuiltaan järkevää koodia.

Pikakäynnistys: benchmark ajoon omalla koneella

Alla on tiivistetty polku, jolla saat WP-Benchin pyörimään. Kokonaisuus koostuu Python-puolen ajokehyksestä ja erillisestä WordPress-runtime-osasta (joka hoitaa arvioinnin).

1) Asenna ajokehys (Python)

python3 -m venv .venv && source .venv/bin/activate
pip install -e ./python

2) Lisää API-avaimet .env-tiedostoon

WP-Bench tukee useita mallitarjoajia. Käytännössä lisäät projektin juureen .env-tiedoston ja viet sinne avaimet niille palveluille, joita aiot käyttää:

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=...

3) Käynnistä WordPress runtime (arvioija)

cd runtime
npm install
npm start

4) Aja benchmark

cd ..
wp-bench run --config wp-bench.example.yaml

Tulokset kirjoitetaan tiedostoon output/results.json, ja testikohtaiset lokit löytyvät muodossa output/results.jsonl. Nämä ovat hyviä, kun haluat nähdä, missä kohtaa malli kompastui (esim. väärä hook, puuttuva escaping tai koodistandardi-virhe).

Usean mallin vertailu yhdellä ajolla

WP-Benchin yksi käytännöllisimmistä piirteistä on se, että voit listata useita malleja samaan konfiguraatioon ja ajaa ne peräkkäin. Näin saat vertailutaulukon ilman, että joudut säätämään komentoja joka kierroksella.

models:
  - name: gpt-4o
  - name: gpt-4o-mini
  - name: claude-sonnet-4-20250514
  - name: claude-opus-4-5-20251101
  - name: gemini/gemini-2.5-pro
  - name: gemini/gemini-2.5-flash

Mallinimet seuraavat LiteLLM:n konventioita (LiteLLM = kirjasto/kerros, joka yhtenäistää eri tarjoajien mallien kutsumista ja nimeämistä).

Konfiguraation tärkeimmät kohdat

Käytännössä kopioit wp-bench.example.yaml-tiedoston ja muokkaat sitä. Olennaisimmat osat ovat datasetin lähde, ajettava suite ja arvioijan (grader) runtime-polku:

dataset:
  source: local              # 'local' or 'huggingface'
  name: wp-core-v1           # suite name

models:
  - name: gpt-4o

grader:
  kind: docker
  wp_env_dir: ./runtime      # path to wp-env project

run:
  suite: wp-core-v1
  limit: 10                  # limit tests (null = all)
  concurrency: 4

output:
  path: output/results.json
  jsonl_path: output/results.jsonl

Hyödylliset CLI-komennot

wp-bench run --config wp-bench.yaml          # aja configilla
wp-bench run --model-name gpt-4o --limit 5   # nopea smoke test yhdelle mallille
wp-bench dry-run --config wp-bench.yaml      # validoi config ilman mallikutsuja

Miltä projektin rakenne näyttää?

Repo on jaettu selkeästi ajokehyksen, runtime-arvioijan ja datasetien kesken. Tämä on hyvä myös kontribuutiota ajatellen: jos haluat lisätä tehtäviä, kosket yleensä vain dataset-hakemistoa.

.
├── python/          # Benchmark harness (pip installable)
├── runtime/         # WordPress grader plugin + wp-env config
├── datasets/        # Test suites (local JSON + Hugging Face builder)
├── notebooks/       # Results visualization and reporting
└── output/          # Benchmark results (gitignored)

Testisuitet: knowledge vs execution

Testisuitet löytyvät polusta datasets/suites/<suite-name>/. Jokaisessa suitessa on erikseen execution/ (kooditehtävät) ja knowledge/ (monivalinnat), tyypillisesti JSON-tiedostoina kategorioittain.

Oletussuite wp-core-v1 kattaa WordPress coren perusasioita: API:t, hookit, tietokantaoperaatiot ja tietoturvapatternit.

Dataset Hugging Facesta

Datasetin voi myös ladata Hugging Facen kautta konfiguraatiolla:

dataset:
  source: huggingface
  name: WordPress/wp-bench-v1

Nykytila ja rajoitteet, jotka kannattaa tietää

WP-Bench on julkaistu varhaisessa vaiheessa, ja se näkyy muutamassa kohdassa. Nämä eivät tee työkalusta hyödytöntä — päinvastoin, ne kertovat mihin suuntaan benchmarkia on tarkoitus vahvistaa — mutta tuloksia kannattaa tulkita niiden läpi.

  • Dataset on vielä pieni: jotta vertailusta tulisi kattava, tarvitaan lisää testejä eri WordPress-API:hin ja yleisiin arkkitehtuurimalleihin (myös “oikean elämän” edge case -tilanteita).
  • Versiopaino uuteen: benchmark painottaa tällä hetkellä WordPress 6.9 -aikakauden ominaisuuksia, kuten Abilities API ja Interactivity API. Tämä on osin tarkoituksellista (uudet rajapinnat ovat usein malleille vaikeita), mutta se myös vinouttaa tuloksia, koska osa malleista on koulutettu ennen näitä muutoksia.
  • Saturaatio vanhoissa aiheissa: varhaiset testit näyttivät, että vanhemmista WordPress-perusasioista mallit saavat helposti erittäin korkeita pisteitä. Silloin kysymykset eivät enää erottele malleja, ja tarvitaan aidosti vaikeampia (ei vain “uusia”) tehtäviä.

Yhteenveto: mihin WP-Bench istuu kehittäjän työkalupakkiin?

WP-Bench on käytännöllinen tapa mitata, miten hyvin valitsemasi kielimalli selviää nimenomaan WordPress-tehtävistä — sekä tietopohjaisesti että ajettavan koodin tasolla. Jos käytät AI:ta plugin- tai teemakehityksessä, benchmark antaa konkreettisen keinon vertailla malleja samalla viivalla ja löytää ne kohdat, joissa malli tuottaa eniten kitkaa (tai riskiä) WordPress-projekteissa.

Liity HelloWP-yhteisöön!

Keskustele kanssamme WordPressistä ja web-kehityksestä sekä jaa kokemuksia muiden kehittäjien kanssa.

- jäsentä
- paikalla
Liity

Käytämme evästeitä parantaaksemme käyttökokemustasi. Jatkamalla hyväksyt Evästekäytäntömme.