[{"data":1,"prerenderedAt":381},["ShallowReactive",2],{"\u002Fblog\u002Fqwen-vision-for-deepseek\u002F:pt":3,"\u002Fblog\u002Fqwen-vision-for-deepseek\u002F-surround:pt":280,"blog-all-posts:pt":281},{"id":4,"title":5,"author":6,"body":10,"date":263,"description":264,"extension":265,"image":266,"locale":267,"meta":268,"minRead":154,"navigation":269,"original":270,"path":271,"pinned":270,"seo":272,"source":273,"sourceUrl":23,"stem":274,"tags":275,"updated":266,"__hash__":279},"blog\u002Fblog\u002Fqwen-vision-for-deepseek.pt.md","Dando multimodal ao DeepSeek: solução de visão com Qwen-3.7-Flash",{"name":7,"avatar":8},"Chen Dahuang",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":255},"minimark",[13,28,31,36,39,42,46,54,57,61,64,183,186,199,202,206,224,228,231,234,238,241,244,251],[14,15,16],"blockquote",{},[17,18,19,20,27],"p",{},"Original postado no ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fx.com\u002Frealchendahuang\u002Fstatus\u002F2085265465564336327",[25],"nofollow","X",", 89 mil visualizações, 600+ curtidas.",[17,29,30],{},"Muita gente reclama que o DeepSeek V4 Flash não tem multimodal. É uma lacuna real — mas não precisa insistir num modelo só.",[32,33,35],"h2",{"id":34},"o-problema","O problema",[17,37,38],{},"O V4 Flash está com a capacidade textual no talo, mas chega na hora de ler imagem e trava: screenshot, imagem de tabela, mockup de UI, documento escaneado — nada disso ele processa.",[17,40,41],{},"Multimodal é o preço da \"baratura\": o modelo precisa de encoding visual, os parâmetros incham e o custo sobe.",[32,43,45],{"id":44},"a-solução-usar-em-combinação","A solução: usar em combinação",[17,47,48,49,53],{},"Pesquisei a fundo a opção de reconhecimento de imagem com melhor custo-benefício hoje, e a resposta é ",[50,51,52],"strong",{},"Qwen-3.7-Flash",".",[17,55,56],{},"O custo para reconhecer uma imagem é tão baixo que dá para ignorar. Use ele como modelo de visão dedicado e siga com a inferência de texto no V4 Flash — fica com o melhor dos dois mundos.",[32,58,60],{"id":59},"como-combinar","Como combinar",[17,62,63],{},"O caminho mais simples é o \"roteamento\": entrada com imagem → modelo de visão; texto puro → 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 pseudocódigo: roteamento sob demanda\nfunction route(input) {\n  if (hasImage(input)) {\n    return qwenVision(input)   \u002F\u002F reconhece imagem + extrai informação-chave\n  }\n  return deepseekV4Flash(input) \u002F\u002F inferência de texto\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 pseudocódigo: roteamento sob demanda\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 reconhece imagem + extrai informação-chave\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 inferência de texto\n",[75,178,180],{"class":77,"line":179},7,[75,181,182],{"class":96},"}\n",[17,184,185],{},"Um esquema mais avançado é jogar o resultado da visão direto no V4 Flash para continuar a inferência:",[187,188,189,193,196],"ol",{},[190,191,192],"li",{},"Use o Qwen-3.7-Flash para reconhecer a imagem e gerar uma descrição estruturada",[190,194,195],{},"Empacote a descrição + a pergunta original para o DeepSeek V4 Flash",[190,197,198],{},"O V4 Flash faz inferência profunda, escreve código e resume com base na descrição",[17,200,201],{},"Assim você enxerga imagem e ainda aproveita o barato e a velocidade do V4 Flash.",[32,203,205],{"id":204},"cenários-de-uso","Cenários de uso",[207,208,209,212,215,218,221],"ul",{},[190,210,211],{},"Perguntar com screenshot: joga screenshot de erro, screenshot de conversa",[190,213,214],{},"Imagens de tabela\u002Fdocumento virando dados estruturados",[190,216,217],{},"Mockup de UI virando código",[190,219,220],{},"Extração de informações de escaneados (nota fiscal, contrato)",[190,222,223],{},"Cenários em que um Agent precisa \"olhar\" a tela",[32,225,227],{"id":226},"por-que-não-outra-opção","Por que não outra opção",[17,229,230],{},"Modelos de visão puros (tipo os multimodais da família GPT) são fortes, mas o preço está lá — para processamento em lote no dia a dia não compensa.",[17,232,233],{},"O Qwen-3.7-Flash vence no custo-benefício: qualidade de reconhecimento suficiente, custo praticamente invisível, e dá para rodar lote grande sem pesar no bolso.",[32,235,237],{"id":236},"resumo","Resumo",[17,239,240],{},"A combinação de modelos é o normal — não espere um modelo fazer tudo sozinho.",[17,242,243],{},"Texto principal no V4 Flash (barato, rápido, contexto grande), visão de apoio no Qwen-3.7-Flash (barato, suficiente): essa é a opção com melhor custo-benefício hoje. Completa o que falta, um por um — bem mais realista do que esperar um modelo \"universal mas caro\".",[17,245,246,247],{},"Leitura relacionada: ",[21,248,250],{"href":249},"\u002Fblog\u002Fdeepseek-v4-flash-review","DeepSeek V4 Flash versão final — experiência aprofundada",[252,253,254],"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":256},[257,258,259,260,261,262],{"id":34,"depth":85,"text":35},{"id":44,"depth":85,"text":45},{"id":59,"depth":85,"text":60},{"id":204,"depth":85,"text":205},{"id":226,"depth":85,"text":227},{"id":236,"depth":85,"text":237},"2026-08-06","O DeepSeek V4 Flash não tem multimodal. E ler imagem, como fica? Na minha pesquisa, a opção com melhor custo-benefício hoje é o Qwen-3.7-Flash: reconhecer uma imagem custa quase nada e, combinado com o V4 Flash, cobre a lacuna.","md",null,"pt",{},true,false,"\u002Fblog\u002Fqwen-vision-for-deepseek",{"title":5,"description":264},"x","blog\u002Fqwen-vision-for-deepseek.pt",[276,277,278],"DeepSeek","Multimodal","Review de modelo","3Kcrh3J79YY2nm0Sr3cmgJ7QbNxM77aJF-Y971WuiWg",[266,266],[282,289,298,306,310,318,325,333,341,347,349,357,364,372],{"path":283,"title":284,"description":285,"date":263,"minRead":160,"tags":286},"\u002Fblog\u002Fagent-harness-selection","Testei Pi Agent, OMP, Codex, ZCode — no fim escolhi OpenCode + OpenChamber","Retrospectiva da escolha de Agent Harness: critérios de experiência GUI, vendor lock-in e liberdade de customização que eliminaram Pi Agent, OMP, Codex e ZCode, para no fim escolher o núcleo OpenCode + a interface OpenChamber.",[287,288],"AI Agent","Escolha de ferramenta",{"path":290,"title":291,"description":292,"date":293,"minRead":160,"tags":294},"\u002Fblog\u002Fcloudflare-broke-stack","Melhores práticas de dev independente em 2026: o combo \"pobretão\" da Cloudflare","Stack de custo zero para devs independentes: Codex escreve código, GitHub cuida da versão, Stripe recebe o dinheiro; front em TanStack Start, backend com Hono + Workers, banco D1, storage R2, cache KV — tudo rodando na Cloudflare.","2026-06-15",[295,296,297],"Cloudflare","Desenvolvimento independente","Stack tecnológica",{"path":299,"title":300,"description":301,"date":302,"minRead":160,"tags":303},"\u002Fblog\u002Fdeepseek-api-web-search","Busca na web embutida na API do DeepSeek — Responses API de graça com busca oficial","O DeepSeek embutiu busca na web na API oficial: é só chamar o deepseek-v4-flash pelo endpoint Responses declarando a ferramenta web_search, sem integrar buscador de terceiros e sem pedir chave de busca.","2026-08-05",[276,304,305],"API","Ferramenta de IA",{"path":249,"title":307,"description":308,"date":302,"minRead":179,"tags":309},"DeepSeek V4 Flash oficial — experiência aprofundada: barato, rápido, 1M de contexto, busca embutida","Dias de uso intenso do DeepSeek V4 Flash oficial: barato ao extremo, rápido que dá gosto, 1M de contexto, busca na web oficial embutida e totalmente open source. O único senão é multimodal — mas dá para cobrir combinando com outros modelos.",[276,278,305],{"path":311,"title":312,"description":313,"date":293,"minRead":314,"tags":315},"\u002Fblog\u002Ffree-cloudflare","Como usuário gratuito, como espremer a Cloudflare até a última gota — até onde o free tier realmente grátis?","O plano gratuito da Cloudflare sustenta a infraestrutura pessoal inteira: DNS, CDN, Pages, Workers, KV, D1, R2, email, Tunnel, AI Gateway e mais.",8,[295,316,317],"Franquia grátis","Deploy",{"path":319,"title":320,"description":321,"date":322,"minRead":314,"tags":323},"\u002Fblog\u002Fmodel-harness-decoupling","O Harness first-party nem sempre é a resposta: na era dos modelos abertos, escolha o modelo e o Harness separadamente","Usa Claude, vai de Claude Code? Na era dos modelos abertos, esse instinto pede um upgrade. A vantagem first-party é real, mas treinar um bom modelo e construir um bom Harness são duas engenharias diferentes — este artigo explica por que modelo e Harness já podem ser escolhidos separadamente, com um mapa de posicionamento de cinco Harness.","2026-09-09",[287,324,288],"Harness",{"path":326,"title":327,"description":328,"date":322,"minRead":314,"tags":329},"\u002Fblog\u002Fopencode-productive-stack","Estável, rápido, produtivo, barato: meu stack de AI Coding documentado","OpenCode + OpenChamber + duas assinaturas DeepSeek V4 Flash: 15 projetos rodando código ao mesmo tempo e a cota mal se mexeu. Toda a configuração aberta aqui — poda de Context, memória em camadas, automação de desktop e a lição de 'ficar com a combinação original'.",[330,331,332],"OpenCode","Programação IA","Configuração",{"path":334,"title":335,"description":336,"date":337,"minRead":338,"tags":339},"\u002Fblog\u002Fproduct-faxin-principle","O princípio do \"fa'xin\": por que o dev independente precisa aprender a abrir mão","Por que você começa? Para quem você começa? Qual problema você realmente quer resolver? A capacidade de um produto ser afiado vem de saber o que largar e o que abandonar.","2026-06-20",10,[340,296],"Pensamento de produto",{"path":342,"title":343,"description":344,"date":337,"minRead":314,"tags":345},"\u002Fblog\u002Fproduct-pain-vs-itch","Usuário diz \"caralho, que foda\" e você se empolga: dor vs. coceira","Aprovação verbal não vale nada. Para julgar necessidade existe só um critério duro: ver o que o usuário está disposto a pagar.",[340,346],"Julgamento de necessidade",{"path":271,"title":5,"description":264,"date":263,"minRead":154,"tags":348},[276,277,278],{"path":350,"title":351,"description":352,"date":353,"minRead":135,"tags":354},"\u002Fblog\u002Fsub-store-cloudflare","Migrei a agregação de assinaturas de proxy para a Cloudflare","Vários serviços de proxy mais os seus próprios nós fundidos em uma única assinatura, com as regras de roteamento configuradas no servidor — o cliente só assina.","2026-06-28",[295,355,356],"Contorno da rede","Projeto open source",{"path":358,"title":359,"description":360,"date":322,"minRead":179,"tags":361},"\u002Fblog\u002Ftui-cognitive-bandwidth","A TUI está matando sua banda cognitiva: está na hora de quebrar o “filtro geek” do AI Coding","Um bando de AI Coding Agents disputando quem sobe TUI primeiro, empurrando a interação de volta ao paradigma de terminal dos anos 80 e ainda chamando isso de “imersivo” e “respeita o programador”. Este artigo disseca os três mecanismos pelos quais a TUI reduz sistematicamente sua banda cognitiva — e por que o Web UI é a resposta certa.",[331,362,363],"Design de interação","Ensaio",{"path":365,"title":366,"description":367,"date":368,"minRead":160,"tags":369},"\u002Fblog\u002Fvalue-not-external","Discutir se algo tem valor é, em si, algo sem valor","Nosso valor não é definido por ninguém. Na era da IA, como a pessoa deve se entender, afinal?","2026-06-18",[370,371],"Reflexão sobre IA","Ensaio humano",{"path":373,"title":374,"description":375,"date":376,"minRead":377,"tags":378},"\u002Fblog\u002Fx-growth-1000-followers","Mais de 1000 seguidores em pouco mais de um dia — o que eu fiz","Em junho, comecei a levar o X a sério e ganhei 1000+ seguidores em pouco mais de um dia. Este post registra o que eu fiz na ocasião e os retornos que recebi.","2026-06-16",12,[379,380],"Operação no X","Crescimento de conteúdo",1789752315364]