<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on Fellipe Gomes</title><link>https://gomesfellipe.github.io/tags/python/</link><description>Recent content in Python on Fellipe Gomes</description><generator>Hugo -- gohugo.io</generator><language>pt-BR</language><copyright>© 2026 Fellipe Gomes</copyright><lastBuildDate>Thu, 06 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://gomesfellipe.github.io/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>TabFM contra CatBoost, XGBoost e LightGBM em 10 datasets tabulares</title><link>https://gomesfellipe.github.io/post/2026-08-06-tabfm-vs-gbm/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/post/2026-08-06-tabfm-vs-gbm/</guid><description>&lt;p&gt;O Google liberou o &lt;a href="https://github.com/google-research/tabfm" target="_blank" rel="noreferrer"&gt;TabFM&lt;/a&gt; em 30 de junho de 2026, um modelo fundacional para dados tabulares que promete classificação e regressão sem treino. A primeira coisa que fiz foi desconfiar. Modelo fundacional em dados tabulares é a promessa que a área persegue desde sempre: substituir o gradient boosting, que domina competição e produção há mais de uma década. Em vez de aceitar os números do anúncio, montei um benchmark próprio em 10 datasets contra CatBoost, XGBoost e LightGBM, com validação estatística em cada etapa.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gomesfellipe.github.io/post/2026-08-06-tabfm-vs-gbm/feature.jpg"/></item><item><title>Cursos que eu fiz e recomendo</title><link>https://gomesfellipe.github.io/courses/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/courses/</guid><description>&lt;div class="cursos"&gt;
 &lt;style&gt;
 
 .cursos{
 --cs-r:10px;
 --cs-accent:rgb(var(--color-primary-600));
 --cs-card:#fff;
 --cs-text:#18202b;
 --cs-muted:#67707d;
 --cs-line:rgba(15,23,42,.11);
 width:100%;max-width:1180px;margin-inline:auto;
 color:var(--cs-text);font-synthesis:none;
 }
 html.dark .cursos{
 --cs-accent:rgb(var(--color-primary-400));
 --cs-card:#161d27;
 --cs-text:#e4e9f0;
 --cs-muted:#95a0ae;
 --cs-line:rgba(255,255,255,.11);
 }
 .cursos *{box-sizing:border-box}

 
 .cs-sec{margin-top:clamp(2.25rem,5vw,3.25rem)}
 .cs-sec:first-of-type{margin-top:0}
 .cs-head{display:flex;align-items:baseline;gap:.7rem;
 padding-bottom:.55rem;border-bottom:1px solid var(--cs-line);margin-bottom:.9rem}
 
 .cursos .cs-head h1{margin:0;padding-bottom:0;border-bottom:0;
 font-size:clamp(1.05rem,2vw,1.3rem);font-weight:700;
 letter-spacing:-.015em;line-height:1.2}
 .cs-count{margin-left:auto;font-size:.72rem;color:var(--cs-muted);
 font-variant-numeric:tabular-nums;white-space:nowrap}
 .cs-intro{max-width:62ch;margin:0 0 1.15rem;font-size:.86rem;
 line-height:1.6;color:var(--cs-muted)}

 
 .cs-grid{display:grid;gap:.7rem;
 grid-template-columns:repeat(auto-fill,minmax(218px,1fr))}

 
 .cs-card{position:relative;display:flex;flex-direction:column;gap:.3rem;
 padding:.8rem .85rem .9rem;background:var(--cs-card);
 border:1px solid var(--cs-line);border-radius:var(--cs-r);
 transition:border-color .16s,box-shadow .16s,transform .16s}
 .cs-card:hover{border-color:var(--cs-accent);transform:translateY(-2px);
 box-shadow:0 1px 2px rgba(15,23,42,.05),0 8px 20px rgba(15,23,42,.07)}
 html.dark .cs-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.45)}
 .cs-card:has(.cs-link:focus-visible){outline:2px solid var(--cs-accent);
 outline-offset:2px}

 
 .cs-link{color:inherit;text-decoration:none}
 .cs-link::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}

 
 .cs-meta{display:flex;align-items:center;gap:.4rem;margin-bottom:.15rem;
 color:var(--pc)}
 html.dark .cs-meta{color:var(--pcd,var(--pc))}
 .cs-mark{flex:none;width:14px;height:14px;display:block}
 
 .cursos .cs-img{flex:none;width:14px;height:14px;min-width:0;max-width:14px;
 margin:0;object-fit:contain;border-radius:2px}
 .cs-mono{flex:none;width:14px;height:14px;display:grid;place-items:center;
 font-size:8px;font-weight:800;letter-spacing:-.02em;line-height:1;
 border:1px solid currentColor;border-radius:3px}
 .cs-plat{font-size:.72rem;color:var(--cs-muted);min-width:0;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

 .cs-tags{margin-left:auto;flex:none;display:flex;align-items:center;gap:.3rem}
 
 .cs-cert{position:relative;z-index:2;display:grid;place-items:center;
 width:17px;height:17px;margin:-2px;border-radius:4px;
 color:var(--cs-muted);transition:color .16s,background-color .16s}
 .cs-cert:hover{color:var(--cs-accent);background:var(--cs-line)}
 .cs-cert:focus-visible{outline:2px solid var(--cs-accent);outline-offset:1px}
 .cs-cert svg{width:13px;height:13px}
 .cs-star{flex:none;display:block;width:12px;height:12px;color:var(--cs-accent)}

 
 .cs-thumb{position:absolute;top:calc(100% + .4rem);right:-4px;z-index:6;
 width:150px;aspect-ratio:320/230;border-radius:8px;overflow:hidden;
 background:var(--thumb) center/cover no-repeat,var(--cs-card);
 border:1px solid var(--cs-line);
 box-shadow:0 4px 10px rgba(15,23,42,.10),0 14px 30px rgba(15,23,42,.16);
 opacity:0;visibility:hidden;transform:translateY(-4px);
 transition:opacity .15s,transform .15s,visibility 0s linear .15s}
 html.dark .cs-thumb{box-shadow:0 16px 36px rgba(0,0,0,.6)}
 .cs-cert:hover .cs-thumb,.cs-cert:focus-visible .cs-thumb{
 opacity:1;visibility:visible;transform:none;transition-delay:0s}
 .cs-thumb-x{display:grid;place-items:center;width:130px;aspect-ratio:auto;
 padding:.55rem;text-align:center;background:var(--cs-card);
 font-size:.65rem;line-height:1.45;color:var(--cs-muted)}
 @media(hover:none){.cs-thumb{display:none}}

 
 .cs-certs{position:relative;z-index:3}
 .cs-certs&gt;summary{display:grid;grid-auto-flow:column;align-items:center;gap:.18rem;
 width:max-content;padding:1px 3px;margin:-1px -3px;border-radius:4px;
 list-style:none;cursor:pointer;color:var(--cs-muted);
 transition:color .16s,background-color .16s}
 .cs-certs&gt;summary::-webkit-details-marker{display:none}
 .cs-certs&gt;summary:hover,.cs-certs[open]&gt;summary{color:var(--cs-accent);background:var(--cs-line)}
 .cs-certs&gt;summary:focus-visible{outline:2px solid var(--cs-accent);outline-offset:1px}
 .cs-certs&gt;summary svg{width:13px;height:13px}
 .cs-certn{font-size:.62rem;font-weight:700;font-variant-numeric:tabular-nums}
 .cs-certbox{position:absolute;top:calc(100% + .35rem);right:0;width:min(15rem,72vw);
 padding:.5rem .6rem;background:var(--cs-card);border:1px solid var(--cs-line);
 border-radius:var(--cs-r);box-shadow:0 4px 8px rgba(15,23,42,.07),0 12px 28px rgba(15,23,42,.13)}
 html.dark .cs-certbox{box-shadow:0 12px 32px rgba(0,0,0,.6)}
 .cs-certbox ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.1rem}
 .cs-certbox a{display:block;padding:.24rem .3rem;border-radius:5px;
 font-size:.73rem;line-height:1.35;color:var(--cs-text);text-decoration:none}
 .cs-certbox a:hover{color:var(--cs-accent);background:var(--cs-line)}
 .cs-certbox a:focus-visible{outline:2px solid var(--cs-accent);outline-offset:-1px}
 
 .cs-card:has(.cs-certs[open]){z-index:4}

 .cs-title{margin:0;font-size:.9rem;font-weight:650;line-height:1.35;
 letter-spacing:-.005em}
 .cs-author{margin:0;font-size:.74rem;color:var(--cs-muted)}
 .cs-pitch{margin:.35rem 0 0;font-size:.79rem;line-height:1.55;color:var(--cs-muted)}
 .cs-coupon{margin:.4rem 0 0;font-size:.7rem;font-weight:600;color:var(--cs-accent)}

 .cs-go{position:absolute;bottom:.7rem;right:.7rem;width:11px;height:11px;
 color:var(--cs-accent);opacity:0;transform:translate(-2px,2px);
 transition:opacity .16s,transform .16s}
 .cs-card:hover .cs-go{opacity:1;transform:none}

 .cs-close{max-width:62ch;margin:clamp(2.5rem,6vw,3.5rem) 0 0;
 padding-top:1.25rem;border-top:1px solid var(--cs-line);
 font-size:.86rem;line-height:1.65;color:var(--cs-muted)}

 .cs-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
 overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

 
 
 .cs-story-intro{max-width:62ch;margin:0 0 1.15rem;font-size:1rem;
 line-height:1.65;color:var(--cs-text)}
 .cs-story-list{list-style:disc;margin:0;padding-left:1.15rem;display:flex;
 flex-direction:column;gap:.55rem;max-width:62ch}
 .cs-story-list li{font-size:.86rem;line-height:1.6;color:var(--cs-text)}
 
 .cs-pitch a,.cs-intro a,.cs-story-intro a{color:var(--cs-accent);
 text-decoration:none;font-weight:500}
 .cs-pitch a:hover,.cs-intro a:hover,.cs-story-intro a:hover{text-decoration:underline}
 .cs-mini-cert{position:relative;display:inline-flex;vertical-align:-2px;
 margin-left:.35rem;color:var(--cs-muted);transition:color .16s}
 .cs-mini-cert:hover{color:var(--cs-accent)}
 .cs-mini-cert svg{width:13px;height:13px}
 
 .cs-mini-cert .cs-thumb{left:50%;right:auto;transform:translateX(-50%) translateY(-4px)}
 .cs-mini-cert:hover .cs-thumb,.cs-mini-cert:focus-visible .cs-thumb{
 opacity:1;visibility:visible;transform:translateX(-50%);transition-delay:0s}

 @media(max-width:560px){
 .cs-grid{grid-template-columns:1fr}
 .cs-count{display:none}
 }
 @media (prefers-reduced-motion: reduce){
 .cs-card,.cs-go,.cs-cert,.cs-mini-cert{transition:none}
 .cs-card:hover{transform:none}
 }
 &lt;/style&gt;
 &lt;section class="cs-sec" id="comece-por-aqui"&gt;
 &lt;div class="cs-head"&gt;
 &lt;h1&gt;Comece por aqui&lt;/h1&gt;
 &lt;span class="cs-count"&gt;3 cursos&lt;/span&gt;
 &lt;/div&gt;
 &lt;p class="cs-intro"&gt;Se você está começando do zero e quer uma trilha só, esses cursos podem ajudar. Os três cobrem uma boa introdução: visão geral, sintaxe, estatística aplicada e um primeiro modelo rodando.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gomesfellipe.github.io/courses/feature.jpg"/></item><item><title>Extensões do VSCode que uso</title><link>https://gomesfellipe.github.io/resources/vscode-extensions/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/resources/vscode-extensions/</guid><description>&lt;div class="vsx"&gt;
 &lt;style&gt;
 .vsx{
 --vsx-accent:#007acc; --vsx-accent2:#1f9cf0;
 --vsx-bg:#ffffff; --vsx-bg2:#faf7f2; --vsx-card:#ffffff;
 --vsx-text:#1f2733; --vsx-muted:#6b7583; --vsx-line:rgba(0,0,0,.09);
 --vsx-shadow:0 1px 2px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.07);
 --vsx-shadow-h:0 6px 14px rgba(0,122,204,.18),0 18px 40px rgba(0,0,0,.14);
 width:100%; max-width:1180px; margin-inline:auto;
 color:var(--vsx-text); font-synthesis:none;
 }
 html.dark .vsx{
 --vsx-bg:#0f141b; --vsx-bg2:#141b24; --vsx-card:#1a2230;
 --vsx-text:#e6ebf2; --vsx-muted:#9aa6b4; --vsx-line:rgba(255,255,255,.10);
 --vsx-shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.5);
 --vsx-shadow-h:0 6px 16px rgba(31,156,240,.22),0 22px 46px rgba(0,0,0,.6);
 }
 .vsx *{box-sizing:border-box}
 .vsx-sec{margin-top:clamp(2rem,5vw,3rem)}
 .vsx-sec:first-child{margin-top:0}
 .vsx-sec-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:1.4rem}
 .vsx-sec-head h1{margin:0;font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:800;letter-spacing:-.01em;border-bottom:none;padding-bottom:0}
 .vsx-sec-intro{flex-basis:100%;margin:.35rem 0 0;color:var(--vsx-muted);font-size:.96rem;line-height:1.55}
 .vsx-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
 .vsx-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--vsx-line);
 border-radius:16px;box-shadow:var(--vsx-shadow);transition:transform .2s,box-shadow .2s,border-color .2s;
 background:radial-gradient(140% 160% at 100% 100%,rgba(0,122,204,.10),transparent 55%),var(--vsx-card)}
 .vsx-card:hover{transform:translateY(-6px);box-shadow:var(--vsx-shadow-h);border-color:rgba(0,122,204,.4)}
 .vsx-top{display:flex;align-items:center;gap:.85rem;padding:1.1rem 1.1rem .6rem;position:relative}
 .vsx-icon{flex-shrink:0;width:52px;height:52px;border-radius:12px;overflow:hidden;
 display:flex;align-items:center;justify-content:center;background:var(--vsx-bg2);
 border:1px solid var(--vsx-line)}
 .vsx-icon img{width:100%;height:100%;object-fit:contain;padding:4px}
 .vsx-meta{min-width:0}
 .vsx-name{font-size:1rem;font-weight:700;line-height:1.2;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .vsx-publisher{font-size:.8rem;color:var(--vsx-muted);margin:.1rem 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .vsx-badge{position:absolute;top:.7rem;right:.7rem;font-size:.62rem;font-weight:800;
 letter-spacing:.03em;text-transform:uppercase;color:#fff;
 background:linear-gradient(120deg,var(--vsx-accent),var(--vsx-accent2));
 padding:.22rem .5rem;border-radius:999px;box-shadow:0 2px 8px rgba(0,122,204,.4)}
 .vsx-body{display:flex;flex-direction:column;gap:.35rem;padding:.2rem 1.1rem 1.1rem;flex:1}
 .vsx-pitch{font-size:.9rem;line-height:1.5;color:var(--vsx-text);opacity:.92;margin:.1rem 0 .8rem;flex:1}
 .vsx-cta{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
 font-size:.9rem;font-weight:700;text-decoration:none;color:#fff;
 background:linear-gradient(120deg,var(--vsx-accent),var(--vsx-accent2));
 padding:.6rem .9rem;border-radius:10px;transition:.18s;box-shadow:0 4px 12px rgba(0,122,204,.28)}
 .vsx-cta:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,122,204,.42)}
 .vsx-cta svg{width:14px;height:14px;flex-shrink:0}
 @media(max-width:520px){
 .vsx-grid{grid-template-columns:1fr;gap:.8rem}
 .vsx-top{padding:.9rem .9rem .5rem}
 .vsx-body{padding:.2rem .9rem .9rem}
 }
 .vsx-cta:focus-visible{outline:2px solid var(--vsx-accent);outline-offset:3px}
 @media(prefers-reduced-motion:reduce){
 .vsx-card,.vsx-cta{transition:none}
 .vsx-card:hover,.vsx-cta:hover{transform:none}
 }
 &lt;/style&gt;
 &lt;section class="vsx-sec" id="ia-assistente-de-codigo"&gt;
 &lt;div class="vsx-sec-head"&gt;
 &lt;h1&gt;IA &amp;amp; Assistente de Código&lt;/h1&gt;
 &lt;p class="vsx-sec-intro"&gt;Onde a IA entra de verdade no editor: assistente de código e controle do que eu gasto com ele.&lt;/p&gt;</description></item><item><title>LLM local com Qwen e LangChain: agente sem APIs externas</title><link>https://gomesfellipe.github.io/post/2026-02-21-qwen-local-agent/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/post/2026-02-21-qwen-local-agent/</guid><description>&lt;div class="w3-panel w3-pale-amber w3-border"&gt;
&lt;p&gt;&lt;strong&gt;Série: LangChain — Agentes com Python&lt;/strong&gt; — &lt;a href="https://gomesfellipe.github.io/resources/langchain-series/"&gt;ver índice&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2024-04-20-sentiment-analysis-llama2/"&gt;Análise de Sentimentos com Llama2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2024-05-26-detec-o-de-linguagem-t-xica-com-o-llm-gemma-e-langchain/"&gt;Detecção de Linguagem Tóxica com Gemma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2025-05-04-bitcoin-agent/"&gt;Equipe Multiagente para Bitcoin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2025-10-26-telemarketing-agent/"&gt;Agente para Ligações de Telemarketing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;→ LLM Local com Qwen sem APIs&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;

&lt;div id="por-que-rodar-llms-localmente" class="section level1"&gt;
&lt;h1&gt;Por que rodar LLMs localmente?&lt;/h1&gt;
&lt;p&gt;Nos últimos anos, o mundo dos modelos de linguagem de grande porte (LLMs) deixou de ser um território exclusivo das gigantes americanas. Uma leva de modelos open-weight de origem chinesa como o &lt;a href="https://huggingface.co/Qwen"&gt;Qwen&lt;/a&gt; (Alibaba), o &lt;a href="https://huggingface.co/deepseek-ai"&gt;DeepSeek&lt;/a&gt; e o &lt;a href="https://huggingface.co/01-ai"&gt;Yi&lt;/a&gt; chegaram com qualidade surpreendente e, mais importante, com pesos disponíveis publicamente. Li sobre alguns deles em &lt;a href="https://elisaterumi.substack.com/p/5-modelos-chineses-que-voce-precisa"&gt;um post que apareceu no meu LinkedIn&lt;/a&gt; e fiquei curioso para testar: será que dá para rodar um desses modelos localmente no meu Mac e ainda plugar ele num agente LangChain funcional?&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gomesfellipe.github.io/post/2026-02-21-qwen-local-agent/feature.png"/></item><item><title>Análise de ligações de telemarketing com Whisper e LangChain</title><link>https://gomesfellipe.github.io/post/2025-10-26-telemarketing-agent/</link><pubDate>Wed, 26 Nov 2025 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/post/2025-10-26-telemarketing-agent/</guid><description>&lt;div class="w3-panel w3-pale-amber w3-border"&gt;
&lt;p&gt;&lt;strong&gt;Série: LangChain — Agentes com Python&lt;/strong&gt; — &lt;a href="https://gomesfellipe.github.io/resources/langchain-series/"&gt;ver índice&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2024-04-20-sentiment-analysis-llama2/"&gt;Análise de Sentimentos com Llama2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2024-05-26-detec-o-de-linguagem-t-xica-com-o-llm-gemma-e-langchain/"&gt;Detecção de Linguagem Tóxica com Gemma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2025-05-04-bitcoin-agent/"&gt;Equipe Multiagente para Bitcoin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;→ Agente para Ligações de Telemarketing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2026-02-21-qwen-local-agent/"&gt;LLM Local com Qwen sem APIs&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;

&lt;div id="por-que-analisar-ligações-de-telemarketing-com-ia" class="section level2"&gt;
&lt;h1&gt;Por que analisar ligações de telemarketing com IA?&lt;/h1&gt;
&lt;p&gt;Quem nunca recebeu aquela ligação de telemarketing no momento mais inoportuno? Seja oferecendo um cartão de crédito, cobrando uma dívida ou tentando vender internet, essas ligações fazem parte do nosso cotidiano. Mas você já parou para pensar na quantidade de informações valiosas que existem nessas conversas?&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gomesfellipe.github.io/post/2025-10-26-telemarketing-agent/feature.png"/></item><item><title>Análise de Sentimentos com um "ChatGPT" de Código Aberto</title><link>https://gomesfellipe.github.io/post/2024-04-20-sentiment-analysis-llama2/</link><pubDate>Sat, 20 Apr 2024 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/post/2024-04-20-sentiment-analysis-llama2/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;O modelo Llama2-7b-chat-hf foi executado localmente via Hugging Face Transformers para classificar textos como positivos, negativos ou neutros, sem custo de API.&lt;/li&gt;
&lt;li&gt;A abordagem foi avaliada contra o VADER (léxico clássico de análise de sentimentos) em um conjunto de avaliações de filmes em inglês, usando acurácia como métrica.&lt;/li&gt;
&lt;li&gt;O Llama2 superou o VADER na captura de ironia e contexto, mas com latência significativamente maior — evidenciando o trade-off entre profundidade semântica e velocidade de inferência.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;div class="w3-panel w3-pale-amber w3-border"&gt;
&lt;p&gt;&lt;strong&gt;Série: LangChain — Agentes com Python&lt;/strong&gt; — &lt;a href="https://gomesfellipe.github.io/resources/langchain-series/"&gt;ver índice&lt;/a&gt;&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gomesfellipe.github.io/post/2024-04-20-sentiment-analysis-llama2/feature.png"/></item><item><title>Série LangChain — Agentes com Python</title><link>https://gomesfellipe.github.io/resources/langchain-series/</link><pubDate>Sat, 20 Apr 2024 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/resources/langchain-series/</guid><description>&lt;p&gt;Posts desta série, do mais básico ao mais avançado:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2024-04-20-sentiment-analysis-llama2/" &gt;Análise de Sentimentos com Llama2 de Código Aberto&lt;/a&gt; — fundamentos: LLM open source + análise de texto&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2024-05-26-detec-o-de-linguagem-t-xica-com-o-llm-gemma-e-langchain/" &gt;Detecção de Linguagem Tóxica com Gemma e LangChain&lt;/a&gt; — classificação com prompt engineering&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2025-05-04-bitcoin-agent/" &gt;Equipe Multiagente de IA para Análise do Bitcoin&lt;/a&gt; — LangGraph: múltiplos agentes orquestrados&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2025-10-26-telemarketing-agent/" &gt;Agente para Análise de Ligações de Telemarketing&lt;/a&gt; — produção: Whisper + Pyannote + LangChain&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gomesfellipe.github.io/post/2026-02-21-qwen-local-agent/" &gt;Agente com LLM Local sem APIs Externas&lt;/a&gt; — local: Qwen + llama.cpp + GGUF&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Gerando arte com Inteligência Artificial</title><link>https://gomesfellipe.github.io/post/2022-08-08-dataart-primeiros-passos/</link><pubDate>Mon, 08 Aug 2022 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/post/2022-08-08-dataart-primeiros-passos/</guid><description>&lt;div id="TOC"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#introdu%C3%A7%C3%A3o" id="toc-introdução"&gt;Introdução&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dalle-2" id="toc-dalle-2"&gt;DALL·E 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#instru%C3%A7%C3%B5es-de-uso" id="toc-instruções-de-uso"&gt;Instruções de Uso&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#par%C3%A2metros" id="toc-parâmetros"&gt;Parâmetros&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#exemplos" id="toc-exemplos"&gt;Exemplos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dalle-mini-e-stable-diffusion" id="toc-dalle-mini-e-stable-diffusion"&gt;DALL·E Mini e Stable Diffusion&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#exemplos-1" id="toc-exemplos-1"&gt;Exemplos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#op%C3%A7%C3%B5es-alternativas" id="toc-opções-alternativas"&gt;Opções Alternativas&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#vqganclip" id="toc-vqganclip"&gt;VQGAN+CLIP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mais-par%C3%A2metros" id="toc-mais-parâmetros"&gt;Mais Parâmetros&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mais-exemplos" id="toc-mais-exemplos"&gt;Mais Exemplos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#discuss%C3%A3o-filos%C3%B3fica" id="toc-discussão-filosófica"&gt;Discussão Filosófica&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#conclus%C3%A3o" id="toc-conclusão"&gt;Conclusão&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#refer%C3%AAncias" id="toc-referências"&gt;Referências&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;style&gt;
.column4 {
 float: left;
 width: 33%;
 padding: 10px;
}

.column8 {
 float: left;
 width: 66%;
 padding: 10px;
}

.column6 {
 float: left;
 width: 50%;
 padding: 10px;
}

.row:after {
 content: "";
 display: table;
 clear: both;
}
&lt;/style&gt;
&lt;div id="introdução" class="section level2"&gt;
&lt;h1&gt;Introdução&lt;/h1&gt;
&lt;p&gt;Você já deve ter ouvido falar sobre uma &lt;a href="https://canaltech.com.br/inteligencia-artificial/inteligencia-artificial-gera-artes-super-realistas-a-partir-de-textos-e-imagens-213520/#:~:text=A%20empresa%20norte%2Damericana%20de,que%20tinha%20a%20mesma%20fun%C3%A7%C3%A3o."&gt;inteligência artificial que gera artes super-realistas a partir de textos e imagens&lt;/a&gt;. Hoje em dia já existem algumas opções como &lt;a href="https://openai.com/DALL%C2%B7E-2/"&gt;DALL·E 2&lt;/a&gt; (da OpenAI/Google) e a &lt;a href="https://arxiv.org/abs/2203.13131"&gt;Make-A-Scene&lt;/a&gt; (da Meta), e essas ferramentas são capazes de gerar versões e estilos diferentes de uma dada imagem ou ainda criar uma imagem com apenas uma breve descrição do resultado desejado. As imagens podem ser tão aleatórias quanto um “gato de óculos e uma coroa” (em homenagem ao dia dos gatos):&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gomesfellipe.github.io/post/2022-08-08-dataart-primeiros-passos/feature.png"/></item><item><title>Solução Final - Porto Seguro Data Challenge [3º lugar]</title><link>https://gomesfellipe.github.io/post/2021-11-01-solucao-final-porto-seguro-data-challenge/</link><pubDate>Mon, 01 Nov 2021 00:00:00 +0000</pubDate><guid>https://gomesfellipe.github.io/post/2021-11-01-solucao-final-porto-seguro-data-challenge/</guid><description>&lt;div id="TOC"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#introdu%C3%A7%C3%A3o" id="toc-introdução"&gt;Introdução&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#defini%C3%A7%C3%A3o-do-problema-de-neg%C3%B3cio" id="toc-definição-do-problema-de-negócio"&gt;Definição do problema de negócio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#an%C3%A1lise-explorat%C3%B3ria-em-r" id="toc-análise-exploratória-em-r"&gt;Análise Exploratória (em R)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#machine-learning-em-python" id="toc-machine-learning-em-python"&gt;Machine Learning (em Python)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#importar-depend%C3%AAncias" id="toc-importar-dependências"&gt;Importar dependências&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#stage-0-feature-extraction-com-knn" id="toc-stage-0-feature-extraction-com-knn"&gt;Stage 0: Feature Extraction com KNN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#stage-1-tuning-xgboost-com-optuna" id="toc-stage-1-tuning-xgboost-com-optuna"&gt;Stage 1: Tuning XGBoost com Optuna&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#stage-2-calcular-out-of-fold-shap-values" id="toc-stage-2-calcular-out-of-fold-shap-values"&gt;Stage 2: Calcular Out-Of-Fold SHAP values&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#stage-3-modelo-final-com-autogluon" id="toc-stage-3-modelo-final-com-autogluon"&gt;Stage 3: Modelo Final com AutoGluon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#conclus%C3%A3o" id="toc-conclusão"&gt;Conclusão&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#refer%C3%AAncias" id="toc-referências"&gt;Referências&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;style&gt;
.column {
float: left;
width: 50%;
padding: 10px;
}

.column4 {
float: left;
width: 20%;
padding: 10px;
}

.column8 {
float: left;
width: 80%;
padding: 10px;
}

.row:after {
content: "";
display: table;
clear: both;
}

.center {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
}
&lt;/style&gt;
&lt;hr /&gt;
&lt;div id="introdução" class="section level2"&gt;
&lt;h1&gt;Introdução&lt;/h1&gt;
&lt;div class="row"&gt;
&lt;div class="column8"&gt;
&lt;p&gt;Em Agosto e 2021 a Porto Seguro lançou um desafio no Kaggle que consistia em estimar a propensão de aquisição de novos produtos. Tratava-se de um problema de classificação e foi bem desafiador principalmente por 2 motivos:&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gomesfellipe.github.io/post/2021-11-01-solucao-final-porto-seguro-data-challenge/feature.png"/></item></channel></rss>