Który model AI najlepiej zapisuje przepisy? Test 21 modeli na polskich i angielskich przepisach

· 14 min czytania

21 modeli AI, 50 przepisów polskich i angielskich, wzorzec sprawdzony ręcznie. Czołówka to remis, a dostawca potrafi zepsuć dobry model.

21 modeli AI, 50 przepisów polskich i angielskich, wzorzec sprawdzony ręcznie. Czołówka to remis, a dostawca potrafi zepsuć dobry model. 21 modeli AI, 50 przepisów polskich i angielskich, wzorzec sprawdzony ręcznie. Czołówka to remis, a dostawca potrafi zepsuć dobry model.

Każdy przepis zapisany w ZapiszPrzepis przechodzi przez model AI. Model wyciąga z niego składniki, ilości, kroki, temperatury i czasy, porządkuje je według reguł aplikacji, a przepis z obcej strony jeszcze tłumaczy. Zaczęło się od tłumaczenia, bo przepisy z angielskich blogów zapisywały się przetłumaczone w połowie: „1 funt” obok gramów, „mięso mielone z indyka (94% chude)”, „mały makaron (np. ditalini, alfabet)” i krok „Umieścić mięso mielone z indyka w misce”. Poprawiłem prompt i kod, a potem sprawdziłem, który model ma tę pracę wykonywać. Najpierw 11 modeli pod kątem formatu, potem 21 modeli pod kątem tego, czy zapisany przepis zgadza się z oryginałem.

W skrócie:

  • Czołówka to remis. Claude Haiku 5.5, Gemini 3.5 Flash, Gemini 3.1 Flash-Lite, gpt-4.1-mini i gpt-5.4-mini mieszczą się w tych samych przedziałach ufności.
  • W aplikacji zostaje gpt-5.4-mini. Na pełnym wejściu ma 0,09 błędu krytycznego na przepis, czyli mniej więcej jeden na jedenaście przepisów, i odpowiada w 4,4 sekundy.
  • Droższy model nie był lepszy. Claude Sonnet 5.5 kosztował około dziesięć razy więcej niż Claude Haiku 5.5 i nie wypadł lepiej.
  • Dostawca znaczy więcej niż rozmiar modelu. Ten sam gpt-oss przez OpenRouter robił od zera do ponad 12 błędów krytycznych na odpowiedź, zależnie od tego, kto go uruchomił.
  • Więcej rozumowania nie pomogło gpt-5.4-mini.
  • Polszczyzna modeli w chmurze nie różnicuje. W mojej ślepej ocenie wszystkie 20 odpowiedzi z różnych modeli dostało 5 na 5.
  • Modele lokalne wypadają najsłabiej, zwłaszcza na angielskich przepisach. qwen3:14b pisze wtedy łamaną polszczyzną.

Jak ZapiszPrzepis wyciąga przepis

ZapiszPrzepis zapisuje przepis z linku: pobiera stronę, a model językowy zamienia jej tekst w JSON z tytułem, składnikami, krokami, czasem i kategorią. Składnik ma cztery pola: ilość, jednostkę, nazwę i miarę domową, na przykład 480 ml, a obok „2 szklanki”. Prompt ma około 40 reguł, od kategorii po formę kroków: bezokolicznik i żadnej narracji, czyli „Przełożyć do miski”, a nie „Teraz przekładamy…”.

Przepis z obcej strony ten sam prompt musi jeszcze przetłumaczyć i dopasować do polskiej kuchni. Miał na to jedno zdanie: przetłumacz na polski i zamień amerykańskie miary na metryczne (szklanka ≈ 240 ml, łyżka ≈ 15 ml). O funtach, uncjach, stopniach Fahrenheita i markach nie mówił nic.

Dlaczego nie DeepL

Pierwszy odruch to dołożyć DeepL. Tylko że tłumaczenie to jeszcze nie lokalizacja. DeepL zamieniłby „finely grated” na „drobno starte”, a glosariusz przypiąłby „ground turkey” do „mięsa mielonego z indyka”. Trzech rzeczy by jednak nie zrobił:

  • nie przeliczy funtów na gramy ani °F na °C,
  • nie przeniesie notatki („pokrojone”, „wyciśnięta”) z pola miary do nazwy składnika,
  • nie zamieni amerykańskiej marki składnika na produkt, który kupisz w polskim sklepie.

Byłaby to też druga płatna usługa i drugi przebieg, który tłumaczy krótkie pola JSON bez kontekstu, a samotne „splash” łatwo zostaje „pluskiem”. Z sześciu zgłoszonych problemów zostałyby cztery.

Co zmieniłem

Zmiana ma trzy części.

  1. Język źródła rozpoznaje kod, zanim zapyta model. Liczy polskie znaki diakrytyczne i częste słowa polskie i angielskie w tekście strony. Atrybut lang jest tylko podpowiedzią, bo wiele polskich blogów ma w szablonie lang="en-US".
  2. Obce źródło dostaje dodatkowy blok reguł, doklejany do wspólnego promptu: przelicz funty, uncje, kostki masła i °F (także w krokach), przetłumacz każde słowo, pisz kroki tak jak polska książka kucharska, nazywaj produkty tak jak polskie sklepy (literki, kółka, kolanka), pomijaj amerykańskie oznaczenia chudości mięsa. Marka zostaje, gdy jest samą potrawą (domowe SpaghettiOs), i znika, gdy jest składnikiem. Osobnego promptu po angielsku nie pisałem, bo rozjechałby się ze wspólnym przy pierwszej zmianie reguł.
  3. Kontrole w kodzie, bo model części reguł nie słuchał. Dwa błędy przetrwały próby na gpt-4.1-mini mimo reguł w prompcie, więc kod pilnuje ich sam. W polu miary domowej zostaje tylko polska miara („półtorej szklanki”, „płaska łyżka”, „1 saszetka”). Notatka trafia do nazwy, amerykańska waga znika, gdy są gramy, a miara, która powtarza ilość, też znika. Ta kontrola działa dla każdego źródła: z 53 miar zapisanych w bazie zmieniła 14 i każda była notatką albo amerykańską jednostką. Dla obcych źródeł kod usuwa jeszcze procent przed „chude” i zostawia szklankę albo łyżkę tylko wtedy, gdy podaje ją oryginał.

Przed i po, na trzech przepisach z howsweeteats.com, od których wszystko się zaczęło:

Przed Po
450 g · mielone indyka · obok gramów: 1 funt
450 g · mięso mielone z indyka, bez miary domowej
szalotka · obok gramów: finely grated
szalotka drobno starta
mięso mielone z indyka (94% chude)
mięso mielone z indyka (najlepiej chude)
mały makaron (np. ditalini, alfabet)
drobny makaron do zup, np. małe rurki (ditalini), literki
225 g · makaron · obok gramów: ½ funta, po pierwszej poprawce 1/2 szklanki
225 g · makaron, bez miary domowej
Umieścić mięso mielone z indyka w misce
Przełożyć mięso mielone z indyka do miski
temperatura wewnętrzna 175 do 180 stopni (°F czytane jak °C)
75–80°C

Dwie rzeczy nadal nie są idealne. Model napisał „Spaghettios” zamiast „SpaghettiOs”, jak w oryginale. A kontrola szklanek sprawdza cały przepis, nie każdy składnik, więc wymyślone „1/2 szklanki” przejdzie, jeśli oryginał podaje „1/2 cup” przy innym składniku.

Pierwszy test: czy model trzyma się formatu

Pierwszy test sprawdzał, czy model przestrzega reguł aplikacji: 26 przepisów (25 polskich i jeden angielski), 11 modeli (5 z OpenAI, 3 z darmowego Groqa i 3 lokalne), każdy przepis dwa razy. Wynik oceniał kod aplikacji na surowym JSON-ie, zanim zadziałają kontrole.

Liczby to sumy z 52 ekstrakcji na model. Błąd formatu jest jednego z trzech rodzajów:

Kolumna Co liczę jako błąd
miara obok gramów
Aplikacja ma osobne pole na miarę domową, którą pokazuje obok gramów: „2 szklanki”, „1 łyżka”. Błąd to wszystko inne, co model tam wpisze: notatka („pokrojone”, „do dekoracji”), amerykańska jednostka („1 funt” obok 450 g mięsa) albo powtórzona ilość („3 łyżki” obok 3 łyżek).
forma kroków
Krok ma być w bezokoliczniku, jak w książce kucharskiej: „Dodać mąkę”. Błąd to tryb rozkazujący („Dodaj mąkę”) albo narracja („Teraz dodajemy mąkę”).
złe pole
Miara wpisana do innego pola składnika: „320 g” jako ilość, zamiast 320 w ilości i „g” w jednostce, albo „2 szklanki” jako jednostka. Tę kolumnę dodałem w trakcie testu, bo kontrola miary obok gramów takiego składnika nie widzi: jego pole miary domowej jest puste.
razem
Suma trzech kolumn powyżej.
Błędy formatu na model, sam markdown (pierwszy test)
Błędy formatu na model, sam markdown (pierwszy test)Suma błędów w mierze obok gramów, w formie kroków i w złym polu, z 52 ekstrakcji na model. Najmniej ma gpt-5.4-mini (26), potem qwen3.8-27b na Groqu (48). Lokalne modele mają od 434 do 577.gpt-5.4-mini · OpenAI API (płatne)26qwen3.8-27b · Groq (darmowy plan)48gpt-oss-120b · Groq (darmowy plan)80gpt-4o-mini · OpenAI API (płatne)80gpt-4.1-mini · OpenAI API (płatne)96gpt-5-mini · OpenAI API (płatne)108gpt-oss-20b · Groq (darmowy plan)150gpt-5-nano · OpenAI API (płatne)234qwen3:14b · lokalnie (Ollama)434Bielik 11B v3.0 · lokalnie (Ollama)562Bielik 11B v2.3 · lokalnie (Ollama)577

Mniej znaczy lepiej. Rodzaje błędów opisuje tabela wyżej.

Błędy formatu na model, sam markdown (pierwszy test)
ModelGdzieBłędy
gpt-5.4-miniOpenAI API (płatne)26
qwen3.8-27bGroq (darmowy plan)48
gpt-oss-120bGroq (darmowy plan)80
gpt-4o-miniOpenAI API (płatne)80
gpt-4.1-miniOpenAI API (płatne)96
gpt-5-miniOpenAI API (płatne)108
gpt-oss-20bGroq (darmowy plan)150
gpt-5-nanoOpenAI API (płatne)234
qwen3:14blokalnie (Ollama)434
Bielik 11B v3.0lokalnie (Ollama)562
Bielik 11B v2.3lokalnie (Ollama)577

gpt-5.4-mini zrobił najmniej błędów formatu, prawie nie mylił formy kroków i odpowiadał najszybciej z modeli OpenAI, więc po tym teście zastąpił w aplikacji gpt-4o-mini. Bielik wypadł najgorzej: w ponad 200 składnikach wpisywał miarę do złego pola i nie pisał kroków w bezokoliczniku.

Ten test mówił jednak tylko, czy model trzyma się formatu. Nie mówił, czy zapisany przepis jest prawdziwy: czy ilości i temperatury zgadzają się z oryginałem i czy niczego nie brakuje. Do tego potrzebny był drugi test.

Drugi test: czy zapisany przepis zgadza się z oryginałem

Przepisy i wzorzec

Zestaw to 50 przepisów zapisanych w aplikacji: 25 z polskich stron i 25 z angielskich blogów z USA, Wielkiej Brytanii, Australii i Indii. Trzy odpadły, bo zapisana strona nie zawierała przepisu (paywall albo pusta strona). Dwa kolejne odpadły tylko w wariancie z samym markdownem, bo przepis zaczynał się za pierwszymi 10 tysiącami znaków.

Dla każdego przepisu powstał wzorzec: składniki z ilościami, kroki, temperatury, czasy, porcje i zdjęcia przypisane do kroków. Przygotowały go niezależnie dwa modele: Claude Fable 5.1 (w Claude Code) i Gemini 3.5 Flash z wysokim poziomem rozumowania. Tam, gdzie się zgadzały, wzorzec był gotowy. Każdą różnicę rozstrzygałem sam, na ślepo, bez wiedzy, który model co napisał. Do tego sprawdziłem z oryginałem 31 losowo wybranych miejsc, w których się zgadzały, i wszystkie 31 były poprawne. Ustaliłem też trzy zasady: wartość z podanego zakresu jest poprawna, przepis musi zachować oba tryby piekarnika (góra-dół i termoobieg), a policzony czy oszacowany łączny czas nie jest błędem.

Jedno zastrzeżenie wprost: wzorzec przygotowały modele z tych samych rodzin co część zawodników (Claude i Gemini). To ryzyko zmniejsza moja kontrola różnic, ale go nie usuwa, a modele Claude i Gemini są akurat w czołówce.

Co liczę jako błąd

Waga Co to znaczy
krytyczny
Kto ugotuje według zapisu, dostanie inne danie albo mu nie wyjdzie: brakujący składnik, ilość różna od oryginału o więcej niż 5%, zgubiony krok, zła albo brakująca temperatura piekarnika (tolerancja ±5°C).
poważny
Przepis wyjdzie, ale coś się nie zgadza: zły czas, brakujące zdjęcie kroku albo zdjęcie główne użyte jako zdjęcie kroku, nieprzeliczone amerykańskie jednostki.
drobny
Składnik opcjonalny, pozostawione angielskie słowa, odstępstwa od formatu aplikacji z pierwszego testu.
błędy polszczyzny
LanguageTool 6.6 (lokalnie, pl-PL) na tytule, nazwach składników i krokach: gramatyka, składnia, szyk i literówki w słowach, których nie ma na stronie źródłowej. Na 80 trafieniach sprawdzonych ręcznie 46 było prawdziwymi błędami („Piecić”, „ostudzć”, „drożdże suchy”), a reszta to głównie luki w słowniku, które trafiają każdy model tak samo. Różnice poniżej 1 błędu na 1000 słów nic więc nie znaczą.

Model oceniam tylko z tego, co dostał na wejściu. Przedziały ufności to 95%, liczone metodą bootstrap po przepisach (2000 losowań). Każdy przepis szedł przez każdy model dwa razy, z tym samym promptem co w produkcji.

Polszczyznę oceniłem też sam: 20 odpowiedzi z różnych modeli, na ślepo. Wszystkie dostały 5 na 5, więc płynność języka nie odróżnia tych modeli, a sędzia AI nie miałby czego się ode mnie nauczyć. Dlatego go nie użyłem.

Dwa warianty wejścia

W produkcji model dostaje tekst strony w markdownie i jej HTML, każde do 20 tysięcy znaków. Darmowy Groq tego nie przyjmie: limit to 8000 tokenów na minutę i to jest zarazem największe zapytanie, jakie można wysłać, a pełne zapytanie ma 10–13 tysięcy tokenów. Dlatego test ma dwa warianty: pełny (markdown i HTML, jak w produkcji) i sam markdown (pierwsze 10 tysięcy znaków). Wariant z samym markdownem przeszły wszystkie modele, więc w nim porównanie jest pełne.

Modele

  • 5 z OpenAI, bezpośrednio: gpt-4o-mini, gpt-4.1-mini, gpt-5-mini, gpt-5-nano i gpt-5.4-mini, ten ostatni także z wyższym poziomem rozumowania (low);
  • 10 przez OpenRouter: Claude Haiku 5.5 i Sonnet 5.5, Gemini 3.5 Flash i 3.1 Flash-Lite, Gemma 4 31B, GLM 5.3, Qwen 3.7 Plus, DeepSeek v4 Flash, Mistral Medium 3.1 i Llama 4 Maverick;
  • 3 na darmowym Groqu: gpt-oss-120b, gpt-oss-20b i qwen3.8-27b. Oba gpt-oss puściłem też przez OpenRouter, żeby porównać dostawców;
  • 3 lokalne, przez Ollamę: Bielik 11B v2.3 i v3.0 (kwantyzacja Q4_K_M) oraz qwen3:14b.
Element Ustawienia
Laptop
karta NVIDIA RTX PRO 3000 (12 GB VRAM), 64 GB RAM DDR5-5600, procesor Intel Core Ultra 9 275HX
Ollama
0.40.5, num_ctx 24 576, format: json, temperatura 0,3, KV cache q8_0, flash attention
Groq, plan darmowy
8000 tokenów na minutę, 1000 zapytań i 200 000 tokenów dziennie na model (25.10.2026)
OpenRouter
dostawcę wybierał OpenRouter; koszt z jego rozliczenia każdego zapytania
Poziom rozumowania
najniższy dostępny dla każdego modelu; gpt-5.4-mini dodatkowo na low

Wyniki

Dwa wyjątki od pełnego zestawu. Darmowy Groq odrzuca każde zapytanie dłuższe niż 8000 tokenów, a sześć angielskich przepisów nie mieści się w tym limicie nawet z samym markdownem (przy gpt-oss-20b trzy). Wiersze Groqa oznaczam znakiem †: są liczone bez tych najdłuższych przepisów, o czym trzeba pamiętać przy każdym porównaniu. Modelom lokalnym ograniczyłem odpowiedź do 4096 tokenów, bo qwen3:14b na jednym przepisie zapętlił się na ponad 17 tysięcy tokenów (zwykły przepis to około 1300). Ucięta odpowiedź liczy się jako zepsuty JSON. Kolumna „Przepisy PL/EN” mówi, ile przepisów każdy model dostał.

Kolor słupka mówi, jak wywołałem model, a nie kto go zrobił: przez API OpenAI, przez OpenRouter, na darmowym Groqu albo lokalnie przez Ollamę. Dlatego gpt-oss, model OpenAI, ma kolor Groqa albo OpenRoutera.

Błędy krytyczne na przepis, sam markdown
Błędy krytyczne na przepis, sam markdownŚrednia liczba błędów krytycznych na przepis dla każdego modelu, z 95-procentowym przedziałem ufności, na wejściu z samym markdownem. Najmniej mają Claude Haiku 5.5, Gemini 3.5 Flash, Gemini 3.1 Flash-Lite i gpt-4.1-mini, ale ich przedziały nakładają się z gpt-5.4-mini, więc czołówka to remis. Najwięcej mają qwen3:14b, gpt-5-nano, gpt-oss przez OpenRouter i oba Bieliki.Claude Haiku 5.5 · OpenRouter (płatny)0,01Gemini 3.5 Flash · OpenRouter (płatny)0,02Gemini 3.1 Flash-Lite · OpenRouter (płatny)0,03gpt-4.1-mini · OpenAI API (płatne)0,04Gemma 4 31B · OpenRouter (płatny)0,06Claude Sonnet 5.5 · OpenRouter (płatny)0,06gpt-5-mini · OpenAI API (płatne)0,06GLM 5.3 · OpenRouter (płatny)0,07gpt-5.4-mini · OpenAI API (płatne)0,08qwen3.8-27b † · Groq (darmowy plan)0,09Qwen 3.7 Plus · OpenRouter (płatny)0,11DeepSeek v4 Flash · OpenRouter (płatny)0,15gpt-4o-mini · OpenAI API (płatne)0,20gpt-oss-120b (Groq) † · Groq (darmowy plan)0,24gpt-5.4-mini @low · OpenAI API (płatne)0,24Mistral Medium 3.1 · OpenRouter (płatny)0,26Llama 4 Maverick · OpenRouter (płatny)0,37gpt-oss-20b (Groq) † · Groq (darmowy plan)0,40gpt-oss-20b (OpenRouter) · OpenRouter (płatny)0,59Bielik 11B v2.3 · lokalnie (Ollama)0,62Bielik 11B v3.0 · lokalnie (Ollama)0,64gpt-oss-120b (OpenRouter) · OpenRouter (płatny)0,67gpt-5-nano · OpenAI API (płatne)0,72qwen3:14b · lokalnie (Ollama)1,00

Mniej znaczy lepiej. Kreska pod słupkiem to 95-procentowy przedział ufności. † darmowy Groq odrzucił najdłuższe angielskie przepisy (limit 8000 tokenów na zapytanie), więc te wiersze są liczone bez nich.

Błędy krytyczne na przepis, sam markdown
ModelGdzieKrytyczne na przepisPrzedział 95%
Claude Haiku 5.5OpenRouter (płatny)0,010,00–0,03
Gemini 3.5 FlashOpenRouter (płatny)0,020,00–0,07
Gemini 3.1 Flash-LiteOpenRouter (płatny)0,030,00–0,09
gpt-4.1-miniOpenAI API (płatne)0,040,00–0,10
Gemma 4 31BOpenRouter (płatny)0,060,00–0,13
Claude Sonnet 5.5OpenRouter (płatny)0,060,00–0,14
gpt-5-miniOpenAI API (płatne)0,060,00–0,14
GLM 5.3OpenRouter (płatny)0,070,01–0,13
gpt-5.4-miniOpenAI API (płatne)0,080,02–0,16
qwen3.8-27b †Groq (darmowy plan)0,090,01–0,17
Qwen 3.7 PlusOpenRouter (płatny)0,110,01–0,26
DeepSeek v4 FlashOpenRouter (płatny)0,150,00–0,42
gpt-4o-miniOpenAI API (płatne)0,200,07–0,37
gpt-oss-120b (Groq) †Groq (darmowy plan)0,240,05–0,56
gpt-5.4-mini @lowOpenAI API (płatne)0,240,08–0,44
Mistral Medium 3.1OpenRouter (płatny)0,260,09–0,43
Llama 4 MaverickOpenRouter (płatny)0,370,18–0,56
gpt-oss-20b (Groq) †Groq (darmowy plan)0,400,12–0,73
gpt-oss-20b (OpenRouter)OpenRouter (płatny)0,590,31–0,87
Bielik 11B v2.3lokalnie (Ollama)0,620,36–0,93
Bielik 11B v3.0lokalnie (Ollama)0,640,36–0,92
gpt-oss-120b (OpenRouter)OpenRouter (płatny)0,670,21–1,24
gpt-5-nanoOpenAI API (płatne)0,720,36–1,30
qwen3:14blokalnie (Ollama)1,000,55–1,59

Poprawność, sam markdown

ModelGdzieKrytyczne [95%]PoważneDrobnePolszczyzna
Claude Haiku 5.5OpenRouter (płatny)0,01 [0,00–0,03]0,390,522,8
Gemini 3.5 FlashOpenRouter (płatny)0,02 [0,00–0,07]0,381,461,5
Gemini 3.1 Flash-LiteOpenRouter (płatny)0,03 [0,00–0,09]0,611,301,5
gpt-4.1-miniOpenAI API (płatne)0,04 [0,00–0,10]0,522,001,5
Gemma 4 31BOpenRouter (płatny)0,06 [0,00–0,13]0,330,493,0
Claude Sonnet 5.5OpenRouter (płatny)0,06 [0,00–0,14]0,400,982,7
gpt-5-miniOpenAI API (płatne)0,06 [0,00–0,14]1,282,362,9
GLM 5.3OpenRouter (płatny)0,07 [0,01–0,13]0,441,364,3
gpt-5.4-miniOpenAI API (płatne)0,08 [0,02–0,16]0,460,682,1
qwen3.8-27b †Groq (darmowy plan)0,09 [0,01–0,17]0,381,042,3
Qwen 3.7 PlusOpenRouter (płatny)0,11 [0,01–0,26]0,301,832,7
DeepSeek v4 FlashOpenRouter (płatny)0,15 [0,00–0,42]0,400,242,0
gpt-4o-miniOpenAI API (płatne)0,20 [0,07–0,37]0,671,700,8
gpt-oss-120b (Groq) †Groq (darmowy plan)0,24 [0,05–0,56]1,261,472,8
gpt-5.4-mini @lowOpenAI API (płatne)0,24 [0,08–0,44]0,540,361,5
Mistral Medium 3.1OpenRouter (płatny)0,26 [0,09–0,43]0,360,642,5
Llama 4 MaverickOpenRouter (płatny)0,37 [0,18–0,56]0,792,564,4
gpt-oss-20b (Groq) †Groq (darmowy plan)0,40 [0,12–0,73]0,553,504,1
gpt-oss-20b (OpenRouter)OpenRouter (płatny)0,59 [0,31–0,87]0,912,693,5
Bielik 11B v2.3lokalnie (Ollama)0,62 [0,36–0,93]3,3637,882,9
Bielik 11B v3.0lokalnie (Ollama)0,64 [0,36–0,92]3,0922,291,9
gpt-oss-120b (OpenRouter)OpenRouter (płatny)0,67 [0,21–1,24]1,661,343,7
gpt-5-nanoOpenAI API (płatne)0,72 [0,36–1,30]1,543,374,5
qwen3:14blokalnie (Ollama)1,00 [0,55–1,59]1,317,0217,0

Krytyczne, poważne i drobne to średnia liczba błędów na przepis; w nawiasie 95-procentowy przedział ufności. Krytyczne PL i EN liczą osobno przepisy z polskich i angielskich stron. Polszczyzna to błędy LanguageTool na 1000 słów. † darmowy Groq odrzucił najdłuższe angielskie przepisy, więc te wiersze są liczone bez nich.

Koszt i niezawodność, sam markdown

ModelGdzieMedianaKosztOdrzuconeZepsuty JSONPrzepisy PL/EN
Claude Haiku 5.5OpenRouter (płatny)15,2 s*0,0022 USD0023/22
Gemini 3.5 FlashOpenRouter (płatny)8,2 s*0,0189 USD0023/22
Gemini 3.1 Flash-LiteOpenRouter (płatny)8,7 s*0,0065 USD0023/22
gpt-4.1-miniOpenAI API (płatne)7,3 s–0023/22
Gemma 4 31BOpenRouter (płatny)26,6 s*0,0012 USD0023/22
Claude Sonnet 5.5OpenRouter (płatny)9,9 s*0,0215 USD0023/22
gpt-5-miniOpenAI API (płatne)10,6 s–0023/22
GLM 5.3OpenRouter (płatny)8,2 s*0,0038 USD0023/22
gpt-5.4-miniOpenAI API (płatne)4,6 s–0023/22
qwen3.8-27b †Groq (darmowy plan)2,9 s–12023/16
Qwen 3.7 PlusOpenRouter (płatny)24,3 s*0,0027 USD0023/22
DeepSeek v4 FlashOpenRouter (płatny)133,5 s*0,0025 USD01918/21
gpt-4o-miniOpenAI API (płatne)9,2 s–0023/22
gpt-oss-120b (Groq) †Groq (darmowy plan)3,4 s–12023/16
gpt-5.4-mini @lowOpenAI API (płatne)7,2 s–0023/22
Mistral Medium 3.1OpenRouter (płatny)8,5 s*0,0034 USD0023/22
Llama 4 MaverickOpenRouter (płatny)51,2 s*0,0011 USD0023/22
gpt-oss-20b (Groq) †Groq (darmowy plan)1,8 s–6023/20
gpt-oss-20b (OpenRouter)OpenRouter (płatny)17,4 s*0,0002 USD0223/22
Bielik 11B v2.3lokalnie (Ollama)53,2 s–0023/22
Bielik 11B v3.0lokalnie (Ollama)56,5 s–0023/22
gpt-oss-120b (OpenRouter)OpenRouter (płatny)9,2 s*0,0006 USD0223/22
gpt-5-nanoOpenAI API (płatne)8,7 s–0023/22
qwen3:14blokalnie (Ollama)85,8 s–0523/20

Mediana to czas jednej ekstrakcji; gwiazdka oznacza czas przez OpenRouter zmierzony osobno na 6 przepisach. Koszt to kwota za przepis z rozliczenia OpenRoutera; OpenAI i Groq nie podawały jej w odpowiedzi, a modele lokalne nic nie kosztują, więc tam kreska. Odrzucone to zapytania, których darmowy Groq nie przyjął (limit 8000 tokenów). Zepsuty JSON to odpowiedzi, których nie dało się odczytać, w tym ucięte limitem 4096 tokenów u modeli lokalnych. Przepisy PL/EN mówią, ile przepisów model dostał.

Błędy krytyczne na przepis, pełne wejście (jak w aplikacji)
Błędy krytyczne na przepis, pełne wejście (jak w aplikacji)Średnia liczba błędów krytycznych na przepis z 95-procentowym przedziałem ufności, gdy model dostaje markdown i HTML strony, tak jak w aplikacji. Najmniej mają gpt-5-mini, gpt-5.4-mini i gpt-4.1-mini, z nakładającymi się przedziałami. Najwięcej mają Bielik 11B v3.0, gpt-oss-20b przez OpenRouter i qwen3:14b.gpt-5-mini · OpenAI API (płatne)0,07gpt-5.4-mini · OpenAI API (płatne)0,09gpt-4.1-mini · OpenAI API (płatne)0,09gpt-4o-mini · OpenAI API (płatne)0,19gpt-5-nano · OpenAI API (płatne)0,66gpt-oss-120b (OpenRouter) · OpenRouter (płatny)0,77Bielik 11B v2.3 · lokalnie (Ollama)0,82qwen3:14b · lokalnie (Ollama)1,17gpt-oss-20b (OpenRouter) · OpenRouter (płatny)1,31Bielik 11B v3.0 · lokalnie (Ollama)1,68

Mniej znaczy lepiej. Darmowy Groq nie przyjmuje tak dużych zapytań, a przez OpenRouter w tym wariancie szły tylko modele gpt-oss.

Błędy krytyczne na przepis, pełne wejście (jak w aplikacji)
ModelGdzieKrytyczne na przepisPrzedział 95%
gpt-5-miniOpenAI API (płatne)0,070,01–0,16
gpt-5.4-miniOpenAI API (płatne)0,090,01–0,17
gpt-4.1-miniOpenAI API (płatne)0,090,02–0,16
gpt-4o-miniOpenAI API (płatne)0,190,03–0,38
gpt-5-nanoOpenAI API (płatne)0,660,27–1,26
gpt-oss-120b (OpenRouter)OpenRouter (płatny)0,770,37–1,22
Bielik 11B v2.3lokalnie (Ollama)0,820,39–1,46
qwen3:14blokalnie (Ollama)1,170,71–1,77
gpt-oss-20b (OpenRouter)OpenRouter (płatny)1,310,55–2,11
Bielik 11B v3.0lokalnie (Ollama)1,680,84–2,71

Poprawność, pełne wejście

ModelGdzieKrytyczne [95%]Krytyczne PLKrytyczne ENPoważneDrobnePolszczyzna
gpt-5-miniOpenAI API (płatne)0,07 [0,01–0,16]0,040,102,222,903,2
gpt-5.4-miniOpenAI API (płatne)0,09 [0,01–0,17]0,070,100,410,561,5
gpt-4.1-miniOpenAI API (płatne)0,09 [0,02–0,16]0,110,060,822,681,5
gpt-4o-miniOpenAI API (płatne)0,19 [0,03–0,38]0,330,060,792,461,1
gpt-5-nanoOpenAI API (płatne)0,66 [0,27–1,26]0,370,942,774,386,8
gpt-oss-120b (OpenRouter)OpenRouter (płatny)0,77 [0,37–1,22]0,431,081,881,654,1
Bielik 11B v2.3lokalnie (Ollama)0,82 [0,39–1,46]0,351,275,0544,400,9
qwen3:14blokalnie (Ollama)1,17 [0,71–1,77]0,042,251,887,3018,5
gpt-oss-20b (OpenRouter)OpenRouter (płatny)1,31 [0,55–2,11]0,352,231,272,554,1
Bielik 11B v3.0lokalnie (Ollama)1,68 [0,84–2,71]1,701,674,7722,722,0

Krytyczne, poważne i drobne to średnia liczba błędów na przepis; w nawiasie 95-procentowy przedział ufności. Krytyczne PL i EN liczą osobno przepisy z polskich i angielskich stron. Polszczyzna to błędy LanguageTool na 1000 słów. † darmowy Groq odrzucił najdłuższe angielskie przepisy, więc te wiersze są liczone bez nich.

Koszt i niezawodność, pełne wejście

ModelGdzieMedianaKosztOdrzuconeZepsuty JSONPrzepisy PL/EN
gpt-5-miniOpenAI API (płatne)11,9 s–0023/24
gpt-5.4-miniOpenAI API (płatne)4,4 s–0023/24
gpt-4.1-miniOpenAI API (płatne)7,7 s–0023/24
gpt-4o-miniOpenAI API (płatne)10,8 s–0023/24
gpt-5-nanoOpenAI API (płatne)8,9 s–0023/24
gpt-oss-120b (OpenRouter)OpenRouter (płatny)9,2 s*0,0008 USD0223/24
Bielik 11B v2.3lokalnie (Ollama)59,6 s–0023/24
qwen3:14blokalnie (Ollama)125,8 s–0223/24
gpt-oss-20b (OpenRouter)OpenRouter (płatny)17,4 s*0,0004 USD0423/24
Bielik 11B v3.0lokalnie (Ollama)66,8 s–0023/24

Mediana to czas jednej ekstrakcji; gwiazdka oznacza czas przez OpenRouter zmierzony osobno na 6 przepisach. Koszt to kwota za przepis z rozliczenia OpenRoutera; OpenAI i Groq nie podawały jej w odpowiedzi, a modele lokalne nic nie kosztują, więc tam kreska. Odrzucone to zapytania, których darmowy Groq nie przyjął (limit 8000 tokenów). Zepsuty JSON to odpowiedzi, których nie dało się odczytać, w tym ucięte limitem 4096 tokenów u modeli lokalnych. Przepisy PL/EN mówią, ile przepisów model dostał.

Jakie to błędy

Błędy krytyczne według rodzaju, zliczone ze wszystkich odpowiedzi w wariancie z samym markdownem:

Modelbrakujący składnikzła ilośćzgubiony krokzła temperatura
Claude Haiku 5.50100
Gemini 3.5 Flash0200
Gemini 3.1 Flash-Lite2100
gpt-4.1-mini0400
Gemma 4 31B2300
Claude Sonnet 5.54001
gpt-5-mini1202
GLM 5.31500
gpt-5.4-mini3004
qwen3.8-27b †3400
Qwen 3.7 Plus6310
DeepSeek v4 Flash11010
gpt-4o-mini4608
gpt-oss-120b (Groq) †11206
gpt-5.4-mini @low11704
Mistral Medium 3.120300
Llama 4 Maverick30201
gpt-oss-20b (Groq) †171205
gpt-oss-20b (OpenRouter)33929
Bielik 11B v2.3299018
Bielik 11B v3.0821029
gpt-oss-120b (OpenRouter)301513
gpt-5-nano51707
qwen3:14b492009
Mediana czasu odpowiedzi, sam markdown
Mediana czasu odpowiedzi, sam markdownMediana czasu jednej ekstrakcji na skali logarytmicznej. Najszybsze są modele na Groqu (1,8–3,4 s) i gpt-5.4-mini (4,6 s). Modele lokalne potrzebują od niecałej minuty do półtorej, a DeepSeek v4 Flash ponad dwóch minut.1 s10 s100 sgpt-oss-20b (Groq) · Groq (darmowy plan)1,8 sqwen3.8-27b · Groq (darmowy plan)2,9 sgpt-oss-120b (Groq) · Groq (darmowy plan)3,4 sgpt-5.4-mini · OpenAI API (płatne)4,6 sgpt-5.4-mini @low · OpenAI API (płatne)7,2 sgpt-4.1-mini · OpenAI API (płatne)7,3 sGemini 3.5 Flash * · OpenRouter (płatny)8,2 sGLM 5.3 * · OpenRouter (płatny)8,2 sMistral Medium 3.1 * · OpenRouter (płatny)8,5 sGemini 3.1 Flash-Lite * · OpenRouter (płatny)8,7 sgpt-5-nano · OpenAI API (płatne)8,7 sgpt-4o-mini · OpenAI API (płatne)9,2 sgpt-oss-120b (OpenRouter) * · OpenRouter (płatny)9,2 sClaude Sonnet 5.5 * · OpenRouter (płatny)9,9 sgpt-5-mini · OpenAI API (płatne)10,6 sClaude Haiku 5.5 * · OpenRouter (płatny)15,2 sgpt-oss-20b (OpenRouter) * · OpenRouter (płatny)17,4 sQwen 3.7 Plus * · OpenRouter (płatny)24,3 sGemma 4 31B * · OpenRouter (płatny)26,6 sLlama 4 Maverick * · OpenRouter (płatny)51,2 sBielik 11B v2.3 · lokalnie (Ollama)53,2 sBielik 11B v3.0 · lokalnie (Ollama)56,5 sqwen3:14b · lokalnie (Ollama)85,8 sDeepSeek v4 Flash * · OpenRouter (płatny)133,5 s

Skala logarytmiczna. * czas zmierzony osobno na 6 przepisach, bo główny przebieg przez OpenRouter mierzył tylko czas do nagłówków odpowiedzi.

Mediana czasu odpowiedzi, sam markdown
ModelGdzieMediana
gpt-oss-20b (Groq)Groq (darmowy plan)1,8 s
qwen3.8-27bGroq (darmowy plan)2,9 s
gpt-oss-120b (Groq)Groq (darmowy plan)3,4 s
gpt-5.4-miniOpenAI API (płatne)4,6 s
gpt-5.4-mini @lowOpenAI API (płatne)7,2 s
gpt-4.1-miniOpenAI API (płatne)7,3 s
Gemini 3.5 Flash *OpenRouter (płatny)8,2 s
GLM 5.3 *OpenRouter (płatny)8,2 s
Mistral Medium 3.1 *OpenRouter (płatny)8,5 s
Gemini 3.1 Flash-Lite *OpenRouter (płatny)8,7 s
gpt-5-nanoOpenAI API (płatne)8,7 s
gpt-4o-miniOpenAI API (płatne)9,2 s
gpt-oss-120b (OpenRouter) *OpenRouter (płatny)9,2 s
Claude Sonnet 5.5 *OpenRouter (płatny)9,9 s
gpt-5-miniOpenAI API (płatne)10,6 s
Claude Haiku 5.5 *OpenRouter (płatny)15,2 s
gpt-oss-20b (OpenRouter) *OpenRouter (płatny)17,4 s
Qwen 3.7 Plus *OpenRouter (płatny)24,3 s
Gemma 4 31B *OpenRouter (płatny)26,6 s
Llama 4 Maverick *OpenRouter (płatny)51,2 s
Bielik 11B v2.3lokalnie (Ollama)53,2 s
Bielik 11B v3.0lokalnie (Ollama)56,5 s
qwen3:14blokalnie (Ollama)85,8 s
DeepSeek v4 Flash *OpenRouter (płatny)133,5 s

Co z tego wynika

Czołówka to remis

Najmniej błędów krytycznych na samym markdownie mają Claude Haiku 5.5 (0,01), Gemini 3.5 Flash (0,02), Gemini 3.1 Flash-Lite (0,03) i gpt-4.1-mini (0,04). Ich przedziały ufności nakładają się jednak z gpt-5.4-mini (0,08), więc przy 50 przepisach nie da się uczciwie powiedzieć, który z nich jest najlepszy. Różnica, którą da się zmierzyć, dzieli czołówkę od reszty: modele lokalne, gpt-5-nano, gpt-oss przez OpenRouter i Llama 4 Maverick robią wielokrotnie więcej błędów krytycznych.

W aplikacji zostaje gpt-5.4-mini

W ustawieniu takim jak w aplikacji, z HTML strony, gpt-5.4-mini ma 0,09 błędu krytycznego na przepis, najmniej błędów poważnych (0,41) i drobnych (0,56) spośród modeli w tym wariancie oraz medianę 4,4 sekundy. Zmiana na model z czołówki nie dałaby mierzalnej poprawy, a gpt-5.4-mini wygrał też pierwszy test, ten z formatem.

Droższy model nie był lepszy

Claude Sonnet 5.5 kosztował przez OpenRouter 0,0215 USD za przepis i miał 0,06 błędu krytycznego na przepis. Claude Haiku 5.5 za 0,0022 USD miał 0,01, a Gemini 3.1 Flash-Lite za 0,0065 USD miał 0,03. Przy tysiącu przepisów to około 21,50 USD wobec 2,20 USD, bez lepszego wyniku za wyższą cenę.

Ten sam model, inny dostawca, inny wynik

To największe zaskoczenie testu. OpenRouter rozdzielał zapytania do gpt-oss między ponad dziesięć firm, które uruchamiają ten model u siebie, przy tych samych ustawieniach zapytania. Wynik zależał od tej firmy bardziej niż od rozmiaru modelu:

gpt-oss przez OpenRouter: błędy krytyczne według dostawcy
gpt-oss przez OpenRouter: błędy krytyczne według dostawcyŚrednia liczba błędów krytycznych na odpowiedź modeli gpt-oss-120b i gpt-oss-20b według dostawcy, do którego OpenRouter skierował zapytanie. Ten sam model daje od zera do ponad 12 błędów krytycznych na odpowiedź, zależnie od dostawcy; najgorzej wypadają CoreWeave przy 120b i SiliconFlow przy 20b.CoreWeave · gpt-oss-120b4,47AkashML · gpt-oss-120b0,28BaseTen · gpt-oss-120b0,25Crusoe · gpt-oss-120b0,22Near AI · gpt-oss-120b0,19Novita · gpt-oss-120b0,17DeepInfra · gpt-oss-120b0,00DekaLLM · gpt-oss-120b0,00Mancer 2 · gpt-oss-120b0,00Parasail · gpt-oss-120b0,00SiliconFlow · gpt-oss-20b12,20DekaLLM · gpt-oss-20b1,67AkashML · gpt-oss-20b0,77Darkbloom · gpt-oss-20b0,44CoreWeave · gpt-oss-20b0,38Parasail · gpt-oss-20b0,32DeepInfra · gpt-oss-20b0,00

Dostawcy z co najmniej 5 odpowiedziami. Odpowiedzi na dostawcę jest mało, więc patrz na kolejność, nie na części dziesiętne.

gpt-oss przez OpenRouter: błędy krytyczne według dostawcy
DostawcaModelKrytyczne na odpowiedź
CoreWeavegpt-oss-120b4,47
AkashMLgpt-oss-120b0,28
BaseTengpt-oss-120b0,25
Crusoegpt-oss-120b0,22
Near AIgpt-oss-120b0,19
Novitagpt-oss-120b0,17
DeepInfragpt-oss-120b0,00
DekaLLMgpt-oss-120b0,00
Mancer 2gpt-oss-120b0,00
Parasailgpt-oss-120b0,00
SiliconFlowgpt-oss-20b12,20
DekaLLMgpt-oss-20b1,67
AkashMLgpt-oss-20b0,77
Darkbloomgpt-oss-20b0,44
CoreWeavegpt-oss-20b0,38
Parasailgpt-oss-20b0,32
DeepInfragpt-oss-20b0,00

To tłumaczy, dlaczego gpt-oss-120b wywołany bezpośrednio na Groqu nie zrobił żadnego błędu krytycznego na polskich przepisach, a przez OpenRouter miał ich 0,80 na przepis. Jeśli używasz OpenRoutera do zadania, w którym liczy się dokładność, wskaż w zapytaniu dostawców, których sprawdziłeś. Inaczej trafisz na losowego.

Więcej rozumowania nie pomogło

gpt-5.4-mini na poziomie rozumowania low miał 0,24 błędu krytycznego na przepis, a na najniższym (none) 0,08. Przedziały na skraju się nakładają, więc nie twierdzę, że rozumowanie szkodzi, ale na pewno nie pomogło: model generował więcej tokenów, odpowiadał wolniej (7,2 zamiast 4,6 sekundy) i częściej gubił składniki.

HTML nie zmniejsza liczby błędów krytycznych

Modele OpenAI miały na samym markdownie mniej więcej tyle samo błędów krytycznych co z HTML, przy około połowie wejścia: gpt-5.4-mini 0,08 wobec 0,09, gpt-4o-mini 0,20 wobec 0,19. HTML zostaje jednak w aplikacji, bo z niego biorą się zdjęcia kroków.

Polszczyzna: ślepa ocena nie widzi różnicy

W ślepej ocenie wszystkie odpowiedzi dostały ode mnie 5 na 5. LanguageTool znajduje między modelami różnice: na pełnym wejściu od 0,9 błędu na 1000 słów u Bielika 11B v2.3 i 1,1 u gpt-4o-mini do 6,8 u gpt-5-nano. Przy jego trafności to sygnał kolejności, nie ocena.

Wyjątkiem jest qwen3:14b z wynikiem 18,5 błędu na 1000 słów. Na angielskich przepisach pisze łamaną polszczyzną, a jego błędy zostały sprawdzone ręcznie i są prawdziwe: „pudr”, „vanilię”, „nacisknij”, „wyciąnij”, „mikrowarce”, „auberginy” zamiast bakłażanów.

Bielik i modele lokalne

Modele lokalne wypadają najsłabiej, a po dołożeniu angielskich przepisów jeszcze słabiej. Na samym markdownie Bielik 11B v2.3 ma 0,62 błędu krytycznego na przepis, v3.0 0,64, a qwen3:14b 1,00. Na pełnym wejściu odpowiednio 0,82, 1,68 i 1,17, więc tam nowszy Bielik wypada gorzej niż 2.3.

Polskie przepisy idą im znacznie lepiej niż angielskie. Bielik 11B v2.3 ma na polskich 0,24 błędu krytycznego na przepis, a na angielskich 1,02 (sam markdown). qwen3:14b na polskich prawie się nie myli (0,02), a na angielskich ma 2,13. Bielik najczęściej gubi składniki i myli temperatury, a do tego nie trzyma formatu aplikacji: v2.3 ma 37,9 drobnych błędów na przepis. Polszczyznę ma przy tym poprawną, z najmniejszą liczbą błędów na pełnym wejściu (0,9 na 1000 słów), co zgadza się z pierwszym testem: zna polski, ale nie trzyma formatu.

Lokalnie przepis trwa niecałą minutę na Bieliku i półtorej minuty na qwen3:14b na samym markdownie, a z HTML dłużej. qwen3:14b z kontekstem 24 tysięcy tokenów nie mieści się w 12 GB pamięci karty, więc część modelu liczy procesor z pamięci RAM. Stąd jego czasy; na komputerze z większą kartą byłby szybszy.

Inne obserwacje

  • DeepSeek v4 Flash w 19 odpowiedziach nie oddał poprawnego JSON-a, generował średnio ponad 12 tysięcy tokenów na odpowiedź i potrzebował ponad dwóch minut.
  • Mistral Medium 3.1 i Llama 4 Maverick najczęściej gubią składniki: odpowiednio 20 i 30 razy.
  • gpt-5-nano, najtańszy model OpenAI, ma na samym markdownie najwięcej błędów krytycznych spośród modeli w chmurze, głównie przez brakujące składniki (51).

Czego ten test nie mówi

  • Wzorzec przygotowały modele. Sprawdziłem każdą ich różnicę i próbkę zgodności, ale gdyby oba modele tak samo źle odczytały ten sam fragment poza próbką, nie zauważyłbym tego. Fable i Gemini należą do tych samych rodzin co część zawodników.
  • Darmowy Groq odrzucił najdłuższe angielskie przepisy (limit 8000 tokenów na zapytanie), więc jego wiersze (†) ich nie obejmują i nie są w pełni porównywalne z resztą.
  • Modele lokalne miały odpowiedź ograniczoną do 4096 tokenów. Ucięta odpowiedź liczy się jako zepsuty JSON (qwen3:14b: 2 na pełnym wejściu, 5 na samym markdownie).
  • 50 przepisów i dwa przebiegi wystarczą, żeby oddzielić czołówkę od końca tabeli, ale nie żeby ustawić kolejność w czołówce.
  • Polszczyznę ocenił jeden człowiek na 20 odpowiedziach, a LanguageTool trafia w prawdziwy błąd w około 57% przypadków.
  • Czasy przez OpenRouter (gwiazdka) zmierzyłem osobno na 6 przepisach i zależą od dostawcy i pory dnia.
  • Koszt podaję tam, gdzie rozliczył go OpenRouter. Ceny są z 25 i 26 października 2026.
  • Promptu pod Bielika ani pod inne modele nie pisałem. Wszystkie dostały prompt, który powstawał przy modelach OpenAI.

Podsumowanie

  • Kilka modeli zapisuje przepisy niemal bez błędów krytycznych, a różnice między nimi mieszczą się w niepewności pomiaru. Wybór w tej grupie to kwestia ceny, szybkości i tego, z czyjego API już korzystasz.
  • W ZapiszPrzepis zostaje gpt-5.4-mini: około jednego błędu krytycznego na jedenaście przepisów i odpowiedź w 4,4 sekundy.
  • Droższy model ani wyższy poziom rozumowania nie poprawiły wyniku.
  • Na OpenRouterze sprawdzaj dostawcę, nie tylko model.
  • Lokalne modele, w tym Bielik, są darmowe w pieniądzach, ale wolne i z tym promptem robią więcej błędów.

A Ty jak wybierasz model do swojej aplikacji: na benchmarkach, na własnych danych, czy po prostu bierzesz ten, który już znasz? Chętnie się dowiem, co sprawdza się u Ciebie.

Następny krok

AI w Twojej aplikacji, sprawdzone na Twoich danych

Wdrażam modele AI w aplikacjach i na stronach: wybieram model na prawdziwych danych, a nie na benchmarkach, dopisuję kontrole w kodzie tam, gdzie model się myli, i mierzę wynik przed wdrożeniem. Napisz, co AI ma u Ciebie robić.

Napisz do mnie Zobacz ofertę

Najczęściej zadawane pytania

— 01
Który model AI najlepiej zapisuje przepisy?
Nie ma jednego zwycięzcy. Najmniej błędów krytycznych na samym markdownie mają Claude Haiku 5.5, Gemini 3.5 Flash, Gemini 3.1 Flash-Lite i gpt-4.1-mini, ale ich przedziały ufności nakładają się z gpt-5.4-mini, więc to remis. W ZapiszPrzepis zostaje gpt-5.4-mini: na pełnym wejściu, takim jak w aplikacji, ma 0,09 błędu krytycznego na przepis, najmniej błędów poważnych i drobnych oraz medianę 4,4 sekundy.
— 02
Czy droższy model zapisuje przepisy lepiej?
W tym teście nie. Claude Sonnet 5.5 kosztował przez OpenRouter około 0,02 USD za przepis i miał 0,06 błędu krytycznego na przepis, a Claude Haiku 5.5 za około 0,002 USD miał 0,01. Przedziały ufności się nakładają, więc Sonnet nie wypadł lepiej, choć był mniej więcej dziesięć razy droższy.
— 03
Czy na OpenRouterze ma znaczenie, który dostawca obsłuży zapytanie?
Tak, i to duże. Ten sam gpt-oss-120b u kilku dostawców nie zrobił żadnego błędu krytycznego, a u CoreWeave miał ich średnio 4,47 na odpowiedź. gpt-oss-20b u SiliconFlow miał 12,2. Jeśli liczy się dokładność, wskaż w zapytaniu dostawców, których sprawdziłeś.
— 04
Czy do tłumaczenia przepisów nie wystarczy DeepL?
Nie. DeepL tłumaczy tekst, ale nie przelicza funtów na gramy ani °F na °C, nie przenosi notatki z pola miary do nazwy składnika i nie zamienia amerykańskiej marki na produkt z polskiego sklepu. Do tego to druga płatna usługa i drugi przebieg, który tłumaczy krótkie pola bez kontekstu.
— 05
Czy Bielik nadaje się do zapisywania przepisów?
Z moim promptem słabo. Na samym markdownie Bielik 11B v2.3 miał 0,62 błędu krytycznego na przepis, a nowszy v3.0 0,64. Na polskich przepisach idzie mu lepiej (0,24 i 0,43), na angielskich gorzej. Polszczyznę ma dobrą, ale gubi składniki, myli temperatury i nie trzyma ścisłego formatu JSON. Promptu pisanego pod Bielika nie próbowałem, więc to wynik dla tego zadania, a nie ocena modelu.
— 06
Czy warto wysyłać modelowi HTML strony razem z tekstem?
Do samego zapisania przepisu nie: modele OpenAI miały na samym markdownie mniej więcej tyle samo błędów krytycznych co z HTML, przy około połowie wejścia. Aplikacja używa jednak HTML także do zdjęć kroków, więc go nie wyrzucam.
— 07
Czy lokalny model jest darmowy?
W pieniądzach tak, w czasie nie. Na laptopie z kartą RTX PRO 3000 (12 GB) Bielik potrzebował niecałej minuty na przepis, a qwen3:14b półtorej. gpt-5.4-mini robi to samo w kilka sekund.
— 08
Jak sprawdziłeś, czy zapisany przepis jest poprawny?
Dla każdego przepisu dwa modele, Claude Fable 5.1 i Gemini 3.5 Flash, niezależnie przygotowały wzorzec z oryginalnej strony. Każdą różnicę między nimi rozstrzygnąłem na ślepo, a 31 z 31 losowo wybranych miejsc, w których się zgadzały, potwierdziłem z oryginałem. Wynik każdego modelu porównałem z tym wzorcem kodem.
Powrót do bloga