Към съдържанието
WP-Bench: официалният AI benchmark за WordPress (и защо най-после ни трябва)
Елена Димитрова
Елена Димитрова 20 January 2026 · 3 мин. четене

WP-Bench: официалният AI benchmark за WordPress (и защо най-после ни трябва)

В последните месеци AI coding assistants станаха ежедневие: генерираме плъгини, пишем миграции, скелетираме блокове, а понякога и дебъгваме с помощта на LLM (Large Language Model — езиков модел). Проблемът е, че „изглежда правилно“ не означава „работи в WordPress“ — особено когато влизат в игра hooks, capabilities, escaping, nonces и куп специфики на ядрото.

Точно тук влиза WP-Bench — официалният AI benchmark на WordPress, който цели да измерва доколко даден модел реално разбира WordPress разработката: от core API-та и coding standards до архитектура на плъгини и security best practices.

Какъв проблем решава WP-Bench

Повечето публични оценки на модели са върху общи програмни задачи: алгоритми, синтаксис, популярни framework-и. WordPress обаче има дълъг „опашат“ набор от конвенции и специфични API-та (actions/filters, WP_Query, REST API patterns, DB абстракция, nonce/capability проверки и т.н.). WP-Bench запълва тази празнина, като дефинира измерими задачи именно в контекста на WordPress.

Това е полезно в два слоя:

  • За практиката днес: ако правиш AI-подпомогнат плъгин или разчиташ на асистент за код, има значение кой модел се справя по-добре със специфичните WordPress патерни.
  • За моделите утре: идеята е WP-Bench да стане „стандартен“ benchmark, който доставчиците на модели да включват в pre-release оценките си, за да не се оказва WordPress второстепенна мисъл.

Какво точно измерва WP-Bench: Knowledge срещу Execution

WP-Bench разделя оценяването на две измерения:

  • Knowledge — multiple-choice въпроси за WordPress концепции, API-та, hooks, security патерни и coding standards. Фокусът е и върху по-нови добавки като Abilities API и Interactivity API (споменати в анонса като области, където моделите реално се затрудняват).
  • Execution — задачи за генериране на код, които не се оценяват „на око“, а се пускат през реален WordPress runtime. Резултатът се формира от статични проверки плюс изпълнение в sandbox с runtime assertions.

Ключовата разлика спрямо много други бенчмаркове е, че тук WordPress сам е „грейдърът“: генерираният код се тества в контролирана среда, вместо да се разчита само на текстова проверка.

Как протича оценяването (grading) на Execution тестовете

  1. Harness-ът изпраща prompt към модела с изискване за WordPress код.
  2. Генерираният код се подава към WordPress runtime през WP-CLI (командният интерфейс на WordPress).
  3. Runtime-ът прави статичен анализ (синтаксис, coding standards, security проверки).
  4. Кодът се изпълнява в sandbox среда и се валидира чрез тестови assertions.
  5. Връща се резултат като JSON със score и детайлен feedback.

Бърз старт: как да го пуснеш локално

Проектът е структуриран така, че да можеш да стартираш benchmark-а локално и да сравняваш модели. Има Python harness (инсталира се с pip) и отделен runtime (WordPress среда, която играе ролята на грейдър).

1) Инсталация на Python harness-а

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

2) API ключове за доставчици на модели

Създаваш .env файл с ключовете за провайдърите, които ще тестваш (примерите в repo-то включват OpenAI, Anthropic и Google):

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

3) Стартиране на WordPress runtime (грейдъра)

cd runtime
npm install
npm start

4) Пускане на benchmark-а

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

Резултатите се записват в output/results.json, а подробните логове по тестове — в output/results.jsonl.

Multi-model сравнение: един run, няколко модела

Едно от практичните неща е, че можеш да сравняваш няколко модела последователно в рамките на една конфигурация:

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

Имената на моделите следват конвенциите на LiteLLM (т.е. очакван формат за provider/model), което улеснява стандартизираното им адресиране в конфигурация.

Конфигурация: какво реално контролираш

Базовата идея е да копираш wp-bench.example.yaml и да настроиш dataset, модели, грейдър и параметри на run-а:

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

Полезни CLI команди

wp-bench run --config wp-bench.yaml          # run с конфигурационен файл
wp-bench run --model-name gpt-4o --limit 5   # бърз smoke test с един модел
wp-bench dry-run --config wp-bench.yaml      # валидира конфигурацията без да вика модели

Как са организирани dataset-ите и тестовете

Тестовите пакети (test suites) живеят в datasets/suites/<suite-name>/ и са разделени по тип:

  • execution/ — задачи за генериране на код + assertions (по един JSON файл на категория).
  • knowledge/ — multiple-choice въпроси (по един JSON файл на категория).

По подразбиране suite-ът wp-core-v1 покрива WordPress core API-та, hooks, database операции и security патерни.

Зареждане на dataset от Hugging Face

Освен локални JSON-и, WP-Bench поддържа и зареждане от Hugging Face dataset builder:

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

Текущо състояние и реалистични ограничения

WP-Bench е в ранен етап и това се казва директно в анонса. Има няколко важни последствия, които е добре да имаш предвид, ако ще ползваш резултатите за избор на tooling:

  • Размер на dataset-а: текущият suite е сравнително малък; за по-надежден сигнал ще трябват повече тестове и по-широко покритие на API-та и патерни.
  • Покритие по версии: benchmark-ът има уклон към по-нови WordPress 6.9 функционалности (като Abilities API и Interactivity API). Това е частично търсен ефект (новите API-та са трудни за моделите), но води и до bias, защото често тези неща са извън training data на повечето модели.
  • „Насищане“ на benchmark-а: при по-стари WordPress концепции моделите могат да вадят много високи резултати, което означава, че въпросите/задачите не дават достатъчно различим сигнал. Истинското предизвикателство е да се формулират задачи, които са трудни не само защото са нови, а защото са наистина сложни.

Защо това е важно за нас като WordPress разработчици

Ако приемем, че AI асистентът ще бъде част от ежедневния toolchain, тогава въпросът не е дали моделът може да пише PHP, а дали може да пише WordPress код, който:

  • използва правилните hooks и API-та, вместо „измислени“ функции;
  • пази coding standards и предвидими структури (които са важни за поддръжка в екип);
  • има базови security гаранции (sanitization/validation/escaping, nonce/capability checks);
  • реално минава тестове и се държи коректно в runtime.

WP-Bench е интересен точно защото премества фокуса от субективни демота към изпълними проверки в WordPress среда.

Къде да го следиш и с какво да започнеш

Най-прагматичният старт е: пускаш wp-core-v1 локално за моделите, които реално ползваш, и гледаш разликите в results.jsonl (там е детайлният лог по тестове). Ако работиш по вътрешен AI tooling за WordPress, това е удобен начин да валидираш regressions при смяна на модел или промяна на prompt-ове.

Ресурси от анонса:

Практическа бележка

Когато сравняваш модели, гледай не само общия score, а и категориите задачи, които са релевантни за твоята работа (например security и database операции). Един модел може да изглежда „по-добър“ общо, но да прави систематични грешки в точно твоите критични области.

Обобщение

WP-Bench е опит WordPress екосистемата да си изгради общ език за това как измерваме качеството на AI моделите спрямо реални WordPress задачи. Комбинацията от Knowledge тестове и Execution задачи, проверени в WordPress runtime, е добра посока — особено ако dataset-ите се разширят и започнат да покриват повече от реалните „остри ръбове“ на разработката.

Присъединете се към общността на HelloWP!

Разговаряйте с нас за WordPress и уеб разработка и споделяйте опит с други разработчици.

- членове
- онлайн
Присъединяване

Използваме бисквитки, за да подобрим вашето изживяване. Продължавайки, вие се съгласявате с нашата Политика за бисквитки.