[{"data":1,"prerenderedAt":386},["ShallowReactive",2],{"\u002Fblog\u002Fqwen-vision-for-deepseek\u002F:pl":3,"\u002Fblog\u002Fqwen-vision-for-deepseek\u002F-surround:pl":285,"blog-all-posts:pl":286},{"id":4,"title":5,"author":6,"body":10,"date":268,"description":269,"extension":270,"image":271,"locale":272,"meta":273,"minRead":154,"navigation":274,"original":275,"path":276,"pinned":275,"seo":277,"source":278,"sourceUrl":23,"stem":279,"tags":280,"updated":271,"__hash__":284},"blog\u002Fblog\u002Fqwen-vision-for-deepseek.pl.md","Dodawanie multimodalności DeepSeekowi: podejście wizyjne Qwen-3.7-Flash",{"name":7,"avatar":8},"Chen Dahuang",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":260},"minimark",[13,28,31,36,39,42,46,54,57,61,64,183,186,199,207,211,229,233,236,239,243,246,249,256],[14,15,16],"blockquote",{},[17,18,19,20,27],"p",{},"Pierwotnie opublikowane na ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fx.com\u002Frealchendahuang\u002Fstatus\u002F2085265465564336327",[25],"nofollow","X"," — 89 tys. wyświetleń, 600+ polubień.",[17,29,30],{},"Wiele osób narzeka, że DeepSeek V4 Flash nie ma możliwości multimodalnych. To realna luka — ale nie ma powodu, żeby trzymać się jednego modela.",[32,33,35],"h2",{"id":34},"problem","Problem",[17,37,38],{},"Zdolności tekstowe V4 Flash są na maksa, ale przy obrazach jest bezradny: zrzuty ekranu, obrazkowe tabele, mockupy UI, zeskanowane dokumenty — nic z tego nie działa.",[17,40,41],{},"Multimodalność to cena „taniości\" — model potrzebuje enkoderów wizualnych, parametry puchną, a koszty rosną.",[32,43,45],{"id":44},"rozwiązanie-łącz-modele","Rozwiązanie: łącz modele",[17,47,48,49,53],{},"Przebadałem najkorzystniejsze cenowo modele wizyjne na rynku i odpowiedzią jest ",[50,51,52],"strong",{},"Qwen-3.7-Flash",".",[17,55,56],{},"Koszt rozpoznania jednego obrazu jest pomijalny. Użyj go jako dedykowanego modelu wizyjnego, rozumowanie tekstu zostaw na V4 Flash, a dostaniesz to, co najlepsze z obu.",[32,58,60],{"id":59},"jak-je-połączyć","Jak je połączyć",[17,62,63],{},"Najprostsza myśl to „routing\": wejście zawiera obraz → model wizyjny; czysty tekst → V4 Flash.",[65,66,71],"pre",{"className":67,"code":68,"language":69,"meta":70,"style":70},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F pseudokod: routing na żądanie\nfunction route(input) {\n  if (hasImage(input)) {\n    return qwenVision(input)   \u002F\u002F rozpoznaj obraz + wyciągnij kluczowe informacje\n  }\n  return deepseekV4Flash(input) \u002F\u002F rozumowanie tekstu\n}\n","js","",[72,73,74,83,108,133,152,158,177],"code",{"__ignoreMap":70},[75,76,79],"span",{"class":77,"line":78},"line",1,[75,80,82],{"class":81},"sHwdD","\u002F\u002F pseudokod: routing na żądanie\n",[75,84,86,90,94,98,102,105],{"class":77,"line":85},2,[75,87,89],{"class":88},"spNyl","function",[75,91,93],{"class":92},"s2Zo4"," route",[75,95,97],{"class":96},"sMK4o","(",[75,99,101],{"class":100},"sHdIc","input",[75,103,104],{"class":96},")",[75,106,107],{"class":96}," {\n",[75,109,111,115,119,122,124,127,130],{"class":77,"line":110},3,[75,112,114],{"class":113},"s7zQu","  if",[75,116,118],{"class":117},"swJcz"," (",[75,120,121],{"class":92},"hasImage",[75,123,97],{"class":117},[75,125,101],{"class":126},"sTEyZ",[75,128,129],{"class":117},")) ",[75,131,132],{"class":96},"{\n",[75,134,136,139,142,144,146,149],{"class":77,"line":135},4,[75,137,138],{"class":113},"    return",[75,140,141],{"class":92}," qwenVision",[75,143,97],{"class":117},[75,145,101],{"class":126},[75,147,148],{"class":117},")   ",[75,150,151],{"class":81},"\u002F\u002F rozpoznaj obraz + wyciągnij kluczowe informacje\n",[75,153,155],{"class":77,"line":154},5,[75,156,157],{"class":96},"  }\n",[75,159,161,164,167,169,171,174],{"class":77,"line":160},6,[75,162,163],{"class":113},"  return",[75,165,166],{"class":92}," deepseekV4Flash",[75,168,97],{"class":117},[75,170,101],{"class":126},[75,172,173],{"class":117},") ",[75,175,176],{"class":81},"\u002F\u002F rozumowanie tekstu\n",[75,178,180],{"class":77,"line":179},7,[75,181,182],{"class":96},"}\n",[17,184,185],{},"Bardziej zaawansowany ruch to wrzucenie wyniku wizyjnego wprost do V4 Flash do dalszego rozumowania:",[187,188,189,193,196],"ol",{},[190,191,192],"li",{},"Niech Qwen-3.7-Flash rozpozna obraz i wyjdzie ze strukturalnym opisem",[190,194,195],{},"Podaj opis + oryginalne pytanie razem do DeepSeek V4 Flash",[190,197,198],{},"V4 Flash dogłębnie rozumuje na opisie — pisze kod, podsumowuje",[17,200,201,202,206],{},"Tak dostajesz wizję ",[203,204,205],"em",{},"i"," taniość oraz szybkość V4 Flash.",[32,208,210],{"id":209},"dobre-przypadki-użycia","Dobre przypadki użycia",[212,213,214,217,220,223,226],"ul",{},[190,215,216],{},"Pytania o zrzuty ekranu: wrzuć zrzuty błędów i zrzuty czatów",[190,218,219],{},"Obrazkowe tabele \u002F dokumenty w dane strukturalne",[190,221,222],{},"Mockupy UI w kod",[190,224,225],{},"Wyciąganie informacji z zeskanowanych faktur i umów",[190,227,228],{},"Agenci, którzy muszą „widzieć\" ekran",[32,230,232],{"id":231},"dlaczego-nie-inne-opcje","Dlaczego nie inne opcje",[17,234,235],{},"Czyste modele LLM do wizji (np. multimodalne modele z rodziny GPT) są mocne, ale cena jest jaka jest — nieekonomiczne do codziennej pracy wsadowej.",[17,237,238],{},"Qwen-3.7-Flash wygrywa stosunkiem ceny do możliwości: jakość rozpoznawania jest wystarczająca, koszt niemal niewidoczny, a duże partie można przerabiać bez mrużenia oka.",[32,240,242],{"id":241},"podsumowanie","Podsumowanie",[17,244,245],{},"Kombinacja modeli to norma — nie oczekuj, że jeden model zrobi wszystko.",[17,247,248],{},"Koń roboczy tekstu V4 Flash (tanio, szybko, ogromny kontekst), wizyjne uzupełnienie Qwen-3.7-Flash (tanio, wystarczająco dobrze) — ta kombinacja to obecnie najlepszy stosunek ceny do możliwości. Łataj to, czego brakuje, zamiast czekać na model „wszystko, ale drogi\".",[17,250,251,252],{},"Powiązane: ",[21,253,255],{"href":254},"\u002Fblog\u002Fdeepseek-v4-flash-review","DeepSeek V4 Flash — recenzja wersji stabilnej z praktyki",[257,258,259],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":70,"searchDepth":85,"depth":85,"links":261},[262,263,264,265,266,267],{"id":34,"depth":85,"text":35},{"id":44,"depth":85,"text":45},{"id":59,"depth":85,"text":60},{"id":209,"depth":85,"text":210},{"id":231,"depth":85,"text":232},{"id":241,"depth":85,"text":242},"2026-08-06","DeepSeek V4 Flash nie ma multimodalności — co zrobić z rozumieniem obrazów? Po rozeznaniu rynku obecnie najkorzystniejszą cenowo opcją jest Qwen-3.7-Flash: rozpoznanie obrazu kosztuje niemal nic, a połączenie z V4 Flash łatuje tę lukę.","md",null,"pl",{},true,false,"\u002Fblog\u002Fqwen-vision-for-deepseek",{"title":5,"description":269},"x","blog\u002Fqwen-vision-for-deepseek.pl",[281,282,283],"DeepSeek","Multimodalność","Recenzja modelu","9eGf6ek3oWckOi1reogah3Y2lygBFeFI1TBY7Z_xM_U",[271,271],[287,294,303,311,315,323,330,338,346,352,354,362,369,377],{"path":288,"title":289,"description":290,"date":268,"minRead":160,"tags":291},"\u002Fblog\u002Fagent-harness-selection","Po testowaniu Pi Agent, OMP, Codex i ZCode: dlaczego ostatecznie wybrałem OpenCode + OpenChamber","Retrospektywa wyboru Agent Harnessa: trzy kryteria — wygoda GUI, blokada dostawcy i swoboda dalszego rozwoju — wykluczyły Pi Agent, OMP, Codex i ZCode, a wybór ostatecznie padł na jądro OpenCode z interfejsem OpenChamber.",[292,293],"AI Agent","Wybór narzędzi",{"path":295,"title":296,"description":297,"date":298,"minRead":160,"tags":299},"\u002Fblog\u002Fcloudflare-broke-stack","Najlepsze praktyki indie deva 2026: Cloudflare'owe kombo dla oszczędnych „od zera”","Technologiczny stos indie developera o zerowym koszcie: Codex pisze kod, GitHub trzyma wersje, Stripe przyjmuje płatności, frontend na TanStack Start, backend na Hono + Workers, baza D1, storage R2, cache KV — wszystko działa na Cloudflare.","2026-06-15",[300,301,302],"Cloudflare","Indie development","Stos technologiczny",{"path":304,"title":305,"description":306,"date":307,"minRead":160,"tags":308},"\u002Fblog\u002Fdeepseek-api-web-search","DeepSeek ma w API wbudowane wyszukiwanie w sieci — darmowa oficjalna funkcja wyszukiwania przez Responses API","DeepSeek wbudował wyszukiwanie w sieci prosto w API: wywołaj deepseek-v4-flash przez interfejs Responses i zadeklaruj narzędzie web_search. Bez integracji z zewnętrzną wyszukiwarką, bez klucza API do wyszukiwania.","2026-08-05",[281,309,310],"API","Narzędzia AI",{"path":254,"title":312,"description":313,"date":307,"minRead":179,"tags":314},"DeepSeek V4 Flash w wersji stabilnej, z praktyki: tani, szybki, 1M kontekstu, wbudowane wyszukiwanie","Kilka dni dogłębnego testowania stabilnej wersji DeepSeek V4 Flash: ekstremalnie tanio, szybko jak błyskawica, 1M kontekstu, oficjalne wbudowane wyszukiwanie w sieci, w pełni open source. Jedyna słabość to multimodalność — ale można ją załatać, łącząc inne modele.",[281,283,310],{"path":316,"title":317,"description":318,"date":298,"minRead":319,"tags":320},"\u002Fblog\u002Ffree-cloudflare","Jak darmowy użytkownik wycisnąć z Cloudflare wszystko — na ile realnie starcza darmowy plan?","Darmowy plan Cloudflare może unieść całą prywatną infrastrukturę internetową: DNS, CDN, Pages, Workers, KV, D1, R2, e-mail, Tunnel, AI Gateway i więcej.",8,[300,321,322],"Darmowy plan","Wdrożenie",{"path":324,"title":325,"description":326,"date":327,"minRead":319,"tags":328},"\u002Fblog\u002Fmodel-harness-decoupling","Harness first-party nie zawsze jest wersją zwycięską: w epoce modeli otwartych wybieraj model i Harness osobno","Używasz Claude? Bierzesz Claude Code. W epoce modeli otwartych ten instynkt wymaga aktualizacji. Przewaga first-party jest realna, ale wytrenowanie dobrego modelu i zbudowanie dobrego Harnessa to dwie różne dziedziny inżynierii — ten artykuł wyjaśnia, dlaczego model i Harness można już wybierać osobno, plus mapę pozycjonowania pięciu Harnessów.","2026-09-09",[292,329,293],"Harness",{"path":331,"title":332,"description":333,"date":327,"minRead":319,"tags":334},"\u002Fblog\u002Fopencode-productive-stack","Stabilnie, szybko, produktywnie, tanio: moje pełne zestawienie stacku AI Coding","OpenCode + OpenChamber + dwie subskrypcje DeepSeek V4 Flash: 15 projektów jednocześnie generuje kod, a limit ledwo drgnął. Rozkładam całą konfigurację na łopatki: przycinanie kontekstu, warstwowa pamięć, automatyzacja pulpitu oraz lekcja „trzymaj się oryginalnej pary”.",[335,336,337],"OpenCode","Programowanie z AI","Konfiguracja",{"path":339,"title":340,"description":341,"date":342,"minRead":343,"tags":344},"\u002Fblog\u002Fproduct-faxin-principle","Zasada pierwotnej intencji: dlaczego indie developer musi nauczyć się rezygnować","Dlaczego ruszasz? Dla kogo ruszasz? Który problem naprawdę chcesz rozwiązać? Ostrość produktu bierze się z tego, z czego masz odwagę zrezygnować.","2026-06-20",10,[345,301],"Myślenie produktowe",{"path":347,"title":348,"description":349,"date":342,"minRead":319,"tags":350},"\u002Fblog\u002Fproduct-pain-vs-itch","Nie wpadaj w uniesienie, gdy użytkownik mówi „świetne”: punkty bólu a punkty swędzenia","Ustna aprobata jest bezwartościowa. Jest tylko jeden twardy standard oceny popytu: to, co użytkownik jest gotów zapłacić.",[345,351],"Ocena popytu",{"path":276,"title":5,"description":269,"date":268,"minRead":154,"tags":353},[281,282,283],{"path":355,"title":356,"description":357,"date":358,"minRead":135,"tags":359},"\u002Fblog\u002Fsub-store-cloudflare","Przeniosłem agregację subskrypcji proxy na Cloudflare","Połącz wiele usług proxy plus własne węzły w jedną subskrypcję, z regułami routingu skonfigurowanymi po stronie serwera — klient po prostu subskrybuje.","2026-06-28",[300,360,361],"Obejście cenzury","Projekt open source",{"path":363,"title":364,"description":365,"date":327,"minRead":179,"tags":366},"\u002Fblog\u002Ftui-cognitive-bandwidth","TUI zabija twoją przepustowość poznawczą: czas rozbić „geekowy filtr” w AI Coding","Coraz więcej agentów kodujących z AI ściga się w wypuszczaniu TUI, wpychając interakcję z powrotem w terminalowy paradygmat z lat 80. i nazywając to „immersywnym” i „szanującym programistów”. Ten artykuł rozbiera na części trzy mechanizmy, którymi TUI systematycznie obniża przepustowość poznawczą — i wyjaśnia, dlaczego właściwym rozwiązaniem jest Web UI.",[336,367,368],"Projektowanie interakcji","Esej",{"path":370,"title":371,"description":372,"date":373,"minRead":160,"tags":374},"\u002Fblog\u002Fvalue-not-external","Dyskutowanie, czy coś ma wartość, samo w sobie jest bezwartościowe","Nasza wartość nie jest definiowana przez nikogo. W epoce AI — jak powinniśmy rozumieć samych siebie?","2026-06-18",[375,376],"Myślenie o AI","Esej humanistyczny",{"path":378,"title":379,"description":380,"date":381,"minRead":382,"tags":383},"\u002Fblog\u002Fx-growth-1000-followers","Ponad 1000 obserwujących w nieco ponad dobę — co zrobiłem","W czerwcu poważnie poprowadziłem konto na X i zdobyłem ponad 1000 obserwujących w nieco ponad dobę. Ten post zapisuje, co zrobiłem i jakie dostałem odpowiedzi.","2026-06-16",12,[384,385],"Prowadzenie X","Wzrost treści",1789752320983]