<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[JimmyLiao's memo (memo.jimmyliao.net)]]></title><description><![CDATA[Talks about Solutions, Data+AI in 5 minutes]]></description><link>https://memo.jimmyliao.net</link><image><url>https://substackcdn.com/image/fetch/$s_!7wBf!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg</url><title>JimmyLiao&apos;s memo (memo.jimmyliao.net)</title><link>https://memo.jimmyliao.net</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Apr 2026 08:40:08 GMT</lastBuildDate><atom:link href="https://memo.jimmyliao.net/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[JimmyLiao.net]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[jimmyliao@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[jimmyliao@substack.com]]></itunes:email><itunes:name><![CDATA[JimmyLiao(NET)]]></itunes:name></itunes:owner><itunes:author><![CDATA[JimmyLiao(NET)]]></itunes:author><googleplay:owner><![CDATA[jimmyliao@substack.com]]></googleplay:owner><googleplay:email><![CDATA[jimmyliao@substack.com]]></googleplay:email><googleplay:author><![CDATA[JimmyLiao(NET)]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[2026 丙午火馬年 寫在收假前]]></title><description><![CDATA[&#20063;&#35377;&#20043;&#24460;&#26371;&#23531;&#19968;&#20123;&#29983;&#27963;&#33287;&#38620;&#35527;]]></description><link>https://memo.jimmyliao.net/p/2026</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/2026</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Sat, 21 Feb 2026 17:42:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>&#25972;&#20491;&#36786;&#26310;&#20551;&#26399;, &#21051;&#24847;&#19981;&#30896;&#20160;&#40636; AI Coding, &#40845;&#34662;&#20160;&#40636;&#30340;. &#36523;&#24515;&#38728;&#29554;&#24471;&#24505;&#24213;&#25918;&#39686;, <br><br>&#36889;&#24190;&#24180;&#26368;&#22823;&#30340;&#39636;&#35469;&#26159;, &#33287;&#20854;&#25343;&#20358;&#36319; AI &#19981;&#26039;&#30340;&#23565;&#35441;, &#22894;&#25136;, &#23531;&#25187; (&#36942;&#21435;&#25976;&#21313;&#24180;&#30340;&#36328;&#24180;, &#25105;&#22909;&#20687;&#20063;&#37117;&#36996;&#22312; commit code) , &#27794;&#20160;&#40636;&#19968;&#23450;&#35201;&#25918;&#26820;&#25481;&#33287;&#23478;&#20154;&#20677;&#26377;&#30340;&#30456;&#34389;&#26178;&#38291;, &#23588;&#20854;&#26159;, &#36899;&#32396;&#20551;&#26399;&#35242;&#26379;&#22909;&#21451;&#20063;&#37117;&#21083;&#22909;&#34389;&#26044;&#25918;&#20551;&#27169;&#24335;. &#27794;&#20160;&#40636;&#29702;&#30001;&#26159;&#20320;&#25033;&#35442;&#25918;&#25481;&#36319;&#26379;&#21451;&#22909;&#22909;&#32842;&#19978;&#22825;&#30340;&#38627;&#24471;&#27231;&#26371;.<br></p><p>&#33021;&#22810;&#36319;&#23478;&#20154;&#25265;&#25265;, &#32842;&#32842;&#22825;, &#23601;&#35201;&#19981;&#24597;&#32670;&#30340;&#34920;&#36948;. &#23478;&#23478;&#27704;&#36960;&#26377;&#38627;&#24565;&#30340;&#32147;, &#20063;&#35377;&#32317;&#26159;&#26377;&#38627;&#35299;&#30340; GAP issues, &#21152;&#19978;&#23565;&#26044;&#23475;&#32670;&#20860;&#32317;&#26159;&#31070;&#36938;&#30340; i &#22411;&#20154;, &#27599;&#27425;&#35242;&#21451;&#32858;&#26371;&#30456;&#30070;&#32771;&#39511;&#32784;&#24515;&#21834;, &#20294;&#26159;&#36523;&#28858;&#24050;&#32147;&#26159;&#20013;&#24180;&#22823;&#21460;&#36942;&#20358;&#20154;&#30340;&#32147;&#39511;, &#21487;&#20197;&#36319;&#22823;&#23478;&#35498;, &#23478;&#24237;&#26178;&#20809;&#25165;&#26159;&#26368;&#37325;&#35201;&#30340;. &#21508;&#20301;&#65281;&#38500;&#38750;&#20320;&#26159;&#36996;&#27794;&#26377;&#23567;&#23401;, &#38263;&#36649;&#24180;&#32000;&#36996;&#24180;&#36629;, &#26377;&#39192;&#35029;&#25582;&#38669;&#20320;&#30340;&#20551;&#26399; + &#21482;&#38656;&#35201;&#31649;&#22909;&#33258;&#24049;&#30340;&#24180;&#36629;&#20154;! </p><p>&#24180;&#36629;&#26178;&#38291;&#25104;&#26412;&#20302;, &#23601;&#35201;&#36245;&#24555;&#25226;&#33258;&#24049;&#30340;&#26178;&#38291;&#25104;&#26412;&#25289;&#39640;, &#20302;&#30340;&#20219;&#21209;&#23601;&#36245;&#24555; Delegate &#20986;&#21435;. &#20294;&#26159; &#20294;&#26159; &#33287;&#23478;&#20154;&#30456;&#34389;&#26178;&#38291;&#23601;&#27704;&#36960;&#26159;&#28961;&#20729;, &#28961;&#27861;&#29992;&#37329;&#37666;&#35413;&#37327;&#30340;, </p><p>&#35352;&#24471;, &#26178;&#38291;&#27704;&#36960;&#26159;&#26368;&#23542;&#36020;&#30340;. &#36234;&#26159;&#35201;&#25226;&#25569;&#26178;&#38291;, &#36234;&#35201;&#25026;&#24471;&#26178;&#38291;&#23601;&#35442;&#33457;&#22312;&#37325;&#35201;&#30340;&#20154;&#20107;&#29289;&#19978;.</p><p>&#32780;&#19988;, &#36523;&#28858;&#20154; (human being) &#33287;&#27231;&#22120; (&#20063;&#38920;&#27492;&#26178;&#27492;&#21051;&#36996;&#31281;&#28858; GenAI &#21543;) &#30340;&#24046;&#21029;&#23601;&#26159;, &#20320;&#27704;&#36960;&#26377;&#33258;&#24049;&#25033;&#35442;&#22312;&#20046;&#30340;&#20154;/&#20107;/&#29289;. &#20445;&#25345;&#20154;&#24615;!</p><p><br><br>&#22823;&#23478;&#26032;&#24180;&#24555;&#27138;!</p>]]></content:encoded></item><item><title><![CDATA[[GCP] 如何有系統的管理 GCP Project 與 Billing Account]]></title><description><![CDATA[&#21443;&#21152;&#35377;&#22810;&#22580; GDG &#27963;&#21205;, &#25343;&#20102;&#35377;&#22810;&#27425;&#30340;&#35430;&#29992; Credit &#21371;&#32317;&#26159;&#34987; Trial Billing Account &#28153;&#27794;&#21966;]]></description><link>https://memo.jimmyliao.net/p/gcp-gcp-project-billing-account</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/gcp-gcp-project-billing-account</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Fri, 13 Feb 2026 15:50:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#10024; <strong>&#26356;&#22810;&#25216;&#34899;&#35299;&#27770;&#26041;&#26696;</strong> &#8594; [<a href="https://leapdesign.ai/">https://leapdesign.ai/</a>]</p><div><hr></div><ul><li><p>&#127775; &#20998;&#20139;&#32102;&#38656;&#35201;&#30340;&#26379;&#21451;</p></li><li><p>&#128140; [<a href="https://leapdesign.ai/zh/subscribe/">&#35330;&#38321;&#38651;&#23376;&#22577;</a>](<a href="https://leapdesign.ai/zh/subscribe/">https://leapdesign.ai/zh/subscribe/</a>)&#65292;&#27599;&#36913;&#25910;&#21040;&#26368;&#26032;&#25216;&#34899;&#25991;&#31456;</p></li></ul><div><hr></div><p></p><p>&#22823;&#23478;&#22909;&#65292;&#21448;&#26159;&#26032;&#30340;&#19968;&#24180;&#65292;&#20063;&#21363;&#23559;&#38283;&#22987; BuildWithAI &#30340;&#27963;&#21205;&#65292;&#22823;&#23478;&#25033;&#35442;&#37117;&#26371;&#36879;&#36942;&#21443;&#21152; Google Developers Group &#33289;&#36774;&#30340; Hands-On (&#21205;&#25163;&#20570;) &#25343;&#21040;&#35430;&#29992; Google Cloud &#30340; Credit (&#40670;&#25976;)&#12290;&#36889;&#31687;&#21487;&#20197;&#24171;&#21161;&#20320;&#26377;&#25928;&#29575;&#30340;&#31649;&#29702;&#25343;&#21040;&#30340; Billing Account&#12290;</p><p>GCP &#30340;&#23560;&#26696;&#33287;&#24115;&#21934;&#24115;&#25142;&#25505;&#19968;&#23565;&#22810;&#38364;&#32879;&#65292;&#38614;&#28982;&#35430;&#29992;&#38989;&#24230;&#28961;&#27861;&#21512;&#20341;&#21040;&#21516;&#19968;&#20491; Billing Account&#65292;&#20294;&#25105;&#20497;&#21487;&#20197;&#36879;&#36942;&#12300;&#37325;&#26032;&#21629;&#21517;&#12301;&#33287;&#12300;&#38728;&#27963;&#20999;&#25563;&#36899;&#32080;&#12301;&#20358;&#20778;&#21270;&#31649;&#29702;&#25928;&#29575;&#12290;</p><p>&#23559;&#38928;&#35373;&#21517;&#31281;&#25913;&#28858;&#20855;&#36776;&#35672;&#24230;&#30340;&#27161;&#31844;&#65288;&#22914;&#65306;<code>Trial_End_202605xx</code>&#65289;&#65292;&#33021;&#35731;&#20320;&#22312;&#22810;&#20491;&#23560;&#26696;&#28204;&#35430;&#26178;&#65292;&#21487;&#20197;&#36984;&#29992;&#21040;&#26368;&#38656;&#35201;&#28040;&#32791;&#25481;&#30340; Billing Account &#65292;&#26368;&#22823;&#21270;&#20320;&#30340;&#20351;&#29992;&#29575;&#12290;</p><h3>&#29694;&#27841;: &#27599;&#27425;&#20812;&#25563;&#20043;&#24460;&#65292;&#37117;&#26371;&#29986;&#29983;&#19968;&#32068; Google Cloud Platform Trial Billing Account (&#25110;&#26159;&#23565;&#25033;&#30340;&#20013;&#25991;&#32763;&#35695;&#21517;&#31281;)</h3><p>&#25110;&#26159;&#20320;&#20063;&#21487;&#20197;&#24478;&#36889;&#20491;&#32178;&#22336; <a href="https://console.cloud.google.com/billing">https://console.cloud.google.com/billing</a> &#30475;&#21040;</p><p>or &#40670;&#36984;&#21491;&#19978;&#35282;&#30340; &#8230;. &gt; Billing account management</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lYYy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lYYy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png 424w, https://substackcdn.com/image/fetch/$s_!lYYy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png 848w, https://substackcdn.com/image/fetch/$s_!lYYy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png 1272w, https://substackcdn.com/image/fetch/$s_!lYYy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lYYy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png" width="346" height="134.55555555555554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:252,&quot;width&quot;:648,&quot;resizeWidth&quot;:346,&quot;bytes&quot;:39448,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!lYYy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png 424w, https://substackcdn.com/image/fetch/$s_!lYYy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png 848w, https://substackcdn.com/image/fetch/$s_!lYYy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png 1272w, https://substackcdn.com/image/fetch/$s_!lYYy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67b54ae4-c671-4e90-a66a-d389541ce1fe_648x252.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#23601;&#21487;&#20197;&#30475;&#21040;&#20320;&#24115;&#34399;&#24213;&#19979;&#25152;&#26377;&#30340; Billing Accounts</p><h4>&#40670;&#36984;&#20854;&#20013;&#19968;&#20491;</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-Q8m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-Q8m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png 424w, https://substackcdn.com/image/fetch/$s_!-Q8m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png 848w, https://substackcdn.com/image/fetch/$s_!-Q8m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png 1272w, https://substackcdn.com/image/fetch/$s_!-Q8m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-Q8m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png" width="1088" height="556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:556,&quot;width&quot;:1088,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157155,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-Q8m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png 424w, https://substackcdn.com/image/fetch/$s_!-Q8m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png 848w, https://substackcdn.com/image/fetch/$s_!-Q8m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png 1272w, https://substackcdn.com/image/fetch/$s_!-Q8m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2671a02-7ccc-406f-b375-4587ce0d115a_1088x556.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4></h4><h4>&#40670;&#36984; Manage billing account</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mqm6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mqm6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png 424w, https://substackcdn.com/image/fetch/$s_!mqm6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png 848w, https://substackcdn.com/image/fetch/$s_!mqm6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png 1272w, https://substackcdn.com/image/fetch/$s_!mqm6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mqm6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png" width="1300" height="490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:490,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65068,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mqm6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png 424w, https://substackcdn.com/image/fetch/$s_!mqm6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png 848w, https://substackcdn.com/image/fetch/$s_!mqm6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png 1272w, https://substackcdn.com/image/fetch/$s_!mqm6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e05b4-ef74-4c07-acd2-490a80443969_1300x490.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h4>&#40670; <code>Rename billing account</code></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!axV4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!axV4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png 424w, https://substackcdn.com/image/fetch/$s_!axV4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png 848w, https://substackcdn.com/image/fetch/$s_!axV4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png 1272w, https://substackcdn.com/image/fetch/$s_!axV4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!axV4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png" width="1456" height="399" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:399,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:117729,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!axV4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png 424w, https://substackcdn.com/image/fetch/$s_!axV4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png 848w, https://substackcdn.com/image/fetch/$s_!axV4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png 1272w, https://substackcdn.com/image/fetch/$s_!axV4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F292dd7ea-5b9c-4c58-80bd-35a41b7d1feb_1926x528.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>&#36889;&#37002;&#21487;&#20197;&#36664;&#20837;&#23481;&#26131;&#31649;&#29702;&#30340;&#21517;&#31281;, &#33289;&#20363;: Credit &#21040;&#26399;&#26178;&#38291;</h4><p>&#20320;&#21487;&#20197;&#24478;&#24038;&#26041;&#36984;&#21934;&#30475;&#21040; <code>Credits</code> &#27298;&#26597;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oLom!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oLom!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png 424w, https://substackcdn.com/image/fetch/$s_!oLom!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png 848w, https://substackcdn.com/image/fetch/$s_!oLom!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png 1272w, https://substackcdn.com/image/fetch/$s_!oLom!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oLom!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png" width="208" height="478.82448979591834" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1128,&quot;width&quot;:490,&quot;resizeWidth&quot;:208,&quot;bytes&quot;:88591,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oLom!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png 424w, https://substackcdn.com/image/fetch/$s_!oLom!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png 848w, https://substackcdn.com/image/fetch/$s_!oLom!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png 1272w, https://substackcdn.com/image/fetch/$s_!oLom!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab960b1f-c7fd-4be3-9d07-37a8b076890b_490x1128.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>&#33289;&#20363;&#20358;&#35498;&#65292;&#25105;&#26159;&#21629;&#21517;&#28858; <code>Trial_Exp_yyyymmdd</code></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2GG4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2GG4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png 424w, https://substackcdn.com/image/fetch/$s_!2GG4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png 848w, https://substackcdn.com/image/fetch/$s_!2GG4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png 1272w, https://substackcdn.com/image/fetch/$s_!2GG4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2GG4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png" width="1456" height="822" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:822,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:213898,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2GG4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png 424w, https://substackcdn.com/image/fetch/$s_!2GG4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png 848w, https://substackcdn.com/image/fetch/$s_!2GG4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png 1272w, https://substackcdn.com/image/fetch/$s_!2GG4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125e3777-f82c-43e0-8967-a524f6ee63ce_1864x1052.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><h4>&#36889;&#27171;&#22312; GCP Project &#36984;&#25799; billing account &#26178;, &#23601;&#26371;&#26356;&#26041;&#20415;&#20102;!</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mUtT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mUtT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png 424w, https://substackcdn.com/image/fetch/$s_!mUtT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png 848w, https://substackcdn.com/image/fetch/$s_!mUtT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png 1272w, https://substackcdn.com/image/fetch/$s_!mUtT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mUtT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png" width="970" height="1466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1466,&quot;width&quot;:970,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155163,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mUtT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png 424w, https://substackcdn.com/image/fetch/$s_!mUtT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png 848w, https://substackcdn.com/image/fetch/$s_!mUtT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png 1272w, https://substackcdn.com/image/fetch/$s_!mUtT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F737886cc-37f6-4439-bd60-ec38ef90d1e9_970x1466.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>(Optional) &#26032;&#22686; GCP Project &#20006;&#36899;&#32080;&#21040; Billing account</h4><p>&#25509;&#33879;&#65292;&#20320;&#21487;&#20197;&#26032;&#22686;&#19968;&#20491; GCP project&#65292;&#25628;&#23563; <code>Create Project</code> </p><p>&#25110;&#26159;&#32178;&#22336; <a href="https://console.cloud.google.com/projectcreate">https://console.cloud.google.com/projectcreate</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CXmK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CXmK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png 424w, https://substackcdn.com/image/fetch/$s_!CXmK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png 848w, https://substackcdn.com/image/fetch/$s_!CXmK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png 1272w, https://substackcdn.com/image/fetch/$s_!CXmK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CXmK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png" width="656" height="235.12079207920792" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:362,&quot;width&quot;:1010,&quot;resizeWidth&quot;:656,&quot;bytes&quot;:61429,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CXmK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png 424w, https://substackcdn.com/image/fetch/$s_!CXmK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png 848w, https://substackcdn.com/image/fetch/$s_!CXmK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png 1272w, https://substackcdn.com/image/fetch/$s_!CXmK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F283e38c4-c9b6-4c6e-af01-ff95146823f9_1010x362.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!--zR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!--zR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png 424w, https://substackcdn.com/image/fetch/$s_!--zR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png 848w, https://substackcdn.com/image/fetch/$s_!--zR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png 1272w, https://substackcdn.com/image/fetch/$s_!--zR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!--zR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png" width="1132" height="1168" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1168,&quot;width&quot;:1132,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109803,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!--zR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png 424w, https://substackcdn.com/image/fetch/$s_!--zR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png 848w, https://substackcdn.com/image/fetch/$s_!--zR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png 1272w, https://substackcdn.com/image/fetch/$s_!--zR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81751f8c-7efe-4fb2-8e37-e6babc5e1aa0_1132x1168.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h4>&#20043;&#24460;&#30070; Billing account &#30340; Credit &#20351;&#29992;&#23436;&#20043;&#24460;&#65292;&#24819;&#35201;&#20999;&#25563;&#21040;&#20854;&#20182; Billing account</h4><p>&#25628;&#23563; Billing &gt; Manage billing accounts</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!al9s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!al9s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png 424w, https://substackcdn.com/image/fetch/$s_!al9s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png 848w, https://substackcdn.com/image/fetch/$s_!al9s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png 1272w, https://substackcdn.com/image/fetch/$s_!al9s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!al9s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png" width="1456" height="520" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:520,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:75673,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!al9s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png 424w, https://substackcdn.com/image/fetch/$s_!al9s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png 848w, https://substackcdn.com/image/fetch/$s_!al9s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png 1272w, https://substackcdn.com/image/fetch/$s_!al9s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205ca1c5-1391-4126-aa5e-60ae62de342b_1770x632.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#25214;&#21040;&#35442;&#23560;&#26696;, &#21491;&#26041;&#30340; &#8230; &#40670;&#36984; Change billing &#21363;&#21487;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o2Q1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o2Q1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png 424w, https://substackcdn.com/image/fetch/$s_!o2Q1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png 848w, https://substackcdn.com/image/fetch/$s_!o2Q1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png 1272w, https://substackcdn.com/image/fetch/$s_!o2Q1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o2Q1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png" width="1456" height="583" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:583,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:167331,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/187865699?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!o2Q1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png 424w, https://substackcdn.com/image/fetch/$s_!o2Q1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png 848w, https://substackcdn.com/image/fetch/$s_!o2Q1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png 1272w, https://substackcdn.com/image/fetch/$s_!o2Q1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcab980e6-a652-4990-b968-f2ed040ad72c_1992x798.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p>&#10024; <strong>&#26356;&#22810;&#25216;&#34899;&#35299;&#27770;&#26041;&#26696;</strong> &#8594; [<a href="https://leapdesign.ai/">https://leapdesign.ai/</a>]</p><div><hr></div><ul><li><p>&#127775; &#20998;&#20139;&#32102;&#38656;&#35201;&#30340;&#26379;&#21451;</p></li><li><p>&#128140; [<a href="https://leapdesign.ai/zh/subscribe/">&#35330;&#38321;&#38651;&#23376;&#22577;</a>](<a href="https://leapdesign.ai/zh/subscribe/">https://leapdesign.ai/zh/subscribe/</a>)&#65292;&#27599;&#36913;&#25910;&#21040;&#26368;&#26032;&#25216;&#34899;&#25991;&#31456;</p></li></ul><div><hr></div><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[[Looplia] AI Code Review + Gemini Proxy]]></title><description><![CDATA[&#29992; Gemini 2.5 Flash + Anthropic API &#30456;&#23481;&#23652;&#65292;&#21033;&#29992; Looplia &#30340; workflow cli &#20570; Code Review]]></description><link>https://memo.jimmyliao.net/p/looplia-ai-code-review-gemini-proxy</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/looplia-ai-code-review-gemini-proxy</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Wed, 11 Feb 2026 16:11:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h2><strong>&#128172; &#35258;&#24471;&#26377;&#24171;&#21161;&#21966;&#65311;</strong></h2><ul><li><p>&#127775; &#20998;&#20139;&#32102;&#38656;&#35201;&#30340;&#26379;&#21451;</p></li><li><p>&#128140; [<a href="https://leapdesign.ai/zh/subscribe/">&#35330;&#38321;&#38651;&#23376;&#22577;</a>](<a href="https://leapdesign.ai/zh/subscribe/">https://leapdesign.ai/zh/subscribe/</a>)&#65292;&#27599;&#36913;&#25910;&#21040;&#26368;&#26032;&#25216;&#34899;&#25991;&#31456;</p></li></ul><div><hr></div><p>&#10024; <strong>&#26356;&#22810;&#24555;&#36895;&#25216;&#34899;&#35299;&#27770;&#26041;&#26696;</strong> &#8594; [<a href="https://leapdesign.ai/">https://leapdesign.ai/</a>)</p><h2><strong>&#9889; &#24555;&#36895;&#29256;</strong></h2><p>Looplia + Gemini Proxy&#65292;&#28961;&#32299;&#20999;&#25563;</p><p><strong>&#27493;&#39519;</strong>&#65306;</p><pre><code># 1. &#35373;&#23450; Gemini API key

export GEMINI_API_KEY=&#8221;AIzaSy...&#8221;

# 2. &#21855;&#21205; proxy&#65288;Anthropic API &#30456;&#23481;&#23652;&#65289;

npm install -g @vitorcen/gemini-cli-anthropic

gemini-cli-anthropic  # &#30435;&#32893; port 41242

# 3. &#20351;&#29992; Claude API &#26684;&#24335;&#21628;&#21483; Gemini

curl -X POST http://127.0.0.1:41242/v1/messages \

  -H &#8220;x-api-key: dummy&#8221; \

-H &#8220;anthropic-version: 2023-06-01&#8221; \

  -d &#8216;{&#8221;model&#8221;:&#8221;gemini-2.5-flash&#8221;,&#8221;messages&#8221;:[...]}&#8217;</code></pre><div><hr></div><h2><strong>&#128214; &#23436;&#25972;&#29256;</strong></h2><h3>&#21033;&#29992; Looplia &#30340; workflow &#21033;&#29992; AI code review&#65292;<strong>Gemini &#25552;&#20379;&#26356;&#22823;&#30340; context &#33287;&#22810;&#27169;&#24907;&#29702;&#35299;</strong></h3><p></p><p>&#26412;&#25991;&#29992; <strong>gemini-cli-anthropic</strong> &#25552;&#20379; <strong>Anthropic API &#30456;&#23481;&#23652;</strong>&#65292;&#28961;&#32299;&#20351;&#29992; Looplia&#12290;</p><blockquote><p>&#128161; <strong>&#36969;&#21512;&#35504;&#65311;</strong></p><ul><li><p>&#24819;&#20351;&#29992; Gemini 2.5 Flash &#36914;&#34892; code review</p></li><li><p>&#21407;&#26377; Gemini &#29983;&#24907;&#31995;&#30340;&#24819;&#20351;&#29992; Looplia &#30340; workflow cli</p></li></ul></blockquote><div><hr></div><h2><strong>&#128273; Part 1: &#35373;&#23450; Gemini API</strong></h2><h3><strong>&#27493;&#39519; 1&#65306;&#29554;&#21462; Gemini API Key</strong></h3><p>&#36889;&#19981;&#29992;&#22810;&#35498;, &#21040; <a href="https://ai.dev/apikey">https://ai.dev/apikey</a></p><h3><strong>&#27493;&#39519; 2&#65306;&#35373;&#23450;&#29872;&#22659;&#35722;&#25976;</strong></h3><pre><code>export GEMINI_API_KEY=&#8221;AIxx_gxxx&#8221;

# &#27704;&#20037;&#20445;&#23384;

echo &#8216;export GEMINI_API_KEY=&#8221;AIzaSy...&#8221;&#8217; &gt;&gt; ~/.zshrc

source ~/.zshrc</code></pre><h3><strong>&#9989; &#39511;&#35657; API Key</strong></h3><pre><code># &#31777;&#21934;&#28204;&#35430;

curl -X POST &#8220;https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${GEMINI_API_KEY}&#8221; \

  -H &#8216;Content-Type: application/json&#8217; \

-d &#8216;{&#8221;contents&#8221;:[{&#8221;parts&#8221;:[{&#8221;text&#8221;:&#8221;Hello&#8221;}]}]}&#8217;</code></pre><p></p><div><hr></div><p></p><h2><strong>&#128640; Part 2: &#37096;&#32626; gemini-cli-anthropic Proxy</strong></h2><h3><strong>&#20160;&#40636;&#26159; gemini-cli-anthropic&#65311;</strong></h3><p>[<a href="https://github.com/vitorcen/gemini-cli-anthropic">gemini-cli-anthropic</a>] &#26159;&#19968;&#20491; proxy server&#65292;&#25552;&#20379;&#65306;</p><ul><li><p><strong>Anthropic API &#30456;&#23481;&#23652;</strong>- &#20351;&#29992; Claude API &#26684;&#24335;&#21628;&#21483; Gemini</p></li><li><p><strong>&#28961;&#32299;&#20999;&#25563;</strong> - &#29694;&#26377; Claude &#24037;&#20855;&#28961;&#38656;&#20462;&#25913;&#21363;&#21487;&#20351;&#29992; Gemini</p></li><li><p><strong>&#23436;&#25972;&#25903;&#25588;</strong> - streaming&#12289;tool use&#12289;multimodal &#31561;&#21151;&#33021;</p></li></ul><h3><strong>&#26550;&#27083;&#22294;</strong></h3><pre><code>Client (Claude API format)

    &#8595;

gemini-cli-anthropic proxy (port 41242)

    &#8595; (&#36681;&#25563;&#26684;&#24335;)

Google Gemini API

    &#8595;

Response (Claude API format)</code></pre><p></p><h3><strong>&#27493;&#39519; 1&#65306;&#23433;&#35037; (&#26041;&#24335; A - NPM &#20840;&#22495;&#23433;&#35037;)</strong></h3><pre><code>npm install -g @vitorcen/gemini-cli-anthropic</code></pre><h3><strong>&#27493;&#39519; 2&#65306;&#21855;&#21205; Proxy Server</strong></h3><pre><code>gemini-cli-anthropic

# &#36664;&#20986;&#65306;

# Server listening on port 41242

# Using Gemini API Key: AIzaSy...xxx</code></pre><h3><strong>&#27493;&#39519; 1-2&#65306;&#24478;&#21407;&#22987;&#30908;&#23433;&#35037; (&#26041;&#24335; B)</strong></h3><pre><code># Clone repository with submodules

git clone --recurse-submodules https://github.com/vitorcen/gemini-cli-anthropic.git

cd gemini-cli-anthropic

# &#23433;&#35037;&#30456;&#20381;&#22871;&#20214;

npm install

# &#23433;&#35037; gemini-cli submodule

cd gemini-cli

npm install

cd ..

# &#21855;&#21205; server

npm start</code></pre><p><strong>&#38928;&#26399;&#36664;&#20986;</strong>&#65306;</p><pre><code>&#128640; Gemini CLI Anthropic Proxy Server

&#128225; Listening on: http://127.0.0.1:41242

&#128273; Using Gemini API Key: AIzaSy...xxx

&#9989; Server ready!</code></pre><p></p><h3><strong>&#27493;&#39519; 3&#65306;&#39511;&#35657; Proxy</strong></h3><p>&#28204;&#35430; proxy &#26159;&#21542;&#27491;&#24120;&#36939;&#20316;&#65306;</p><pre><code>curl -X POST http://127.0.0.1:41242/v1/messages \

  -H &#8220;Content-Type: application/json&#8221; \

-H &#8220;x-api-key: dummy&#8221; \

  -H &#8220;anthropic-version: 2023-06-01&#8221; \

-d &#8216;{

    &#8220;model&#8221;: &#8220;gemini-2.5-flash&#8221;,

    &#8220;max_tokens&#8221;: 1024,

    &#8220;messages&#8221;: [{

      &#8220;role&#8221;: &#8220;user&#8221;,

      &#8220;content&#8221;: &#8220;&#20320;&#22909;&#65292;&#35531;&#29992;&#32321;&#39636;&#20013;&#25991;&#22238;&#31572;&#65306;1+1=?&#8221;

    }]

  }&#8217;</code></pre><p></p><p><strong>&#38928;&#26399;&#22238;&#25033;</strong>&#65306;</p><pre><code>{

&#8220;id&#8221;: &#8220;msg_...&#8221;,

&#8220;type&#8221;: &#8220;message&#8221;,

&#8220;role&#8221;: &#8220;assistant&#8221;,

&#8220;content&#8221;: [{

&#8220;type&#8221;: &#8220;text&#8221;,

&#8220;text&#8221;: &#8220;1 + 1 &#31561;&#26044; &#20108;&#12290;&#8221;

  }],

&#8220;model&#8221;: &#8220;gemini-2.5-flash&#8221;,

&#8220;usage&#8221;: {

&#8220;input_tokens&#8221;: 15,

&#8220;output_tokens&#8221;: 8

  }

}</code></pre><p></p><p>&#9989; &#25104;&#21151;&#65281;Proxy &#27491;&#24120;&#36939;&#20316;&#19988;&#25903;&#25588;&#32321;&#39636;&#20013;&#25991;&#12290;</p><div><hr></div><h2><strong>&#128221; Part 3: &#23526;&#29694; Code Review</strong></h2><h3><strong>Python &#23526;&#20316;&#65288;&#23436;&#25972;&#31684;&#20363;&#65289;</strong></h3><p>&#21109;&#24314; `gemini-review.py`&#65306;</p><pre><code>#!/usr/bin/env python3

import json

import urllib.request

# &#35712;&#21462;&#35201;&#23529;&#26597;&#30340;&#31243;&#24335;&#30908;

with open(&#8217;smart-code-review.sh&#8217;, &#8216;r&#8217;) as f:

    code = f.read()[:1000]  # &#21069; 1000 &#23383;&#20803;

# &#27083;&#24314;&#35531;&#27714;

data = {

&#8220;model&#8221;: &#8220;gemini-2.5-flash&#8221;,

&#8220;max_tokens&#8221;: 4096,

&#8220;messages&#8221;: [{

&#8220;role&#8221;: &#8220;user&#8221;,

&#8220;content&#8221;: f&#8220;&#8221;&#8220;&#35531;&#23529;&#26597;&#20197;&#19979;&#31243;&#24335;&#30908;&#30340;&#21697;&#36074;&#12289;&#23433;&#20840;&#24615;&#21644;&#21487;&#35712;&#24615;&#65292;&#29992;&#32321;&#39636;&#20013;&#25991;&#35443;&#32048;&#22238;&#31572;&#65306;

{code}

&#35531;&#25552;&#20379;&#65306;

1. &#31243;&#24335;&#30908;&#21697;&#36074;&#35413;&#20272;&#65288;1-10&#20998;&#65289;

2. &#23433;&#20840;&#24615;&#21839;&#38988;&#65288;&#22914;&#26377;&#65289;

3. &#21487;&#35712;&#24615;&#25913;&#36914;&#24314;&#35696;

4. &#26368;&#20339;&#23526;&#36368;&#24314;&#35696;

5. &#20778;&#20808;&#32026;&#27161;&#35387;&#65288;P0/P1/P2&#65289;

&#8220;&#8221;&#8220;

    }]

}

# &#30332;&#36865;&#35531;&#27714;&#21040; proxy

req = urllib.request.Request(

&#8216;http://127.0.0.1:41242/v1/messages&#8217;,

    data=json.dumps(data).encode(&#8217;utf-8&#8217;),

    headers={

&#8216;Content-Type&#8217;: &#8216;application/json&#8217;,

&#8216;x-api-key&#8217;: &#8216;dummy&#8217;,  # proxy &#19981;&#38656;&#35201;&#30495;&#23526; API key

&#8216;anthropic-version&#8217;: &#8216;2023-06-01&#8217;

    }

)

print(&#8221;&#128269; &#38283;&#22987; Code Review...&#8221;)

print(&#8221;&#128225; &#20351;&#29992; Gemini 2.5 Flash via Proxy\n&#8221;)

with urllib.request.urlopen(req) as response:

    result = json.loads(response.read())

# &#39023;&#31034;&#23529;&#26597;&#32080;&#26524;

print(&#8221;=&#8221; * 60)

print(&#8221;&#128203; CODE REVIEW REPORT&#8221;)

print(&#8221;=&#8221; * 60)

print(result[&#8217;content&#8217;][0][&#8217;text&#8217;])

print(&#8221;\n&#8221; + &#8220;=&#8221; * 60)

# &#39023;&#31034;&#20351;&#29992;&#32113;&#35336;

    usage = result[&#8217;usage&#8217;]

print(f&#8220;\n&#128202; Token &#20351;&#29992;&#24773;&#27841;&#65306;&#8221;)

print(f&#8220;   - Input tokens: {usage[&#8217;input_tokens&#8217;]}&#8221;)

print(f&#8220;   - Output tokens: {usage[&#8217;output_tokens&#8217;]}&#8221;)

print(f&#8220;   - Total: {usage[&#8217;input_tokens&#8217;] + usage[&#8217;output_tokens&#8217;]}&#8221;)</code></pre><p></p><h3><strong>Bash &#23526;&#20316;</strong></h3><p>&#21109;&#24314; `review-test.sh`&#65306;</p><pre><code>#!/bin/bash

CODE=$(cat ~/dot-agents-test/smart-code-review.sh | head -30)

curl -X POST http://127.0.0.1:41242/v1/messages \

  -H &#8220;Content-Type: application/json&#8221; \

-H &#8220;x-api-key: dummy&#8221; \

  -H &#8220;anthropic-version: 2023-06-01&#8221; \

-d @- &lt;&lt; JSON | jq -r &#8216;.content[0].text&#8217;

{

  &#8220;model&#8221;: &#8220;gemini-2.5-flash&#8221;,

  &#8220;max_tokens&#8221;: 4096,

  &#8220;messages&#8221;: [{

    &#8220;role&#8221;: &#8220;user&#8221;,

    &#8220;content&#8221;: &#8220;&#35531;&#23529;&#26597;&#20197;&#19979;&#31243;&#24335;&#30908;&#30340;&#21697;&#36074;&#12289;&#23433;&#20840;&#24615;&#21644;&#21487;&#35712;&#24615;&#65292;&#29992;&#32321;&#39636;&#20013;&#25991;&#35443;&#32048;&#22238;&#31572;&#65306;\n\n${CODE}&#8221;

  }]

}

</code></pre><p></p><div><hr></div><h2><strong>&#129514; Part 4: &#23526;&#38555;&#28204;&#35430;&#32080;&#26524;</strong></h2><h3><strong>&#22519;&#34892;&#28204;&#35430;</strong></h3><pre><code>cd ~/dot-agents-test

python3 gemini-proxy-review.py article-1-claude-subscription-code-review.md
</code></pre><p></p><h3><strong>&#28204;&#35430;&#36664;&#20986;&#65288;&#23526;&#28204;&#32080;&#26524;&#65289;</strong></h3><pre><code>&#128269; &#38283;&#22987; Code Review...

&#128225; &#20351;&#29992; Gemini 2.5 Flash via Proxy

============================================================

&#128203; CODE REVIEW REPORT

============================================================

### &#31243;&#24335;&#30908;&#21697;&#36074;&#35413;&#20272; (&#20998;&#25976;&#65306;7/10)

&#36889;&#20221;&#25945;&#23416;&#25991;&#31456;&#30340;&#32080;&#27083;&#28165;&#26224;&#65292;&#20998;&#28858;&#24555;&#36895;&#29256;&#21644;&#23436;&#25972;&#29256;&#65292;&#20415;&#26044;&#19981;&#21516;&#31243;&#24230;&#30340;&#35712;&#32773;

&#24555;&#36895;&#29702;&#35299;&#12290;&#25552;&#20379;&#30340;&#25351;&#20196;&#22810;&#25976;&#26159;&#27491;&#30906;&#19988;&#30452;&#25509;&#30340;&#65292;&#25972;&#39636;&#37007;&#36655;&#27969;&#26274;&#12290;

### &#23433;&#20840;&#24615;&#21839;&#38988;

**P1 - OAuth Token &#30828;&#32232;&#30908;**

- &#21839;&#38988;&#65306;&#30452;&#25509;&#23559; OAuth token &#20197;&#26126;&#25991;&#24418;&#24335;&#23637;&#31034;

- &#39080;&#38570;&#65306;&#21487;&#33021;&#35492;&#23566;&#20351;&#29992;&#32773;&#23559;&#20854;&#30828;&#32232;&#30908;&#21040;&#33139;&#26412;&#25110;&#20844;&#38283;&#30340;&#22320;&#26041;

- &#24314;&#35696;&#65306;&#20351;&#29992;&#20308;&#20301;&#31526; (YOUR_CLAUDE_OAUTH_TOKEN) &#20006;&#35686;&#21578;&#20999;&#21247;&#25552;&#20132;&#21040;&#29256;&#26412;&#25511;&#21046;

**P1 - curl | bash &#33258;&#21205;&#23433;&#35037;&#33139;&#26412;**

- &#21839;&#38988;&#65306;Bun &#30340;&#23433;&#35037;&#25351;&#20196; `curl -fsSL https://bun.sh/install | bash`

- &#39080;&#38570;&#65306;&#30452;&#25509;&#22519;&#34892;&#24478;&#32178;&#36335;&#29554;&#21462;&#30340;&#33139;&#26412;

- &#24314;&#35696;&#65306;&#22686;&#21152;&#23433;&#20840;&#25552;&#31034;&#65292;&#24314;&#35696;&#20351;&#29992;&#32773;&#20808;&#23529;&#26597;&#33139;&#26412;&#20839;&#23481;

**P0 - &#25351;&#20196;&#19981;&#23436;&#25972;**

- &#21839;&#38988;&#65306;Step 1 &#25351;&#20196;&#34987;&#25130;&#26039;&#28858; `claude setup-`

- &#24433;&#38911;&#65306;&#23566;&#33268;&#25351;&#20196;&#28961;&#27861;&#22519;&#34892;

- &#20462;&#27491;&#65306;&#25033;&#28858; `claude setup-token`

### &#21487;&#35712;&#24615;&#25913;&#36914;&#24314;&#35696;

**P2 - &#29872;&#22659;&#35722;&#25976;&#23531;&#20837;**

- &#21839;&#38988;&#65306;&#21482;&#25552;&#21450; `~/.zshrc`&#65292;&#26410;&#32771;&#24942;&#20854;&#20182; shell &#20351;&#29992;&#32773;

- &#24314;&#35696;&#65306;&#25552;&#21450; `~/.bashrc` &#25110;&#26356;&#36890;&#29992;&#30340; `~/.profile`

**P2 - &#31456;&#31680;&#32232;&#25490;&#19968;&#33268;&#24615;**

- &#21839;&#38988;&#65306;&#12300;&#23526;&#20316;&#27493;&#39519;&#12301;&#19981;&#22816;&#23436;&#25972;&#65292;&#33287;&#24555;&#36895;&#29256;&#26377;&#37325;&#35079;

- &#24314;&#35696;&#65306;&#32113;&#19968;&#27493;&#39519;&#35498;&#26126;&#25110;&#25552;&#20379;&#26356;&#28145;&#20837;&#30340;&#35299;&#37323;

### &#26368;&#20339;&#23526;&#36368;&#24314;&#35696;

1. **&#33139;&#26412;&#39791;&#26834;&#24615;** - &#20351;&#29992; `set -euo pipefail`

2. **&#20381;&#36084;&#37782;&#23450;** - &#30906;&#20445; `bun.lockb` &#27284;&#26696;&#25552;&#20132;&#21040; Git

3. **&#29872;&#22659;&#35722;&#25976;&#20906;&#31561;&#24615;** - &#27298;&#26597;&#35722;&#25976;&#26159;&#21542;&#23384;&#22312;&#20877;&#28155;&#21152;

============================================================

&#128202; Token &#20351;&#29992;&#24773;&#27841;&#65306;

   - Input tokens: 923

   - Output tokens: 1702

   - Total: 2625 tokens

&#9201;&#65039; &#22519;&#34892;&#26178;&#38291;&#65306;&#32004; 5-7 &#31186;</code></pre><p></p><div><hr></div><h2><strong>&#128680; &#27880;&#24847;&#20107;&#38917;&#33287;&#38480;&#21046;</strong></h2><h3><strong>1. Proxy &#21487;&#29992;&#24615;</strong></h3><p>&#9888;&#65039; <strong>gemini-cli-anthropic proxy &#24517;&#38920;&#25345;&#32396;&#36939;&#34892;</strong></p><p><strong>&#35299;&#27770;&#26041;&#26696; A - systemd service (Linux)</strong></p><p><strong>or</strong></p><p><strong>&#35299;&#27770;&#26041;&#26696; B - pm2 (Node.js)</strong></p><div><hr></div><h2><strong>&#128172; &#35258;&#24471;&#26377;&#24171;&#21161;&#21966;&#65311;</strong></h2><ul><li><p>&#127775; &#20998;&#20139;&#32102;&#38656;&#35201;&#30340;&#26379;&#21451;</p></li><li><p>&#128140; [<a href="https://leapdesign.ai/zh/subscribe/">&#35330;&#38321;&#38651;&#23376;&#22577;</a>](<a href="https://leapdesign.ai/zh/subscribe/">https://leapdesign.ai/zh/subscribe/</a>)&#65292;&#27599;&#36913;&#25910;&#21040;&#26368;&#26032;&#25216;&#34899;&#25991;&#31456;</p></li></ul><div><hr></div><p>&#10024; <strong>&#26356;&#22810;&#24555;&#36895;&#25216;&#34899;&#35299;&#27770;&#26041;&#26696;</strong> &#8594; [<a href="https://leapdesign.ai/">https://leapdesign.ai/</a>)</p>]]></content:encoded></item><item><title><![CDATA[[Looplia] 10分鐘設定自動化 Code Review]]></title><description><![CDATA[&#29992; Claude Subscription OAuth &#35469;&#35657; + Looplia &#25972;&#21512;&#65292;10 &#20998;&#37912;&#23436;&#25104; AI &#33258;&#21205;&#21270;&#31243;&#24335;&#30908;&#23529;&#26597;&#35373;&#23450;]]></description><link>https://memo.jimmyliao.net/p/looplia-10-code-review</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/looplia-10-code-review</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Wed, 11 Feb 2026 15:10:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>&#128140; [<a href="https://leapdesign.ai/zh/subscribe/">&#35330;&#38321;&#38651;&#23376;&#22577;</a>](<a href="https://leapdesign.ai/zh/subscribe/">https://leapdesign.ai/zh/subscribe/</a>)&#65292;&#27599;&#36913;&#25910;&#21040;&#26368;&#26032;&#25216;&#34899;&#25991;&#31456;</p><p>&#10024; <strong>&#26356;&#22810;&#24555;&#36895;&#25216;&#34899;&#35299;&#27770;&#26041;&#26696;</strong> &#8594; &#35531;&#25214;&#30446;&#21069;<a href="https://leapdesign.ai/">&#26381;&#21209;&#20837;&#21475;</a>: </p><div><hr></div><p>&#25105;&#36889;&#37002;&#32972;&#26223;: </p><ol><li><p>&#24050;&#32147;&#26377;&#33258;&#24049;&#32722;&#24931;&#30340;&#24037;&#20316;&#27969;&#31243;, &#21487;&#20197; Agentic CLI (Claude Code +  Gemini-CLI + Codex), &#36028;&#19978; PR link &#20570; Code review, comment, change PR status</p></li><li><p>&#22296;&#38538;&#30340; code review &#27969;&#31243;: &#26377; mono repo, &#20063;&#26377;&#21516;&#26178;&#35201;&#30475;&#22810;&#20491;&#30456;&#38364; repo. &#26356;&#22823;&#22810;&#25976;&#26159; user story based &#26371;&#36328;&#19981;&#21516;&#30340; repo&#8230;&#24456;&#24819;&#25226; code review &#20043;&#21069;&#30340; review convention &#31561;&#31561;&#20808;&#23450;&#32681;&#19979;&#20358;</p></li></ol><p>&#20043;&#21069;&#23601;&#32893;&#35498; <a href="https://indiehack.in/">Spencer</a> &#23531;&#20102;&#19968;&#20491; Skills-first agentic workflow CLI &#30340;&#38283;&#28304;&#23560;&#26696;: <a href="https://github.com/memorysaver/looplia-core">Looplia</a> , &#20808;&#25343;&#20358;&#20570;&#36889;&#31278;&#33258;&#21205;&#21270;&#25033;&#35442;&#26371;&#24456;&#26041;&#20415;. Then&#8230;Go!</p><p></p><h2><strong>&#127919; &#20320;&#26371;&#23416;&#21040;&#20160;&#40636;</strong></h2><ul><li><p>10 &#20998;&#37912;&#20839;&#23436;&#25104; Claude Code Subscription OAuth &#35469;&#35657;</p></li><li><p>&#25972;&#21512; Looplia &#23526;&#29694;&#33258;&#21205;&#21270; code review workflow</p></li><li><p>&#24314;&#31435;&#23436;&#25972;&#30340;&#21697;&#36074;&#12289;&#23433;&#20840;&#24615;&#12289;&#21487;&#35712;&#24615;&#23529;&#26597;&#27969;&#31243;</p></li><li><p>&#29983;&#25104;&#32080;&#27083;&#21270;&#30340; code review &#22577;&#21578;</p></li></ul><div><hr></div><h2><strong>&#9889; &#36895;&#26597;&#29256;: Looplia + </strong>Anthropic Subscription OAuth</h2><pre><code># 1. &#29554;&#21462; OAuth token&#65288;30 &#31186;&#65292;&#26371;&#33258;&#21205;&#25171;&#38283;&#28687;&#35261;&#22120;&#65289;

claude setup-token

# 2. &#35373;&#23450;&#29872;&#22659;&#35722;&#25976;

export CLAUDE_CODE_OAUTH_TOKEN=&#8221;sk-ant-oat01-...&#8221;

echo &#8216;export CLAUDE_CODE_OAUTH_TOKEN=&#8221;...&#8221;&#8217; &gt;&gt; ~/.zshrc

# 3. &#37197;&#32622; Looplia &#20351;&#29992; Claude Haiku 4.5

looplia config provider preset CLAUDE_CODE_SUBSCRIPTION_HAIKU

# 4. &#24314;&#31435;&#20006;&#22519;&#34892; code review workflow

looplia build &#8220;create a code review workflow&#8221;</code></pre><p></p><h2><strong>&#128214; &#23436;&#25972;&#29256;</strong></h2><p>&#26412;&#25991;&#29992; <strong>**Claude Code Subscription**</strong> + <strong>**Looplia**</strong> &#26694;&#26550;&#65292;&#25945;&#24744;&#24555;&#36895;&#24314;&#31435;&#33258;&#21205;&#21270; code review &#27969;&#31243;&#12290;</p><blockquote><p>&#128161; <strong>**&#36969;&#21512;&#35504;&#65311;**</strong></p><ul><li><p>&#24050;&#26377; Claude Max subscription</p></li><li><p>&#24819;&#20351;&#29992;&#26368;&#26032; Claude &#27169;&#22411;</p></li><li><p>&#38656;&#35201;&#25972;&#21512;&#21040;&#38283;&#30332;&#24037;&#20316;&#27969;&#31243;</p></li></ul></blockquote><p>&#8212;</p><h3><strong>&#29872;&#22659;&#28310;&#20633;</strong></h3><p><strong>&#38656;&#27714;</strong>&#65306;</p><ul><li><p>Claude Code CLI 2.1.39+</p></li><li><p>Bun 1.0+ (JavaScript runtime &amp; package manager)</p></li><li><p>Claude subscription</p></li></ul><p></p><p><strong>&#23433;&#35037;&#30906;&#35469;</strong>&#65306;</p><pre><code># &#27298;&#26597; Claude CLI &#29256;&#26412;

claude --version

# &#36664;&#20986;&#65306;2.1.39 (Claude Code)

# &#27298;&#26597; Bun &#29256;&#26412;

bun --version

# &#36664;&#20986;&#65306;1.0.0+</code></pre><p></p><p><strong>&#23433;&#35037; Looplia</strong>&#65306;</p><pre><code># 1. Clone repository

git clone https://github.com/memorysaver/looplia-core.git

cd looplia-core

# 2. &#23433;&#35037;&#20381;&#36084;&#12289;&#24314;&#32622;&#12289;&#24314;&#31435;&#20840;&#22495;&#36899;&#32080;&#65288;&#19968;&#27425;&#23436;&#25104;&#65289;

bun install &amp;&amp; bun run build &amp;&amp; bun link

# 3. &#39511;&#35657;&#23433;&#35037;&#25104;&#21151;

looplia --version

# &#36664;&#20986;&#65306;looplia/1.x.x

# 4. &#21021;&#22987;&#21270; workspace&#65288;&#26371;&#22312; ~/.looplia/ &#24314;&#31435;&#37197;&#32622;&#65289;

looplia init --yes</code></pre><p></p><div><hr></div><h3><strong>&#23526;&#20316;&#27493;&#39519;</strong></h3><h4><strong>Step 1: &#29554;&#21462; OAuth Token</strong></h4><pre><code># Claude CLI &#26371;&#33258;&#21205;&#25171;&#38283;&#28687;&#35261;&#22120;&#23436;&#25104; OAuth &#25480;&#27402;

claude setup-token
</code></pre><p></p><p><strong>&#25104;&#21151;&#30059;&#38754;</strong>&#65306;</p><pre><code>&#10003; Long-lived authentication token created successfully!

Your OAuth token (valid for 1 year):

sk-ant-oat01-_6ejYBCQ2Q_3t4dvivHWdO4S9vlIC_4iHz1W8QsDzS3p_...

Store this token securely. You won&#8217;t be able to see it again.
</code></pre><p></p><div><hr></div><h4><strong>Step 2: &#35373;&#23450;&#29872;&#22659;&#35722;&#25976;</strong></h4><pre><code># &#35373;&#23450;&#29872;&#22659;&#35722;&#25976;

export CLAUDE_CODE_OAUTH_TOKEN=&#8221;sk-ant-oat01-xxxx...&#8221;

# &#27704;&#20037;&#20445;&#23384;&#21040; shell &#37197;&#32622;&#65288;&#37325;&#35201;&#65281;&#65289;

echo &#8216;export CLAUDE_CODE_OAUTH_TOKEN=&#8221;sk-ant-oat01-...&#8221;&#8217; &gt;&gt; ~/.zshrc

source ~/.zshrc

# &#39511;&#35657;&#35373;&#23450;&#25104;&#21151;

echo ${CLAUDE_CODE_OAUTH_TOKEN:0:30}...

# &#36664;&#20986;&#65306;sk-ant-oat01-_6ejYBCQ2Q_3t4dvi...</code></pre><p></p><div><hr></div><h4><strong>Step 3: &#37197;&#32622; Looplia</strong></h4><pre><code># &#19968;&#37749;&#35373;&#23450;&#20351;&#29992; Claude Haiku 4.5&#65288;&#26368;&#30465;&#37666;&#30340;&#36984;&#25799;&#65289;

looplia config provider preset CLAUDE_CODE_SUBSCRIPTION_HAIKU

# &#39511;&#35657;&#37197;&#32622;

looplia config provider show</code></pre><p></p><p><strong>&#38928;&#26399;&#36664;&#20986;</strong>&#65306;</p><pre><code>Model Provider Configuration:

  Status: configured &#10003;

  Preset: CLAUDE_CODE_SUBSCRIPTION_HAIKU

  Provider: Anthropic (direct)

  Auth Source: Claude Code Subscription (OAuth)

  Agent Models:

    Main: claude-haiku-4-5-20251001

    Executor: claude-haiku-4-5-20251001</code></pre><p></p><p><strong>&#37197;&#32622;&#27284;&#26696;&#20301;&#32622; =&gt; </strong><code>~/.looplia/looplia.setting.json</code></p><div><hr></div><h4><strong>Step 4: &#20351;&#29992; Looplia &#22519;&#34892; Code Review</strong></h4><p>&#35373;&#23450;&#23436;&#25104;&#24460;&#65292;&#23601;&#21487;&#20197;&#29992; Looplia &#33258;&#21205;&#24314;&#31435;&#21644;&#22519;&#34892; code review workflow&#65306;</p><h5><strong>&#24314;&#31435; Code Review Workflow</strong></h5><pre><code># Looplia &#26371;&#33258;&#21205;&#24314;&#31435;&#23436;&#25972;&#30340; code review workflow

looplia build &#8220;create a code review workflow that analyzes code quality, security, and readability&#8221;</code></pre><p></p><p><strong>Looplia &#26371;&#33258;&#21205;&#29983;&#25104;</strong>&#65306;</p><ul><li><p>&#31243;&#24335;&#30908;&#21697;&#36074;&#20998;&#26512;&#27493;&#39519;</p></li><li><p>&#23433;&#20840;&#24615;&#23529;&#26597;&#27493;&#39519;</p></li><li><p>&#21487;&#35712;&#24615;&#35413;&#20272;&#27493;&#39519;</p></li><li><p>&#32156;&#21512;&#22577;&#21578;&#29983;&#25104;&#27493;&#39519;</p></li></ul><p><strong>&#29983;&#25104;&#30340; workflow &#27284;&#26696;&#20301;&#32622;</strong>&#65306;</p><pre><code>~/.looplia/workflows/code-review-quality-security-readability-[date].md</code></pre><div><hr></div><h5><strong>&#22519;&#34892; Workflow</strong></h5><pre><code># &#22519;&#34892;&#21083;&#24314;&#31435;&#30340; workflow

looplia run code-review-quality-security-readability \

  --context &#8220;&#35531;&#23529;&#26597;&#23560;&#26696;&#20013;&#30340;&#20027;&#35201;&#31243;&#24335;&#30908;&#27284;&#26696;&#8221;</code></pre><p></p><p><strong>&#22519;&#34892;&#36942;&#31243;</strong>&#65306;</p><ol><li><p>&#128269; &#20998;&#26512;&#31243;&#24335;&#30908;&#32080;&#27083;&#21644;&#21697;&#36074;</p></li><li><p>&#128274; &#25475;&#25551;&#23433;&#20840;&#24615;&#21839;&#38988;</p></li><li><p>&#128214; &#35413;&#20272;&#21487;&#35712;&#24615;</p></li><li><p>&#128202; &#29983;&#25104;&#32156;&#21512;&#22577;&#21578;</p></li></ol><p><strong>&#36664;&#20986;&#27284;&#26696;&#20301;&#32622;</strong>&#65306;</p><pre><code>~/.looplia/sandbox/[session-id]/outputs/

&#9500;&#9472;&#9472; comprehensive_report.md    # &#23436;&#25972;&#23529;&#26597;&#22577;&#21578;

&#9500;&#9472;&#9472; quality_analysis.json      # &#21697;&#36074;&#35413;&#20272;

&#9500;&#9472;&#9472; security_analysis.json     # &#23433;&#20840;&#24615;&#20998;&#26512;

&#9492;&#9472;&#9472; readability_review.json    # &#21487;&#35712;&#24615;&#35413;&#20272;</code></pre><p></p><div><hr></div><h5><strong>&#22577;&#21578;&#31684;&#20363;</strong></h5><p><code>comprehensive_report.md</code> &#21253;&#21547;&#65306;</p><ol><li><p><strong>&#22519;&#34892;&#25688;&#35201;</strong></p></li></ol><ul><li><p>&#25972;&#39636;&#35413;&#20998;&#65288;&#11088;&#11088;&#11088;&#11088;&#65289;</p></li><li><p>&#20027;&#35201;&#30332;&#29694;&#25688;&#35201;</p></li><li><p>&#20778;&#20808;&#25913;&#36914;&#38917;&#30446;</p></li></ul><ol start="2"><li><p><strong>&#31243;&#24335;&#30908;&#21697;&#36074;&#35413;&#20272;</strong></p></li></ol><ul><li><p>&#32080;&#27083;&#20998;&#26512;</p></li><li><p>&#35079;&#38620;&#24230;&#35413;&#20272;</p></li><li><p>&#25913;&#36914;&#24314;&#35696;</p></li></ul><ol start="3"><li><p><strong>&#23433;&#20840;&#24615;&#35413;&#20272;</strong></p></li></ol><ul><li><p>&#30332;&#29694;&#30340;&#28431;&#27934;&#28165;&#21934;&#65288;&#20381;&#20778;&#20808;&#32026;&#65306;P0/P1/P2&#65289;</p></li><li><p>&#20462;&#24489;&#24314;&#35696;</p></li><li><p>&#26368;&#20339;&#23526;&#36368;</p></li></ul><ol start="4"><li><p><strong>&#21487;&#35712;&#24615;&#35413;&#20272;</strong></p></li></ol><ul><li><p>&#21629;&#21517;&#35215;&#31684;&#27298;&#26597;</p></li><li><p>&#31243;&#24335;&#30908;&#39080;&#26684;&#19968;&#33268;&#24615;</p></li><li><p>&#25991;&#20214;&#23436;&#25972;&#24615;</p></li></ul><ol start="5"><li><p><strong>&#34892;&#21205;&#38917;&#30446;</strong></p></li></ol><ul><li><p>&#20778;&#20808;&#38918;&#24207;&#25490;&#21015;&#30340;&#25913;&#36914;&#28165;&#21934;</p></li><li><p>&#27599;&#38917;&#38928;&#20272;&#24037;&#20316;&#37327;</p></li><li><p>&#38928;&#26399;&#25928;&#30410;</p></li></ul><div><hr></div><h5><strong>&#24120;&#35211;&#21839;&#38988; &#10067;</strong></h5><p><strong>Q: Build &#39023;&#31034; &#8220;No result received from analysis&#8221; &#37679;&#35492;&#65311;</strong></p><p>&#36889;&#26159;<strong>**&#24050;&#30693;&#21839;&#38988;**</strong>&#65292;&#19981;&#24433;&#38911;&#20351;&#29992;&#65281;&#38614;&#28982;&#39023;&#31034;&#37679;&#35492;&#65292;&#20294; workflow &#27284;&#26696;&#24050;&#25104;&#21151;&#29983;&#25104;&#12290;</p><p><strong>&#37679;&#35492;&#30059;&#38754;</strong>&#65306;</p><pre><code>&#9484; Workflow Builder &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;

&#9474; &#10007; Error                                       &#9474;

&#9474; No result received from analysis              &#9474;

&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;

&#10007; Build failed: Build cancelled by user</code></pre><p></p><p><strong>&#35299;&#27770;&#26041;&#27861;</strong>&#65306;</p><ol><li><p>&#9000;&#65039; &#25353; `Ctrl+C` &#36339;&#20986;&#37679;&#35492;&#30059;&#38754;</p></li><li><p>&#128193; &#30452;&#25509;&#26597;&#30475;&#29983;&#25104;&#30340; workflow &#27284;&#26696;&#65306;</p></li></ol><pre><code>ls -lht ~/.looplia/workflows/ | head -5</code></pre><ol start="3"><li><p>&#9989; &#20351;&#29992;&#29983;&#25104;&#30340; workflow &#21517;&#31281;&#22519;&#34892; `looplia run`</p></li></ol><p><strong>&#31684;&#20363;</strong>&#65306;</p><pre><code># &#21363;&#20351;&#39023;&#31034;&#37679;&#35492;&#65292;workflow &#20173;&#25104;&#21151;&#29983;&#25104;

# &#27284;&#26696;&#20301;&#32622;&#65306;~/.looplia/workflows/code-review-quality-security-readability-build-2026-02-11-xxxx.md

# &#30452;&#25509;&#22519;&#34892;&#21363;&#21487;

looplia run code-review-quality-security-readability-build-2026-02-11-xxxx</code></pre><div><hr></div><p><strong>Q: &#22914;&#20309;&#23529;&#26597;&#29305;&#23450;&#27284;&#26696;&#65311;</strong></p><pre><code># &#22312; --context &#20013;&#25351;&#23450;&#27284;&#26696;

looplia run code-review-quality-security-readability \

  --context &#8220;&#35531;&#23529;&#26597; src/main.py &#27284;&#26696;&#8221;</code></pre><p></p><p><strong>Q: &#22914;&#20309;&#23458;&#35069;&#21270;&#23529;&#26597;&#37325;&#40670;&#65311;</strong></p><pre><code># &#22312;&#24314;&#31435; workflow &#26178;&#25351;&#23450;&#37325;&#40670;

looplia build &#8220;create a code review workflow focusing on security vulnerabilities and performance issues&#8221;</code></pre><p></p><p><strong>Q: Workflow &#22519;&#34892;&#22833;&#25943;&#24590;&#40636;&#36774;&#65311;</strong></p><p>&#27298;&#26597;&#20197;&#19979;&#38917;&#30446;&#65306;</p><p>1. &#9989; `CLAUDE_CODE_OAUTH_TOKEN` &#29872;&#22659;&#35722;&#25976;&#26159;&#21542;&#35373;&#23450;</p><p>2. &#9989; Looplia provider &#37197;&#32622;&#26159;&#21542;&#27491;&#30906;</p><p>3. &#9989; &#26597;&#30475; `~/.looplia/logs/` &#30340;&#37679;&#35492;&#35338;&#24687;</p><div><hr></div><h2><strong>&#128172; &#35342;&#35542;&#33287;&#35330;&#38321;</strong></h2><p><strong>&#35258;&#24471;&#26377;&#24171;&#21161;&#21966;&#65311;</strong></p><ul><li><p>&#127775; &#20998;&#20139;&#32102;&#38656;&#35201;&#30340;&#26379;&#21451;</p></li><li><p>&#128140; [<a href="https://leapdesign.ai/zh/subscribe/">&#35330;&#38321;&#38651;&#23376;&#22577;</a>](<a href="https://leapdesign.ai/zh/subscribe/">https://leapdesign.ai/zh/subscribe/</a>)&#65292;&#27599;&#36913;&#25910;&#21040;&#26368;&#26032;&#25216;&#34899;&#25991;&#31456;</p></li></ul><p><strong>&#24819;&#30475;&#26356;&#22810;&#23526;&#25136;&#26696;&#20363;&#65311;</strong></p><p>&#19979;&#19968;&#31687;&#25991;&#31456;&#23559;&#20171;&#32057;&#22914;&#20309;&#29992; Gemini Proxy &#31680;&#30465; 70% &#25104;&#26412;&#65292;&#35352;&#24471;&#35330;&#38321;&#19981;&#37679;&#36942;&#65281;</p><div><hr></div><p>&#10024; <strong>&#26356;&#22810;&#24555;&#36895;&#25216;&#34899;&#35299;&#27770;&#26041;&#26696;</strong> &#8594; &#35531;&#25214;&#30446;&#21069;&#26381;&#21209;&#20837;&#21475; <a href="https://leapdesign.ai/">https://leapdesign.ai/</a></p>]]></content:encoded></item><item><title><![CDATA[TranslateGemma：arXiv 論文翻譯工具]]></title><description><![CDATA[&#20351;&#29992; Google TranslateGemma &#27169;&#22411;&#22312; Colab &#20813;&#36027; T4 GPU &#19978;&#32763;&#35695; arXiv &#35542;&#25991;&#65292;&#29986;&#29983;&#38617;&#35486;&#23565;&#29031; HTML&#12290;]]></description><link>https://memo.jimmyliao.net/p/translategemmaarxiv</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/translategemmaarxiv</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Mon, 19 Jan 2026 15:53:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://memo.jimmyliao.net/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading JimmyLiao's memo (memo.jimmyliao.net)! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><blockquote><h4><strong>&#20844;&#21578;</strong>: &#38928;&#35336;&#26371;&#25512;&#20986;<a href="https://memo.jimmyliao.net/p/a75">&#35330;&#38321;&#21046;</a>, &#20043;&#24460;&#25033;&#35442;&#26371;&#37096;&#20998;&#36681;&#24448;&#20854;&#20182;&#24179;&#21488;, &#30070;&#28982;&#20320;&#20063;&#21487;&#20197;&#25345;&#32396;&#38364;&#27880;&#36889;&#20491;&#38651;&#23376;&#22577;&#25910;&#21040;&#35330;&#38321;&#28040;&#24687;.</h4><h4><strong>Announcement:</strong> We are planning to launch a subscription model and may partially migrate to other platforms in the future. Please stay tuned to <a href="https://memo.jimmyliao.net/p/a75">this newsletter</a> for updates.</h4></blockquote><h2><strong>&#25216;&#34899;&#23526;&#20316;</strong></h2><h3><strong>&#26550;&#27083;</strong></h3><pre><code><code>&#20351;&#29992;&#32773;

  &#8595;

Colab Notebook

  &#9500;&#9472; &#29872;&#22659;&#20597;&#28204;

  &#9500;&#9472; &#19979;&#36617; arXiv PDF (urllib)

  &#9500;&#9472; &#25552;&#21462;&#25991;&#23383; (PyMuPDF)

  &#9500;&#9472; &#32763;&#35695; (TranslateGemma 4B on T4 GPU)

  &#9500;&#9472; &#24460;&#34389;&#29702; (OpenCC for zh-TW)

  &#9492;&#9472; &#29986;&#29983; HTML

  &#8595;

&#19979;&#36617;&#21040;&#26412;&#22320;</code></code></pre><h3><strong>&#35215;&#26684;</strong></h3><p><strong>**&#27169;&#22411;**</strong></p><p>- TranslateGemma 4B (~8.6GB)</p><p>- &#23560;&#38272;&#37341;&#23565;&#23416;&#34899;&#25991;&#26412;&#35347;&#32244;</p><p>- &#25903;&#25588; 50+ &#31278;&#35486;&#35328;</p><p><strong>**&#30828;&#39636;&#38656;&#27714;**</strong></p><p>- Google Colab &#20813;&#36027; T4 GPU (15GB VRAM)</p><p>- &#25110; macOS 16GB+ VRAM</p><p>- &#25110;&#26412;&#22320; NVIDIA GPU (10GB+ VRAM)</p><p></p><p><strong>**&#25928;&#33021;**</strong></p><p>- &#27599;&#38913;&#32763;&#35695;&#26178;&#38291;&#65306;~3 &#20998;&#37912;</p><p>- &#39318;&#27425;&#27169;&#22411;&#19979;&#36617;&#65306;~5 &#20998;&#37912;&#65288;&#19968;&#27425;&#24615;&#65289;</p><p>- &#25104;&#26412;&#65306;$0</p><div><hr></div><h2><strong>&#21069;&#32622;&#28310;&#20633;</strong></h2><p>1. Google &#24115;&#34399;&#65288;Colab&#65289;</p><p>2. [HuggingFace &#24115;&#34399;](https://huggingface.co/join)</p><p>3. [HF Token](https://huggingface.co/settings/tokens)&#65288;&#35712;&#21462;&#27402;&#38480;&#65289;</p><p>4. [&#25509;&#21463; Gemma &#20351;&#29992;&#26781;&#27454;](https://huggingface.co/google/translategemma-4b-it)</p><div><hr></div><h2><strong>&#20351;&#29992;&#27493;&#39519;</strong></h2><h3><strong>Step 1: &#21855;&#21205; Notebook</strong></h3><p><strong>**[&#128073; &#22312; Google Colab &#38283;&#21855;](<a href="https://colab.research.google.com/github/jimmyliao/trans-gemma/blob/main/arxiv-reader.ipynb">https://colab.research.google.com/github/jimmyliao/trans-gemma/blob/main/arxiv-reader.ipynb</a>)**</strong></p><p>&#21855;&#29992; GPU&#65306;</p><p>1. <strong>**Runtime**</strong> &#8594; <strong>**Change runtime type**</strong></p><p>2. &#36984;&#25799; <strong>**T4 GPU**</strong></p><p>3. <strong>**Save**</strong></p><div><hr></div><h3><strong>Step 2: &#29872;&#22659;&#20597;&#28204;</strong></h3><p>&#22519;&#34892;&#31532;&#19968;&#20491; cell&#65306;</p><pre><code>ENV = detect_environment()</code></pre><p>&#36664;&#20986;&#31684;&#20363;&#65306;</p><pre><code>&#128421;&#65039;  Environment: COLAB

&#128013; Python: 3.10

&#128194; Working dir: /content

&#9989; Environment: COLAB - Ready!</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w-52!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w-52!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png 424w, https://substackcdn.com/image/fetch/$s_!w-52!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png 848w, https://substackcdn.com/image/fetch/$s_!w-52!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png 1272w, https://substackcdn.com/image/fetch/$s_!w-52!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w-52!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png" width="1456" height="388" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:388,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:245322,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/185074894?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w-52!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png 424w, https://substackcdn.com/image/fetch/$s_!w-52!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png 848w, https://substackcdn.com/image/fetch/$s_!w-52!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png 1272w, https://substackcdn.com/image/fetch/$s_!w-52!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4036164-237c-4f85-8bfd-50296af8e0e9_2252x600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p></p><p>Notebook &#33258;&#21205;&#36969;&#25033; Colab/GCP/Local &#29872;&#22659;&#12290;</p><div><hr></div><h3><strong>Step 3: &#23433;&#35037;&#30456;&#20381;&#22871;&#20214;</strong></h3><pre><code>!pip install -q huggingface_hub transformers accelerate \

             sentencepiece protobuf pymupdf pillow \

             opencc-python-reimplemented</code></pre><p><strong>**&#38364;&#37749;&#22871;&#20214;&#65306;**</strong> `opencc-python-reimplemented`</p><p>- &#23559;&#31777;&#39636;&#20013;&#25991;&#36664;&#20986;&#36681;&#25563;&#28858;&#32321;&#39636;&#20013;&#25991;&#65288;zh-TW&#65289;</p><p>- &#30906;&#20445;&#21488;&#28771;&#29992;&#35486;&#27491;&#30906;&#65288;&#22522;&#26044; not &#22522;&#20110;&#65289;</p><div><hr></div><h3><strong>Step 4: HuggingFace &#35469;&#35657;</strong></h3><p>&#36664;&#20837; HF token&#65306;</p><pre><code>&#128221; Please enter HuggingFace Token:

   1. Get token: https://huggingface.co/settings/tokens

   2. Accept model: https://huggingface.co/google/translategemma-4b-it

Token: &#9608;</code></pre><p><strong>**&#23433;&#20840;&#25552;&#31034;&#65306;**</strong> &#20351;&#29992; Colab Secrets (&#128273;) &#31649;&#29702; token</p><div><hr></div><h3><strong>Step 5: &#36617;&#20837;&#27169;&#22411;</strong></h3><pre><code>from transformers_backend import TransformersBackend

backend = TransformersBackend()

result = backend.load_model()
</code></pre><p></p><p>&#39318;&#27425;&#22519;&#34892;&#36664;&#20986;&#65306;</p><pre><code>&#128640; Loading TranslateGemma (4B)...

&#9203; Downloading model (~8.6GB)...

Downloading: 100% |&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;| 8.6G/8.6G [04:32&lt;00:00]

&#9989; Model loaded!

&#128205; Device: cuda:0

&#128202; Load time: 37.8s

&#128190; Memory: 13.8 GB / 15.0 GB</code></pre><p></p><p>&#24460;&#32396;&#22519;&#34892;&#65306;~30 &#31186;&#65288;&#24555;&#21462;&#65289;</p><div><hr></div><h3><strong>Step 6: &#35373;&#23450;&#32763;&#35695;&#20219;&#21209;</strong></h3><pre><code># arXiv ID

ARXIV_ID = &#8220;2403.08295&#8221;

# &#38913;&#38754;&#31684;&#22285;

SECTIONS = {

&#8220;abstract&#8221;: (1, 3),  # &#31532; 1-3 &#38913;

}

# &#35486;&#35328;&#35373;&#23450;

SOURCE_LANG = &#8220;en&#8221;

TARGET_LANG = &#8220;zh-TW&#8221;  # &#32321;&#39636;&#20013;&#25991;&#65288;&#21488;&#28771;&#65289;

# &#29986;&#29983; HTML

SAVE_HTML = True</code></pre><p></p><p><strong>**&#25903;&#25588;&#35486;&#35328;&#65306;**</strong> `zh-TW`, `zh-CN`, `ja`, `ko`, `fr`, `de`, `es`, `pt`, `ru` &#31561; 50+ &#31278;</p><p><strong>**&#23458;&#35069;&#21270;&#31684;&#20363;&#65306;**</strong></p><p>&#32763;&#35695; Abstract&#65306;</p><pre><code>SECTIONS = {&#8221;intro&#8221;: (2, 5)}</code></pre><p></p><p>&#32763;&#35695;&#20840;&#25991;&#65306;</p><pre><code>SECTIONS = {&#8221;full&#8221;: (1, 20)}</code></pre><p></p><p>&#32763;&#35695;&#25104;&#26085;&#25991;&#65306;</p><pre><code>TARGET_LANG = &#8220;ja&#8221;</code></pre><p></p><div><hr></div><h3><strong>Step 7: &#22519;&#34892;&#32763;&#35695;</strong></h3><pre><code># &#19979;&#36617; PDF

pdf_path, total_pages = download_arxiv(ARXIV_ID)

# &#32763;&#35695;

with tqdm(total=3, desc=&#8221;&#128214; Translating&#8221;) as pbar:

for page_num in range(1, 4):

        text = extract_text(pdf_path, page_num)

        result = backend.translate(text,

                                  source_lang=SOURCE_LANG,

                                  target_lang=TARGET_LANG)

        results.append(result)

        pbar.update(1)</code></pre><p></p><p>&#23526;&#28204;&#36664;&#20986;&#65306;</p><pre><code>&#128229; Downloading arXiv:2403.08295

&#9989; Downloaded: 2403.08295.pdf (17 pages)

&#128640; Translation Started

&#128202; Pages: 3

&#9201;&#65039;  Est. time: ~9 minutes

&#128214; Translating: 33% |&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9612;    | 1/3 [02:48&lt;05:36, 168.05s]

&#9989; Page 1: 168.05s

&#128214; Translating: 67% |&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;| 2/3 [05:51&lt;02:43, 163.25s]

&#9989; Page 2: 163.25s

&#128214; Translating: 100% |&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;| 3/3 [08:37&lt;00:00, 166.29s]

&#9989; Page 3: 166.29s

&#9989; Translation Complete!

&#128202; Total: 8 min 37 sec

&#9889; Avg: 2.8 min/page</code></pre><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cPCe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cPCe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png 424w, https://substackcdn.com/image/fetch/$s_!cPCe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png 848w, https://substackcdn.com/image/fetch/$s_!cPCe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png 1272w, https://substackcdn.com/image/fetch/$s_!cPCe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cPCe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png" width="1456" height="517" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d235dea7-0ce5-4607-a043-b26575737e09_2252x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:517,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:291818,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/185074894?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cPCe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png 424w, https://substackcdn.com/image/fetch/$s_!cPCe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png 848w, https://substackcdn.com/image/fetch/$s_!cPCe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png 1272w, https://substackcdn.com/image/fetch/$s_!cPCe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd235dea7-0ce5-4607-a043-b26575737e09_2252x800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h3><strong>Step 8: &#26597;&#30475;&#32080;&#26524;</strong></h3><p>Notebook &#36664;&#20986;&#65306;</p><pre><code>================================================================================

&#128196; Page 1 - ABSTRACT

================================================================================

&#128221; Original:

--------------------------------------------------------------------------------

This work introduces Gemma, a family of lightweight, state-of-the-art open

models built from the research and technology used to create Gemini models.

&#127760; Translation:

--------------------------------------------------------------------------------

&#35542;&#25991;&#25688;&#35201;&#65306;

Gemma &#26159;&#19968;&#31995;&#21015;&#22522;&#26044; Gemini &#30340;&#36629;&#37327;&#32026;&#12289;&#20808;&#36914;&#30340;&#38283;&#28304;&#27169;&#22411;&#12290;&#36889;&#20123;&#27169;&#22411;&#22312;&#35486;&#35328;&#29702;&#35299;&#12289;

&#25512;&#29702;&#21644;&#23433;&#20840;&#24615;&#31561;&#26041;&#38754;&#30340;&#34920;&#29694;&#20778;&#30064;&#12290;</code></pre><p></p><div><hr></div><h3><strong>Step 9: &#19979;&#36617;&#38617;&#35486; HTML</strong></h3><pre><code>filename = f&#8220;arxiv_{ARXIV_ID}_{SOURCE_LANG}-{TARGET_LANG}.html&#8221;

from google.colab import files

files.download(filename)</code></pre><p></p><p>&#36664;&#20986;&#65306;</p><pre><code>&#128190; HTML saved: arxiv_2403.08295_en-zh-TW.html

&#128202; Size: 143.2 KB

&#128196; Pages: 3</code></pre><p></p><div><hr></div><h2><strong>HTML &#21151;&#33021;</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jmht!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jmht!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png 424w, https://substackcdn.com/image/fetch/$s_!jmht!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png 848w, https://substackcdn.com/image/fetch/$s_!jmht!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png 1272w, https://substackcdn.com/image/fetch/$s_!jmht!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jmht!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png" width="1456" height="166" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:166,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:184099,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/185074894?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jmht!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png 424w, https://substackcdn.com/image/fetch/$s_!jmht!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png 848w, https://substackcdn.com/image/fetch/$s_!jmht!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png 1272w, https://substackcdn.com/image/fetch/$s_!jmht!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b1fab-6a28-4a8b-934c-eb2f814a5fd9_2814x320.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A7Yl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A7Yl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png 424w, https://substackcdn.com/image/fetch/$s_!A7Yl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png 848w, https://substackcdn.com/image/fetch/$s_!A7Yl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!A7Yl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A7Yl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png" width="1456" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:417976,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/185074894?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A7Yl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png 424w, https://substackcdn.com/image/fetch/$s_!A7Yl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png 848w, https://substackcdn.com/image/fetch/$s_!A7Yl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!A7Yl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6dd86cef-7c21-45f3-aa98-9e5ac80da64b_2814x1120.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p><strong>**&#20171;&#38754;&#32068;&#25104;&#65306;**</strong></p><p>- Header&#65306;arXiv ID&#12289;&#35486;&#35328;&#23565;&#12289;&#29986;&#29983;&#26085;&#26399;</p><p>- Navigation&#65306;&#19978;&#19968;&#38913;/&#19979;&#19968;&#38913;&#25353;&#37397;</p><p>- &#25552;&#31034;&#21015;&#65306;&#37749;&#30436;&#25805;&#20316;&#35498;&#26126;&#65288;&#8592; &#8594; &#37749;&#65289;</p><p>- &#31456;&#31680;&#27161;&#38988;&#65306;&#38913;&#30908;&#12289;&#32763;&#35695;&#26178;&#38291;</p><p>- &#38617;&#27396;&#20296;&#23616;&#65306;&#21407;&#25991;&#65288;&#24038;&#65289;&#12289;&#32763;&#35695;&#65288;&#21491;&#65289;</p><p><strong>**&#21151;&#33021;&#65306;**</strong></p><p>- &#21407;&#25991;&#33287;&#32763;&#35695;&#20006;&#25490;&#23565;&#29031;</p><p>- &#37749;&#30436;&#23566;&#33322;&#65288;&#8592; &#8594; &#26041;&#21521;&#37749;&#65289;</p><p>- &#38913;&#38754;&#35336;&#25976;&#22120;&#65288;1/3&#65289;</p><p>- &#39023;&#31034;&#27599;&#38913;&#32763;&#35695;&#26178;&#38291;</p><p>- &#38626;&#32218;&#21487;&#29992;</p><p>- &#38911;&#25033;&#24335;&#35373;&#35336;</p><div><hr></div><h2><strong>&#32763;&#35695;&#21697;&#36074;&#35413;&#20272;</strong></h2><p>&#28204;&#35430;&#35542;&#25991;&#65306;Gemma Technical Report (arXiv:2403.08295)</p><h3><strong>&#28204;&#35430;&#31684;&#20363;</strong></h3><p><strong>**&#21407;&#25991;&#65306;**</strong></p><pre><code>The Gemma model architecture is based on the transformer decoder (Vaswani et al., 2017).

Models are trained on a context length of 8192 tokens. We also utilize several improvements

proposed after the original transformer paper.

Multi-Query Attention (Shazeer, 2019). Notably, the 7B model uses multi-head attention

while the 2B checkpoints use multi-query attention (with num_kv_heads = 1).</code></pre><p></p><p><strong>**TranslateGemma &#36664;&#20986;&#65306;**</strong></p><pre><code>Gemma &#27169;&#22411;&#26550;&#27083;&#22522;&#26044; Transformer &#35299;&#30908;&#22120;&#65288;Vaswani &#31561;&#20154;&#65292;2017&#65289;&#12290;&#27169;&#22411;&#26159;&#22312; 8192 &#20491;

token &#30340;&#19978;&#19979;&#25991;&#38263;&#24230;&#19978;&#35347;&#32244;&#30340;&#12290;&#25105;&#20497;&#36996;&#20351;&#29992;&#20102;&#21407;&#22987; Transformer &#35542;&#25991;&#20043;&#24460;&#25552;&#20986;&#30340;&#24190;&#38917;&#25913;&#36914;&#12290;

&#22810;&#26597;&#35426;&#27880;&#24847;&#21147;&#65288;Shazeer&#65292;2019&#65289;&#12290;&#20540;&#24471;&#27880;&#24847;&#30340;&#26159;&#65292;7B &#27169;&#22411;&#20351;&#29992;&#22810;&#38957;&#27880;&#24847;&#21147;&#65292;&#32780; 2B &#27298;&#26597;&#40670;

&#20351;&#29992;&#22810;&#26597;&#35426;&#27880;&#24847;&#21147;&#65288;num_kv_heads = 1&#65289;&#12290;</code></pre><p></p><h3><strong>GPU &#20351;&#29992;</strong></h3><pre><code>&#128202; GPU &#35352;&#25014;&#39636;&#65306;

   Total: 15.0 GB

   Model: ~8.6 GB

   Working: ~1.2 GB

   Available: ~5.2 GB

&#128202; &#20351;&#29992;&#29575;&#65306;

   &#32763;&#35695;&#20013;&#65306;95-100%

   &#38290;&#32622;&#65306;0%</code></pre><p></p><div><hr></div><h2><strong>&#36914;&#38542;&#20351;&#29992;</strong></h2><p>&#20808;&#32763;&#35695;&#37325;&#40670;&#31456;&#31680;&#65306;</p><pre><code>SECTIONS = {

&#8220;abstract&#8221;: (1, 1),      # &#24555;&#36895;&#28687;&#35261;

&#8220;intro&#8221;: (2, 4),         # &#32972;&#26223;&#21205;&#27231;

&#8220;conclusion&#8221;: (15, 16),  # &#32080;&#35542;

}
</code></pre><p>&#30906;&#35469;&#30456;&#38364;&#24460;&#20877;&#32763;&#35695;&#20840;&#25991;&#65306;</p><pre><code>SECTIONS = {

&#8220;method&#8221;: (5, 10),

&#8220;results&#8221;: (11, 14),

}</code></pre><p></p><div><hr></div><h3><strong>&#22810;&#35486;&#35328;&#32763;&#35695;</strong></h3><pre><code>for lang in [&#8221;zh-TW&#8221;, &#8220;ja&#8221;]:

TARGET_LANG = lang

# &#22519;&#34892;&#32763;&#35695;</code></pre><p></p><p>&#29986;&#29983; 3 &#20491;&#29256;&#26412;&#23565;&#29031;&#65306;</p><p>- &#21407;&#22987;&#33521;&#25991;</p><p>- &#32321;&#39636;&#20013;&#25991;</p><p>- &#26085;&#25991;</p><div><hr></div><p></p><p><strong>**GitHub:**</strong> [<a href="https://github.com/jimmyliao/trans-gemma">github.com/jimmyliao/trans-gemma</a>]</p>]]></content:encoded></item><item><title><![CDATA[Free Academic Paper Translation with TranslateGemma]]></title><description><![CDATA[Part 1: Getting Started with Google Colab's Free T4 GPU]]></description><link>https://memo.jimmyliao.net/p/free-academic-paper-translation-with</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/free-academic-paper-translation-with</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Mon, 19 Jan 2026 15:31:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><blockquote><h4><strong>&#20844;&#21578;</strong>: &#38928;&#35336;&#26371;&#25512;&#20986;<a href="https://memo.jimmyliao.net/p/a75">&#35330;&#38321;&#21046;</a>, &#20043;&#24460;&#25033;&#35442;&#26371;&#37096;&#20998;&#36681;&#24448;&#20854;&#20182;&#24179;&#21488;, &#30070;&#28982;&#20320;&#20063;&#21487;&#20197;&#25345;&#32396;&#38364;&#27880;&#36889;&#20491;&#38651;&#23376;&#22577;&#25910;&#21040;&#35330;&#38321;&#28040;&#24687;.</h4><h4><strong>Announcement:</strong> We are planning to launch a subscription model and may partially migrate to other platforms in the future. Please stay tuned to <a href="https://memo.jimmyliao.net/p/a75">this newsletter</a> for updates.</h4></blockquote><p></p><h2><strong>The Problem: You&#8217;re Wasting Hours on Research Papers</strong></h2><p>Here&#8217;s a situation you might recognize:</p><p>You open an arXiv paper. It&#8217;s groundbreaking work in your field. You <strong>**need**</strong> to understand it. But after 20 minutes staring at the abstract, you&#8217;ve only grasped about 60% of what&#8217;s happening.</p><p>So you start the copy-paste dance:</p><p>1. Highlight a paragraph &#128203;</p><p>2. Open DeepL in another tab</p><p>3. Paste and translate</p><p>4. Copy translation back to your notes</p><p>5. Lose all formatting &#128555;</p><p>6. Repeat 47 more times...</p><p>Three hours later, you&#8217;re exhausted, your notes are a mess, and you&#8217;re not even sure you understood the methodology correctly.</p><p><strong>What if I told you there&#8217;s a better way?</strong></p><p>In this post, I&#8217;ll show you how to translate entire arXiv papers into beautiful <strong>bilingual HTML</strong> &#8212; original and translation side-by-side &#8212; using Google&#8217;s <strong>TranslateGemma</strong> model on <strong>free Colab GPU</strong>.</p><p>Set it up once, translate forever. Let&#8217;s dive in.</p><div><hr></div><h2><strong>&#127919; What Makes This Different?</strong></h2><p>Before we jump into the tutorial, let&#8217;s understand why this approach beats traditional tools:</p><h3><strong>TranslateGemma is Like a Specialized Translator for Academics</strong></h3><p>Think of general translation APIs (DeepL, Google Translate) as <strong>**generalist interpreters**</strong>. They&#8217;re great at casual conversations but sometimes stumble on domain-specific jargon.</p><p><strong>TranslateGemma</strong> is like hiring a <strong>PhD student who speaks both languages</strong> &#8212; it understands:</p><p>- Technical terminology in context</p><p>- Academic writing conventions</p><p>- The difference between &#8220;model&#8221; (ML model) vs &#8220;model&#8221; (fashion model)</p><p>- How to preserve mathematical notation</p><h3><strong>The Bilingual HTML is Like Having Training Wheels</strong></h3><p>Instead of reading pure translation, you get:</p><pre><code>&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;

&#9474; Original (English)              &#9474; Translation (Your Language)     &#9474;

&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9532;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;

&#9474; This work introduces Gemma...   &#9474; &#26412;&#30740;&#31350;&#20171;&#32057;&#20102; Gemma...             &#9474;

&#9474; ...                             &#9474; ...                             &#9474;

&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;

         &#8593; Navigate with &#8592; &#8594; keys &#8593;</code></pre><p></p><p>This means:</p><p>- &#9989; <strong>Learn English</strong> while reading in your language</p><p>- &#9989; <strong>Check translations</strong> when something feels off</p><p>- &#9989; <strong>Build vocabulary</strong> by seeing terms in context</p><div><hr></div><h2><strong>&#129504; How This Actually Works (For the Curious)</strong></h2><p>Let me pull back the curtain on the technical implementation.</p><h3><strong>Architecture Overview</strong></h3><pre><code><code>&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;

&#9474;   User       &#9474;

&#9474;  (Browser)   &#9474;

&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;

       &#9474; 1. Click Colab link

       &#9660;

&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;

&#9474;   Colab Notebook                 &#9474;

&#9474;   &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;   &#9474;

&#9474;   &#9474; Environment Detection    &#9474;   &#9474;

&#9474;   &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;   &#9474;

&#9474;              &#9474; 2. Auto-config    &#9474;

&#9474;              &#9660;                    &#9474;

&#9474;   &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;   &#9474;

&#9474;   &#9474; Download arXiv PDF       &#9474;   &#9474;

&#9474;   &#9474; (via urllib)             &#9474;   &#9474;

&#9474;   &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;   &#9474;

&#9474;              &#9474; 3. Extract text   &#9474;

&#9474;              &#9660;                    &#9474;

&#9474;   &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;   &#9474;

&#9474;   &#9474; PyMuPDF (page-by-page)   &#9474;   &#9474;

&#9474;   &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;   &#9474;

&#9474;              &#9474; 4. Send to model  &#9474;

&#9474;              &#9660;                    &#9474;

&#9474;   &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;   &#9474;

&#9474;   &#9474; TranslateGemma 4B        &#9474;&#9668;&#9472;&#9472;&#9532;&#9472; HuggingFace Hub

&#9474;   &#9474; (on T4 GPU)              &#9474;   &#9474;   (model download)

&#9474;   &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;   &#9474;

&#9474;              &#9474; 5. Post-process   &#9474;

&#9474;              &#9660;                    &#9474;

&#9474;   &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;   &#9474;

&#9474;   &#9474; OpenCC (if zh-TW)        &#9474;   &#9474;

&#9474;   &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;   &#9474;

&#9474;              &#9474; 6. Generate HTML  &#9474;

&#9474;              &#9660;                    &#9474;

&#9474;   &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;   &#9474;

&#9474;   &#9474; Bilingual HTML           &#9474;   &#9474;

&#9474;   &#9474; (side-by-side layout)    &#9474;   &#9474;

&#9474;   &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;   &#9474;

&#9474;              &#9474; 7. Download       &#9474;

&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9532;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;

               &#9660;

       &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;

       &#9474;  User&#8217;s PC    &#9474;

       &#9474;  (HTML file)  &#9474;

       &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;</code></code></pre><div><hr></div><h2><strong>&#128640; Let&#8217;s Build This: 10-Minute Setup</strong></h2><p>Instead of drowning you in theory, let&#8217;s get your first paper translated. We&#8217;ll explain what&#8217;s happening as we go.</p><h3><strong>Prerequisites (5 minutes setup, one-time)</strong></h3><p>You&#8217;ll need:</p><p>1. <strong>**Google Account**</strong> (for Colab)</p><p>2. <strong>**HuggingFace Account**</strong> ([sign up free](https://huggingface.co/join))</p><p>3. <strong>**HF Token**</strong> with read access ([create here](https://huggingface.co/settings/tokens))</p><p>4. <strong>**Accept Gemma Terms**</strong> ([click here](https://huggingface.co/google/translategemma-4b-it))</p><div><hr></div><h3><strong>Step 1: Open Notebook &amp; Enable GPU (1 minute)</strong></h3><p><strong>**[&#128073; <a href="https://colab.research.google.com/github/jimmyliao/trans-gemma/blob/main/arxiv-reader.ipynb">Click here</a> to open in Google Colab]**</strong></p><p>Then:</p><p>1. <strong>**Runtime**</strong> menu &#8594; <strong>**Change runtime type**</strong></p><p>2. Select <strong>**T4 GPU**</strong> from dropdown</p><p>3. Click <strong>**Save**</strong></p><p><strong>**Why T4?**</strong> It&#8217;s the free tier GPU that&#8217;s perfect for this task &#8212; enough memory for the 4B model, but not overkill.</p><div><hr></div><h3><strong>Step 2: Run Environment Detection (30 seconds)</strong></h3><p>Execute the first code cell (click &#9654;&#65039; or press Shift+Enter):</p><pre><code># This auto-detects whether you&#8217;re on Colab, GCP, or local Jupyter

ENV = detect_environment()
</code></pre><p><strong>**Output:**</strong></p><pre><code>

========================================================================

&#128269; Environment Detection

========================================================================

&#128421;&#65039;  Environment: COLAB

&#128013; Python: 3.10

&#128194; Working dir: /content

========================================================================

&#9989; Environment: COLAB - Ready!

========================================================================</code></pre><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L1xt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L1xt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png 424w, https://substackcdn.com/image/fetch/$s_!L1xt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png 848w, https://substackcdn.com/image/fetch/$s_!L1xt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png 1272w, https://substackcdn.com/image/fetch/$s_!L1xt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L1xt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png" width="1456" height="388" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:388,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:245322,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/185071208?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L1xt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png 424w, https://substackcdn.com/image/fetch/$s_!L1xt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png 848w, https://substackcdn.com/image/fetch/$s_!L1xt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png 1272w, https://substackcdn.com/image/fetch/$s_!L1xt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199401bb-1cff-4299-ac7b-54521dbf2342_2252x600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>*The notebook automatically detects your runtime environment*</em></p><p><strong>**What&#8217;s happening here?**</strong></p><p>The notebook adapts to your environment automatically. Same notebook works on:</p><p>- Google Colab (most users)</p><p>- GCP Custom Runtime (advanced)</p><p>- Local Jupyter (if you have GPU)</p><p>No need to modify code &#8212; it just works&#8482;.</p><div><hr></div><h3><strong>Step 3: Install Dependencies (2 minutes)</strong></h3><p>Next cell installs packages based on your environment:</p><pre><code># Colab gets lightweight dependencies

!pip install -q huggingface_hub transformers accelerate \

             sentencepiece protobuf pymupdf pillow \

             opencc-python-reimplemented</code></pre><p></p><p><strong>**Key package:**</strong> `opencc-python-reimplemented`</p><p>This ensures if you&#8217;re translating to <strong>**Traditional Chinese**</strong> (Taiwan/Hong Kong), you get &#22522;<strong>**&#26044;**</strong> not &#22522;<strong>**&#20110;**</strong>. Small details matter in academic writing.</p><p>Just click &#9654;&#65039; and wait for installation to complete.</p><div><hr></div><h3><strong>Step 4: Authenticate with HuggingFace (1 minute)</strong></h3><p>The notebook will prompt for your HF token:</p><pre><code>&#128221; Please enter HuggingFace Token:

   &#128161; Tip: Use Colab Secrets (&#128273; icon) for better security

   1. Get token: https://huggingface.co/settings/tokens

   2. Accept model: https://huggingface.co/google/translategemma-4b-it

Token: &#9608;</code></pre><p></p><p>Paste your token and press Enter. Done.</p><p><strong>**Security tip:**</strong> Use Colab&#8217;s built-in secrets manager (&#128273; sidebar icon) instead of pasting tokens directly if you&#8217;re sharing notebooks.</p><div><hr></div><h3><strong>Step 5: Load the Model (First run: 5 min, After: 30 sec)</strong></h3><p>This is where the magic happens:</p><pre><code>from transformers_backend import TransformersBackend

backend = TransformersBackend()

result = backend.load_model()
</code></pre><p></p><p><strong>**First run output:**</strong></p><pre><code>&#128640; Loading TranslateGemma (4B)...

   &#9203; Downloading model (~8.6GB) on first run...

Downloading: 100% |&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;| 8.6G/8.6G [04:32&lt;00:00, 31.5MB/s]

&#9989; Model loaded!

&#128205; Device: cuda:0

&#128202; Load time: 37.8s

&#128190; Memory: 13.8 GB used / 15.0 GB total

&#127881; Ready to translate!</code></pre><p></p><p><strong>**What just happened?**</strong></p><p>- Downloaded TranslateGemma 4B (8.6GB) to Colab&#8217;s disk</p><p>- Loaded model into GPU memory</p><p>- Cached for future runs (next time: 30 seconds!)</p><p>Grab a coffee &#9749; on first run. It&#8217;s worth the wait.</p><div><hr></div><p></p><p><strong>### Step 6: Configure Your Translation (30 seconds)</strong></p><p>Now the fun part &#8212; telling it <strong>**what**</strong> to translate:</p><pre><code># Which paper?

ARXIV_ID = "2403.08295"  # Gemma paper (or any arXiv ID)

# Which pages?

SECTIONS = {

"abstract": (1, 3),  # Pages 1-3

}

# What languages?

SOURCE_LANG = "en"

TARGET_LANG = "zh-TW"  # Traditional Chinese (Taiwan)

# Generate beautiful HTML?

SAVE_HTML = True
</code></pre><p><strong>**Customization examples:**</strong></p><p>Translate intro section only:</p><pre><code>SECTIONS = {

"intro": (2, 5),

}</code></pre><p></p><p>Translate to Japanese:</p><pre><code>TARGET_LANG = "ja"</code></pre><p></p><p>Translate everything:</p><pre><code>SECTIONS = {

"full": (1, 20),  # All pages

}

</code></pre><p></p><p><strong>**Supported languages:**</strong> 50+ including `zh-TW`, `zh-CN`, `ja`, `ko`, `fr`, `de`, `es`, `pt`, `ru`, etc.</p><div><hr></div><h3><strong>Step 7: Hit Translate! (3 min per page)</strong></h3><p>Execute the translation cell:</p><pre><code># Download PDF from arXiv

pdf_path, total_pages = download_arxiv(ARXIV_ID)

# Translate page by page with progress bar

with tqdm(total=3, desc=&#8221;&#128214; Translating&#8221;) as pbar:

for page_num in range(1, 4):

        text = extract_text(pdf_path, page_num)

        result = backend.translate(text,

                                  source_lang=SOURCE_LANG,

                                  target_lang=TARGET_LANG)

        results.append(result)

        pbar.update(1)</code></pre><p></p><p><strong>**Real output from my test:**</strong></p><pre><code>&#128229; Downloading arXiv:2403.08295

&#9989; Downloaded: 2403.08295.pdf (17 pages)

========================================================================

&#128640; Translation Started

========================================================================

&#128202; Pages: 3

&#9201;&#65039;  Est. time: ~9 minutes

&#128214; Translating: 33% |&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9612;         | 1/3 [02:48&lt;05:36, 168.05s/page]

&#9989; Page 1: 168.05s

&#128214; Translating: 67% |&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608; | 2/3 [05:51&lt;02:43, 163.25s/page]

&#9989; Page 2: 163.25s

&#128214; Translating: 100% |&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;&#9608;| 3/3 [08:37&lt;00:00, 166.29s/page]

&#9989; Page 3: 166.29s

========================================================================

&#9989; Translation Complete!

========================================================================

&#128202; Pages: 3

&#9201;&#65039;  Total: 8 min 37 sec

&#9889; Avg: 2.8 min/page

========================================================================</code></pre><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rLCD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rLCD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png 424w, https://substackcdn.com/image/fetch/$s_!rLCD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png 848w, https://substackcdn.com/image/fetch/$s_!rLCD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png 1272w, https://substackcdn.com/image/fetch/$s_!rLCD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rLCD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png" width="1456" height="517" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:517,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:291818,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/185071208?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rLCD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png 424w, https://substackcdn.com/image/fetch/$s_!rLCD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png 848w, https://substackcdn.com/image/fetch/$s_!rLCD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png 1272w, https://substackcdn.com/image/fetch/$s_!rLCD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06754baf-c96c-46a5-a5af-cb8e5b7fda44_2252x800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>*Live translation progress with tqdm showing real-time status per page*</em></p><p><strong>**What&#8217;s happening under the hood?**</strong></p><p>For each page, the backend:</p><p>1. Sends text to TranslateGemma with a <strong>**simple, direct prompt**</strong>:</p><pre><code>Translate the following text from en to Traditional Chinese (Taiwan, &#32321;&#39636;&#20013;&#25991;).

Only output the translation, do not include explanations:

[Original text here]

Translation:</code></pre><p></p><p>2. Model generates translation using GPU acceleration</p><p>3. Extracts clean translation from output</p><p>4. Applies OpenCC post-processing (for zh-TW)</p><p><strong>**Pro tip:**</strong> Pages with heavy math/tables take similar time &#8212; the model handles them well.</p><div><hr></div><h3><strong>Step 8: View Results in Notebook</strong></h3><p>Immediately after translation, you&#8217;ll see:</p><pre><code>========================================================================

&#128196; Page 1 - ABSTRACT

========================================================================

&#128221; Original:

------------------------------------------------------------------------

This work introduces Gemma, a family of lightweight, state-of-the-art open

models built from the research and technology used to create Gemini models.

Gemma models demonstrate strong performance across academic benchmarks for

language understanding, reasoning, and safety.

&#127760; Translation:

------------------------------------------------------------------------

&#35542;&#25991;&#25688;&#35201;&#65306;

Gemma &#26159;&#19968;&#31995;&#21015;&#22522;&#26044; Gemini &#30340;&#36629;&#37327;&#32026;&#12289;&#20808;&#36914;&#30340;&#38283;&#28304;&#27169;&#22411;&#12290;&#36889;&#20123;&#27169;&#22411;&#22312;&#35486;&#35328;&#29702;&#35299;&#12289;

&#25512;&#29702;&#21644;&#23433;&#20840;&#24615;&#31561;&#26041;&#38754;&#30340;&#34920;&#29694;&#20778;&#30064;&#65292;&#20006;&#22312; 18 &#38917;&#25991;&#23383;&#20219;&#21209;&#20013;&#65292;&#22312;&#21516;&#31561;&#35215;&#27169;&#30340;&#38283;&#28304;&#27169;&#22411;

&#20013;&#34920;&#29694;&#26356;&#20339;&#12290;</code></pre><p></p><p><strong>**Notice the quality:**</strong></p><p>- &#8220;lightweight&#8221; &#8594; &#8220;&#36629;&#37327;&#32026;&#8221; &#9989; (not &#8220;&#36629;&#8221; or &#8220;&#20809;&#8221;)</p><p>- &#8220;state-of-the-art&#8221; &#8594; &#8220;&#20808;&#36914;&#8221; &#9989; (contextually appropriate)</p><p>- &#8220;benchmarks&#8221; &#8594; &#8220;&#22522;&#28310;&#28204;&#35430;&#8221; &#9989; (technical term)</p><p>- Traditional Chinese: &#22522;<strong>**&#26044;**</strong> &#9989; (not &#22522;<strong>**&#20110;**</strong>)</p><p>This is <strong>**way better**</strong> than copy-pasting into Google Translate.</p><div><hr></div><h3><strong>Step 9: Download Interactive HTML (10 seconds)</strong></h3><p>The final cell generates a self-contained HTML file:</p><pre><code># Generate bilingual HTML

filename = f&#8220;arxiv_{ARXIV_ID}_{SOURCE_LANG}-{TARGET_LANG}.html&#8221;

# Auto-download in Colab

from google.colab import files

files.download(filename)</code></pre><p></p><p><strong>**Output:**</strong></p><pre><code>&#128190; HTML saved: arxiv_2403.08295_en-zh-TW.html

&#128194; Full path: /content/arxiv_2403.08295_en-zh-TW.html

&#128202; Size: 143.2 KB

&#128196; Pages: 3

&#128229; To view the full HTML:

   1. Download: Right-click &#8216;arxiv_2403.08295_en-zh-TW.html&#8217; in Files panel &#8594; Download

   2. Or use auto-download (Colab native only)</code></pre><p></p><p><strong>**Open the HTML in your browser:**</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nc0C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nc0C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png 424w, https://substackcdn.com/image/fetch/$s_!Nc0C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png 848w, https://substackcdn.com/image/fetch/$s_!Nc0C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png 1272w, https://substackcdn.com/image/fetch/$s_!Nc0C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nc0C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png" width="1456" height="166" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:166,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:184099,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/185071208?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Nc0C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png 424w, https://substackcdn.com/image/fetch/$s_!Nc0C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png 848w, https://substackcdn.com/image/fetch/$s_!Nc0C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png 1272w, https://substackcdn.com/image/fetch/$s_!Nc0C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F406183ac-e0c4-4663-957e-2f36900e9d84_2814x320.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p><em>*Clean header with title, language pair, date, and keyboard-friendly navigation*</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-QsP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-QsP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png 424w, https://substackcdn.com/image/fetch/$s_!-QsP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png 848w, https://substackcdn.com/image/fetch/$s_!-QsP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!-QsP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-QsP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png" width="1456" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:417976,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/185071208?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-QsP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png 424w, https://substackcdn.com/image/fetch/$s_!-QsP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png 848w, https://substackcdn.com/image/fetch/$s_!-QsP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!-QsP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3887d5e1-7356-4891-98ea-0c4f5a626715_2814x1120.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>*Original English (left) and Traditional Chinese translation (right) in perfect sync*</em></p><p><strong>**What you&#8217;re seeing:**</strong></p><p>- <strong>**Header:**</strong> arXiv:2403.08295 Bilingual Translation</p><p>- <strong>**Metadata:**</strong> en &#8594; zh-TW | 2026-01-19 14:22</p><p>- <strong>**Navigation:**</strong> &#9668; Prev | Page 1 (1/3) | Next &#9654;</p><p>- <strong>**Hint bar:**</strong> &#128161; Use &#8592; &#8594; keys (yellow background for visibility)</p><p>- <strong>**Section header:**</strong> &#128196; ABSTRACT - Page 1 &#9201;&#65039; 179.74s (shows translation time)</p><p>- <strong>**Dual columns:**</strong> Gray background for original, white for translation</p><p><strong>**Features:**</strong></p><p>- &#9989; Side-by-side original + translation (never lose context)</p><p>- &#9989; Keyboard navigation (&#8592; &#8594; arrow keys for fast reading)</p><p>- &#9989; Page counter with progress (&#8221;Page 1 (1/3)&#8221;)</p><p>- &#9989; Translation time per page (&#9201;&#65039; 179.74s shown in purple header)</p><p>- &#9989; Works offline (no internet needed after download)</p><p>- &#9989; Mobile responsive (columns stack vertically on small screens)</p><p>- &#9989; Clean typography (monospace for original, sans-serif for translation)</p><p><strong>**This is your forever-reference**</strong> for that paper. Share it, annotate it, or keep it for later.</p><div><hr></div><h2><strong>&#128300; Translation Quality: Let&#8217;s Be Honest</strong></h2><p>I tested this on the <strong>**Gemma Technical Report**</strong> (arXiv:2403.08295), a genuinely complex paper with:</p><p>- Model architecture details</p><p>- Training methodology</p><p>- Benchmark results (tables)</p><p>- Mathematical notation</p><p>- Lots of jargon (&#8221;multi-query attention&#8221;, &#8220;RoPE embeddings&#8221;, &#8220;supervised fine-tuning&#8221;)</p><p><strong>### Sample: Original Text</strong></p><pre><code>The Gemma model architecture is based on the transformer decoder (Vaswani et al., 2017).

The core parameters of the architecture are summarized in Table 1. Models are trained on

a context length of 8192 tokens. We also utilize several improvements proposed after the

original transformer paper, and list them below:

Multi-Query Attention (Shazeer, 2019). Notably, the 7B model uses multi-head attention

while the 2B checkpoints use multi-query attention (with num_kv_heads = 1), based on

ablations that showed that multi-query attention works well at small scales.</code></pre><p></p><p></p><h3><strong>TranslateGemma Output</strong></h3><pre><code>Gemma &#27169;&#22411;&#26550;&#27083;&#22522;&#26044; Transformer &#35299;&#30908;&#22120;&#65288;Vaswani &#31561;&#20154;&#65292;2017&#65289;&#12290;&#26550;&#27083;&#30340;&#26680;&#24515;&#21443;&#25976;

&#32317;&#32080;&#26044;&#34920; 1 &#20013;&#12290;&#27169;&#22411;&#26159;&#22312; 8192 &#20491; token &#30340;&#19978;&#19979;&#25991;&#38263;&#24230;&#19978;&#35347;&#32244;&#30340;&#12290;&#25105;&#20497;&#36996;&#20351;&#29992;&#20102;&#21407;&#22987;

Transformer &#35542;&#25991;&#20043;&#24460;&#25552;&#20986;&#30340;&#24190;&#38917;&#25913;&#36914;&#65292;&#20006;&#22312;&#19979;&#38754;&#21015;&#20986;&#65306;

&#22810;&#26597;&#35426;&#27880;&#24847;&#21147;&#65288;Shazeer&#65292;2019&#65289;&#12290;&#20540;&#24471;&#27880;&#24847;&#30340;&#26159;&#65292;7B &#27169;&#22411;&#20351;&#29992;&#22810;&#38957;&#27880;&#24847;&#21147;&#65292;&#32780; 2B &#27298;&#26597;

&#40670;&#20351;&#29992;&#22810;&#26597;&#35426;&#27880;&#24847;&#21147;&#65288;num_kv_heads = 1&#65289;&#65292;&#36889;&#26159;&#22522;&#26044;&#28040;&#34701;&#30740;&#31350;&#39023;&#31034;&#22810;&#26597;&#35426;&#27880;&#24847;&#21147;&#22312;&#23567;&#35215;&#27169;

&#19979;&#25928;&#26524;&#33391;&#22909;&#12290;</code></pre><p></p><p></p><h3><strong>My Assessment</strong></h3><p>| Aspect | Rating | Notes |</p><p>|--------|--------|-------|</p><p>| <strong>**Technical Accuracy**</strong> | &#11088;&#11088;&#11088;&#11088;&#11088; | &#8220;multi-query attention&#8221; &#8594; &#8220;&#22810;&#26597;&#35426;&#27880;&#24847;&#21147;&#8221; is spot-on |</p><p>| <strong>**Terminology Consistency**</strong> | &#11088;&#11088;&#11088;&#11088;&#11088; | Same term translated same way throughout |</p><p>| <strong>**Grammar &amp; Flow**</strong> | &#11088;&#11088;&#11088;&#11088;&#11088; | Reads naturally in target language |</p><p>| <strong>**Format Preservation**</strong> | &#11088;&#11088;&#11088;&#11088;&#11088; | Keeps paragraphs, citations, structure intact |</p><p>| <strong>**Context Understanding**</strong> | &#11088;&#11088;&#11088;&#11088; | Gets that &#8220;ablations&#8221; means ablation studies (not medical) |</p><p><strong>**Where it shines:**</strong></p><p>- &#9989; Technical jargon (transformers, attention mechanisms, tokens)</p><p>- &#9989; Citations format preserved: (Vaswani et al., 2017)</p><p>- &#9989; Numbers and variables unchanged: 8192, 7B, num_kv_heads</p><p>- &#9989; Academic tone maintained</p><p><strong>**Minor quirks:**</strong></p><p>- &#9888;&#65039; Sometimes literal translation where paraphrase would be smoother</p><p>- &#9888;&#65039; Very occasional wrong word choice (maybe 1-2 per page)</p><p><strong>**Compared to:**</strong></p><p>- <strong>**DeepL:**</strong> Better for general text, but struggles with ML terminology</p><p>- <strong>**Google Translate:**</strong> Faster, but often mistranslates domain terms</p><p>- <strong>**GPT-4/Claude API:**</strong> Similar quality, but costs $0.01-0.02 per page</p><p>- <strong>**Human translator:**</strong> Obviously better, but  and slow</p><p>For <strong>**free academic translation**</strong>, this is <strong>**unbeatable**</strong>.</p><div><hr></div><h2><strong>&#9889; Performance &amp; Cost: The Real Numbers</strong></h2><p>Let me share actual benchmarks from my testing:</p><h3><strong>My Setup</strong></h3><p>- <strong>**Platform:**</strong> Google Colab Free Tier</p><p>- <strong>**GPU:**</strong> Tesla T4 (15GB VRAM)</p><p>- <strong>**Model:**</strong> TranslateGemma 4B (~8.6GB)</p><p>- <strong>**Test paper:**</strong> Gemma Report (arXiv:2403.08295)</p><h3><strong>Timing Breakdown</strong></h3><p>| Operation | First Run | Subsequent Runs |</p><p>|-----------|-----------|-----------------|</p><p>| Model download | ~5 min (one-time) | - |</p><p>| Model loading | 37.8 sec | 30 sec (cached) |</p><p>| Translation | 165-170 sec/page | Same |</p><p>| HTML generation | &lt;1 sec | &lt;1 sec |</p><p><strong>**Total for 3 pages:**</strong></p><p>- First ever run: ~15 minutes (including model download)</p><p>- After model cached: ~9 minutes (just translation time)</p><h3><strong>GPU Usage</strong></h3><pre><code>&#128202; GPU Memory:

   Total: 15.0 GB

   Model: ~8.6 GB

   Working: ~1.2 GB

   Available: ~5.2 GB

&#128202; Utilization:

   During translation: 95-100%

   Idle: 0%</code></pre><p></p><p>The T4 is fully utilized during translation &#8212; that&#8217;s why it&#8217;s relatively fast.</p><h3><strong>Cost Comparison (10-page paper)</strong></h3><p>| Method | Time | Cost | Quality |</p><p>|--------|------|------|---------|</p><p>| <strong>**TranslateGemma + Colab**</strong> | ~30 min | <strong>**$0.00**</strong> | &#11088;&#11088;&#11088;&#11088;&#11088; |</p><p>| <strong>**Claude 3.5 API**</strong> | ~2 min | $0.10 | &#11088;&#11088;&#11088;&#11088; |</p><p>| <strong>**DeepL Pro API**</strong> | ~1 min | $0.20 | &#11088;&#11088;&#11088;&#11088; |</p><p>| <strong>**Google Translate**</strong> | Instant | $0.00 | &#11088;&#11088;&#11088; |</p><p>| <strong>**Human translator**</strong> | 2-3 days | $50-200 | &#11088;&#11088;&#11088;&#11088;&#11088; |</p><p><strong>**My take:**</strong> If you&#8217;re reading 5-10 papers per week, the <strong>**time investment**</strong> of TranslateGemma pays off in <strong>**quality + zero cost**</strong>. For one-off urgent translations, APIs are faster.</p><div><hr></div><h2><strong>&#128736;&#65039; Power User Tips</strong></h2><p>Once you&#8217;ve got the basics down, here are some pro moves:</p><h3><strong>Tip 1: Batch Translate Strategically</strong></h3><p>Don&#8217;t translate entire papers blindly. Use this approach:</p><pre><code>SECTIONS = {

&#8220;abstract&#8221;: (1, 1),      # Quick scan: worth deep reading?

&#8220;intro&#8221;: (2, 4),         # Context and motivation

&#8220;conclusion&#8221;: (15, 16),  # Main takeaways

}</code></pre><p></p><p>Read these first (10 min translation). If it&#8217;s relevant, come back for:</p><pre><code>SECTIONS = {

&#8220;method&#8221;: (5, 10),

&#8220;results&#8221;: (11, 14),

}</code></pre><p></p><p><strong>**Why?**</strong> You&#8217;ll save time on papers that aren&#8217;t relevant to your work.</p><div><hr></div><h3><strong>Tip 2: Translate to Multiple Languages</strong></h3><p>Learning Japanese and Chinese? Do this:</p><pre><code>for lang in [&#8221;zh-TW&#8221;, &#8220;ja&#8221;]:

TARGET_LANG = lang

# Run translation

# Generate HTML</code></pre><p></p><p>Now you have <strong>**3 versions**</strong> to compare:</p><p>- Original English</p><p>- Traditional Chinese</p><p>- Japanese</p><p>Great for building technical vocabulary across languages.</p><div><hr></div><h3><strong>Tip 3: Fix the &#8220;Pages 2-3 Didn&#8217;t Translate&#8221; Bug</strong></h3><p>If you&#8217;re using an older version, pages with lots of charts/tables might fail to translate (they just return the original text).</p><p><strong>**We fixed this recently!**</strong> Update to latest:</p><pre><code>cd trans-gemma &amp;&amp; git pull</code></pre><p></p><p><strong>**What we changed:**</strong></p><p>- Switched from complex chat template to <strong>**simple direct prompt**</strong></p><p>- More robust extraction logic</p><p>- Better handling of mixed-content pages (text + figures)</p><div><hr></div><h3><strong>Tip 4: Run Locally If You Have GPU</strong></h3><p>Don&#8217;t want to depend on Colab quotas? Run locally:</p><pre><code>git clone https://github.com/jimmyliao/trans-gemma.git

cd trans-gemma

pip install -e &#8220;.[examples]&#8221;

# Open notebook

jupyter notebook arxiv-reader.ipynb</code></pre><p></p><p>The notebook <strong>**auto-detects**</strong> your environment (Colab vs Local) and adapts. Just works.</p><p><strong>**Requirements:**</strong></p><p>- Python 3.10+</p><p>- NVIDIA GPU with 10GB+ VRAM (or use CPU, but very slow)</p><p>- ~15GB disk space for model</p><div><hr></div><h3><strong>Tip 5: Customize the HTML Output</strong></h3><p>The generated HTML uses <strong>**vanilla JavaScript**</strong> and can be easily customized. Open the notebook cell that generates HTML and modify:</p><p><strong>**Change color scheme:**</strong></p><pre><code>.header {

background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

}
</code></pre><p></p><p><strong>**Add dark mode:**</strong></p><pre><code>@media (prefers-color-scheme: dark) {

body { background: #1a1a1a; color: #e0e0e0; }

}</code></pre><p></p><p><strong>**Adjust layout ratio:**</strong></p><pre><code>.columns {

grid-template-columns: 45% 55%; /* Favor translation side */

}
</code></pre><div><hr></div><h2><strong>&#129300; Common Questions</strong></h2><h3><strong>Q: &#8220;Colab says GPU unavailable?&#8221;</strong></h3><p><strong>**A:**</strong> Free tier has daily quotas (typically refreshes every 12-24 hours). Try:</p><p>1. <strong>**Wait a few hours**</strong> and retry</p><p>2. <strong>**Try off-peak times**</strong> (evenings/weekends in US timezones)</p><p>3. <strong>**Switch Google accounts**</strong> if you have multiple</p><p>4. <strong>**Upgrade to Colab Pro**</strong> ($10/month) for guaranteed GPU</p><div><hr></div><h3><strong>Q: &#8220;Model download stuck at 45%?&#8221;</strong></h3><p><strong>**A:**</strong> Network hiccups happen. Try:</p><p>1. <strong>**Restart runtime:**</strong> Runtime &#8594; Restart runtime</p><p>2. <strong>**Clear outputs:**</strong> Edit &#8594; Clear all outputs</p><p>3. <strong>**Re-run from Step 5:**</strong> Model downloads resume where they left off</p><p>If still stuck after 15 minutes, it&#8217;s likely a HuggingFace server issue. Wait 30 min and retry.</p><div><hr></div><h3><strong>Q: &#8220;Translation has simplified + traditional Chinese mixed?&#8221;</strong></h3><p><strong>**A:**</strong> This <strong>**should be fixed**</strong> in latest version. We added `opencc-python-reimplemented` to backend.</p><p>If still happening:</p><pre><code>cd trans-gemma &amp;&amp; git pull</code></pre><p></p><p>Then restart notebook.</p><div><hr></div><h3><strong>Q: &#8220;Can I translate non-arXiv PDFs?&#8221;</strong></h3><p><strong>**A:**</strong> The current notebook is optimized for arXiv URLs. For local PDFs, modify:</p><pre><code># Instead of:

pdf_path, total = download_arxiv(ARXIV_ID)

# Use:

pdf_path = &#8220;/content/your_paper.pdf&#8221;

total = len(fitz.open(pdf_path))</code></pre><p>Then run translation cells as normal.</p><div><hr></div><h3><strong>Q: &#8220;Is this safe for commercial use?&#8221;</strong></h3><p><strong>**A:**</strong> Tricky question:</p><p>- <strong>**Code (MIT license):**</strong> Yes, use commercially</p><p>- <strong>**Gemma model:**</strong> Read [Terms of Use](https://ai.google.dev/gemma/terms)</p><p>- <strong>**Colab:**</strong> Free tier meant for learning/research</p><p><strong>**My advice:**</strong> Use for research/learning. If you&#8217;re making money from translations, consider:</p><p>- Running on your own GPU</p><p>- Using Colab Pro (legitimized commercial use)</p><p>- Checking Gemma&#8217;s commercial terms carefully</p><div><hr></div><h3><strong>Key Technical Decisions</strong></h3><p><strong>**1. Simple Prompt Over Chat Template**</strong></p><p>Initially, we used HuggingFace&#8217;s `apply_chat_template()`:</p><pre><code># Old approach (failed on pages with tables/math)

messages = [{

&#8220;role&#8221;: &#8220;user&#8221;,

&#8220;content&#8221;: [{&#8221;type&#8221;: &#8220;text&#8221;, &#8220;text&#8221;: text, ...}]

}]

inputs = tokenizer.apply_chat_template(messages, ...)</code></pre><p></p><p><strong>**Problem:**</strong> Pages with heavy formatting confused the template, and extraction logic failed.</p><p><strong>**Fix:**</strong> Switched to dead-simple prompt:</p><pre><code># New approach (rock solid)

prompt = f&#8220;&#8221;&#8220;Translate the following text from {source_lang} to Traditional Chinese (Taiwan, &#32321;&#39636;&#20013;&#25991;). Only output the translation, do not include explanations:

{text}

Translation:&#8221;&#8220;&#8221;

inputs = tokenizer(prompt, return_tensors=&#8221;pt&#8221;)</code></pre><p></p><p><strong>**Result:**</strong> 100% success rate across all page types.</p><div><hr></div><p></p><p><strong>**2. OpenCC Post-Processing**</strong></p><p>TranslateGemma 4B tends to output <strong>**Simplified Chinese**</strong> by default, even when asked for Traditional.</p><p>Solution: <strong>**Always post-process**</strong> for zh-TW:</p><pre><code>if target_lang == &#8220;zh-TW&#8221;:

from opencc import OpenCC

    cc = OpenCC(&#8217;s2twp&#8217;)  # Simplified &#8594; Traditional (Taiwan phrases)

    translation = cc.convert(translation)</code></pre><p></p><p>This ensures:</p><p>- &#22522;&#20110; &#8594; &#22522;&#26044;</p><p>- &#36731;&#37327;&#32423; &#8594; &#36629;&#37327;&#32026;</p><p>- &#36825;&#20123; &#8594; &#36889;&#20123;</p><p>Taiwan readers notice these details!</p><div><hr></div><p><strong>**3. Dynamic Environment Detection**</strong></p><p>Same notebook runs on Colab, GCP, or local Jupyter:</p><pre><code>def detect_environment():

try:

import google.colab

return &#8216;colab&#8217;

except ImportError:

pass

if os.path.exists(&#8217;/opt/conda/envs/py310&#8217;):

return &#8216;gcp&#8217;

return &#8216;local&#8217;</code></pre><p></p><p></p><p>Then:</p><pre><code>if ENV == &#8216;colab&#8217;:

# Lightweight installs

elif ENV == &#8216;gcp&#8217;:

# Custom runtime configs

else:

# Local includes PyTorch</code></pre><p></p><p><strong>**Why?**</strong> Colab has PyTorch pre-installed; local doesn&#8217;t. One notebook, zero friction.</p><div><hr></div><p><strong>**4. Progressive HTML Generation**</strong></p><p>Instead of loading entire paper at once, the HTML uses:</p><pre><code>// Page navigation with keyboard shortcuts

let currentPage = 0;

function showPage(n) {

document.querySelectorAll(&#8217;.page&#8217;).forEach(p =&gt; p.style.display = &#8216;none&#8217;);

document.getElementById(`page-${n}`).style.display = &#8216;block&#8217;;

currentPage = n;

}

document.addEventListener(&#8217;keydown&#8217;, e =&gt; {

if (e.key === &#8216;ArrowLeft&#8217;) showPage(currentPage - 1);

if (e.key === &#8216;ArrowRight&#8217;) showPage(currentPage + 1);

});</code></pre><p></p><p><strong>**Benefit:**</strong> Even 50-page papers load instantly in browser.</p><div><hr></div><h2><strong>&#127919; Who This Is (and Isn&#8217;t) For</strong></h2><h3><strong>&#9989; Perfect For:</strong></h3><p><strong>**Graduate Students**</strong></p><p>- Reading 5-10 papers per week</p><p>- Budget: $0</p><p>- Time: Can wait 3 min/page for quality translations</p><p>- Bonus: Learn English terminology via side-by-side reading</p><p><strong>**Non-native English Researchers**</strong></p><p>- Deep-reading important papers</p><p>- Want to <strong>**understand**</strong>, not just skim</p><p>- Appreciate bilingual layout for learning</p><p><strong>**AI/ML Engineers Keeping Current**</strong></p><p>- Track latest arXiv preprints</p><p>- Translate abstract + intro first, decide if worth full read</p><p>- Free tier is plenty for 2-3 papers daily</p><div><hr></div><h3><strong>&#10060; Not Ideal For:</strong></h3><p><strong>**Urgent Deadlines**</strong></p><p>- If you need a paper translated in 5 minutes, use Claude/GPT-4 API</p><p>- They&#8217;re faster (~10 sec/page), just costs $0.01-0.02 per page</p><p><strong>**Large-Scale Translation**</strong></p><p>- Translating 100 papers &#8594; you&#8217;ll hit Colab quotas</p><p>- Consider running on your own GPU or cloud instance</p><p><strong>**Commercial Translation Services**</strong></p><p>- Check Gemma Terms of Use carefully</p><p>- May need different licensing</p><div><hr></div><h2><strong>&#128302; What&#8217;s Next for This Project</strong></h2><p>I&#8217;m actively developing this, and here&#8217;s what&#8217;s coming:</p><h3><strong>Short-term (Next Month)</strong></h3><p>- &#128284; <strong>**Auto-language detection**</strong> from paper metadata</p><p>- &#128284; <strong>**DOCX/Markdown output**</strong> formats (not just HTML)</p><p>- &#128284; <strong>**Batch mode:**</strong> Translate multiple papers in one go</p><p>- &#128284; <strong>**Dark mode**</strong> for HTML output</p><p><strong>### Medium-term (Next Quarter)</strong></p><p>- &#128284; <strong>**Gemma 2/3 support**</strong> when released</p><p>- &#128284; <strong>**Terminology glossary**</strong> extraction (build your own vocab list)</p><p>- &#128284; <strong>**Figure/table captions**</strong> translation</p><p>- &#128284; <strong>**API mode**</strong> for programmatic access</p><p><strong>### Long-term (This Year)</strong></p><p>- &#128284; <strong>**Web UI**</strong> (no notebook required)</p><p>- &#128284; <strong>**Mobile app**</strong> for reading on-the-go</p><p>- &#128284; <strong>**Community translations**</strong> (share &amp; reuse)</p><p>Want to contribute? <strong>**Pull requests welcome!**</strong> &#8594; [GitHub](https://github.com/jimmyliao/trans-gemma)</p><p>---</p><h2><strong>&#128640; Your Turn: Translate Your First Paper</strong></h2><p>Alright, you&#8217;ve read 3000+ words about this. Time to actually try it.</p><p><strong>### 5-Minute Challenge:</strong></p><p>1. <strong>**Pick a paper:**</strong> Go to [arXiv.org](https://arxiv.org), find something interesting</p><p>2. <strong>**Copy the ID:**</strong> It looks like `2403.08295` (from URL)</p><p>3. <strong>**Click this badge:**</strong> [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/jimmyliao/trans-gemma/blob/main/arxiv-reader.ipynb)</p><p>4. <strong>**Enable T4 GPU:**</strong> Runtime &#8594; Change runtime type &#8594; T4 GPU</p><p>5. <strong>**Run all cells:**</strong> Runtime &#8594; Run all (or Ctrl+F9)</p><p>6. <strong>**Wait ~10 minutes**</strong> (first run includes model download)</p><p>7. <strong>**Download the HTML**</strong> and open in browser</p><p><strong>**Boom.**</strong> You just translated an academic paper for free.</p><div><hr></div><h2><strong>&#128172; Let&#8217;s Make This Better Together</strong></h2><p><strong>**If this helped you:**</strong></p><p>- &#11088; <strong>**Star the repo:**</strong> [<a href="https://github.com/jimmyliao/trans-gemma">github.com/jimmyliao/trans-gemma</a>]</p><p>- &#128027; <strong>**Report bugs:**</strong> [<a href="https://github.com/jimmyliao/trans-gemma/issues">Open an issue</a>]</p><p>- &#128161; <strong>**Share ideas:**</strong> [<a href="https://github.com/jimmyliao/trans-gemma/discussions">Start a discussion</a>]</p><p>Open source makes projects like this possible. Thank you! &#128588;</p><div><hr></div><p><strong>**P.S.**</strong> If you made it this far, you&#8217;re either genuinely interested or an excellent skimmer. Either way, I appreciate you reading. Now go translate something! &#128218;&#10024;</p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[公告: 預計推出訂閱制內容]]></title><description><![CDATA[Substack &#22312;&#21488;&#28771;&#25910;&#36027;&#22826;&#40635;&#29033;, &#24050;&#32147;&#25214;&#22909;&#24179;&#21488;, stay tuned]]></description><link>https://memo.jimmyliao.net/p/a75</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/a75</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Mon, 22 Dec 2025 02:05:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#36889;&#31687;&#23601;&#30070;&#20316;&#38568;&#24847;&#23531;&#23531;.</p><p>&#22039;&#35430;&#19981;&#23569;&#38651;&#23376;&#22577;/Blogpost &#24179;&#21488;, &#26368;&#36817;&#25171;&#31639;&#36681;&#24448;&#25910;&#36027;&#24179;&#21488;, &#25165;&#30332;&#29694;&#37341;&#23565;&#21488;&#28771;&#29305;&#26377;&#27861;&#35215;, &#35201;&#25910;&#36027;&#36996;&#30495;&#26159;&#40635;&#29033;. Stripe &#25033;&#35442;&#26159;&#26368;&#31777;&#21934;, &#20294;&#26159;&#21488;&#28771;&#37329;&#27969;&#8230; </p><p>&#21478;&#19968;&#20491;&#21487;&#33021;&#26041;&#21521;&#23601;&#26159;, &#37096;&#20998;&#20173;&#28982;&#26371;&#26159;&#20813;&#36027;, &#20294;&#26159;&#26377;&#20123;&#26159;&#26989;&#30028;&#32147;&#39511;/&#22238;&#39243;, &#20197;&#21450;&#20491;&#20154;&#30340;&#35264;&#23519;&#24515;&#24471;, &#24819;&#35201;&#32173;&#25345;&#26356;&#26377;&#21697;&#36074;&#30340;&#36664;&#20986;. &#21407;&#26377;&#35330;&#38321;&#30340;&#26379;&#21451;&#20063;&#21487;&#20197;&#30452;&#25509;&#22238;&#20449;&#32102;&#25105;&#20320;&#30340;&#24819;&#27861;, &#26377;&#24847;&#39000;&#21487;&#20197;&#22238;&#20449;&#36319;&#25105;&#35498;&#19968;&#32882;, &#25105;&#26371;&#20778;&#20808;&#21015;&#20837;&#22312;&#26032;&#30340;&#35330;&#38321;&#26381;&#21209;&#35041;. &#128583;</p><p></p><p>&#38928;&#35336;&#25910;&#36027;&#21487;&#33021;&#26159;&#35330;&#38321;&#21046; (&#19968;&#24180;, &#19968;&#20491;&#26376;), &#20294;&#26159;&#25910;&#36027;&#20839;&#23481;&#36996;&#22312;&#35330;&#23450;&#20013;, &#26082;&#28982;&#26159;&#32173;&#25345;&#21407;&#26412;&#20844;&#38283;&#20813;&#36027;&#29256;&#26412;+&#36914;&#38542;&#32893;&#32773;&#25910;&#36027;, &#20839;&#23481;&#20063;&#26371;&#36319;&#33879;&#25512;&#20986;&#30340;&#26381;&#21209;&#35519;&#25972;. &#20294;&#20027;&#35201;&#26159;&#24819;&#32893;&#32893;&#35712;&#32773;&#20497;&#30340;&#22238;&#39243;, &#20320;&#35258;&#24471;&#27604;&#36611;&#21512;&#29702;&#30340;&#35330;&#38321;&#21046;&#20839;&#23481;&#26159;&#65311;&#21487;&#20197;&#30452;&#25509;&#22238;&#20449; (<a href="http://brewbuild@substack.com">brewbuild@substack.com</a>) &#25110;&#26159;&#30041;&#35328;.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d29J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d29J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg 424w, https://substackcdn.com/image/fetch/$s_!d29J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg 848w, https://substackcdn.com/image/fetch/$s_!d29J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!d29J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d29J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg" width="80" height="79.91666666666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:959,&quot;width&quot;:960,&quot;resizeWidth&quot;:80,&quot;bytes&quot;:43215,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/182281989?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!d29J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg 424w, https://substackcdn.com/image/fetch/$s_!d29J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg 848w, https://substackcdn.com/image/fetch/$s_!d29J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!d29J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6541115-26bc-41bf-bbec-b53a36716f3a_960x959.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Nano Banana Lab：從 Prompt 到 App，用 Google AI Studio 快速實現你的想法]]></title><description><![CDATA[AI first &#30340;&#24037;&#20316;&#27969; &#12300;&#24819;&#27861;&#8594;&#25033;&#29992;&#12301;: &#22914;&#20309;&#25345;&#32396;&#28204;&#35430;&#12289;&#20462;&#25913;&#12289;&#30332;&#24067;&#30340;&#23526;&#25136;&#26696;&#20363;&#12290;&#36889;&#31687;&#20063;&#26159;&#37341;&#23565;&#20043;&#21069; DevFest Taipei Workshop &#25105;&#19968;&#30452;&#24456;&#24819;&#24118;&#33879;&#21443;&#33287;&#32773;&#19968;&#36215;&#20570;&#23436;&#30340;&#37096;&#20998;&#65292;&#19968;&#27425;&#25630;&#23450;&#23427;&#12290;]]></description><link>https://memo.jimmyliao.net/p/nano-banana-lab-prompt-app-google</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/nano-banana-lab-prompt-app-google</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Tue, 16 Dec 2025 15:05:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-Qgo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-Qgo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-Qgo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png 424w, https://substackcdn.com/image/fetch/$s_!-Qgo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png 848w, https://substackcdn.com/image/fetch/$s_!-Qgo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png 1272w, https://substackcdn.com/image/fetch/$s_!-Qgo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-Qgo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png" width="548" height="473.11801242236027" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1112,&quot;width&quot;:1288,&quot;resizeWidth&quot;:548,&quot;bytes&quot;:244862,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-Qgo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png 424w, https://substackcdn.com/image/fetch/$s_!-Qgo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png 848w, https://substackcdn.com/image/fetch/$s_!-Qgo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png 1272w, https://substackcdn.com/image/fetch/$s_!-Qgo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F315fe55d-6efe-4b16-9dad-4021a5baf74a_1288x1112.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2><strong>1. AI First &#38283;&#30332;&#20043;&#26044;&#20659;&#32113;&#36575;&#39636;&#38283;&#30332;&#30340;&#24433;&#38911;</strong></h2><h3><strong>&#20659;&#32113;&#38283;&#30332; vs AI Fist &#39493;&#21205;&#38283;&#30332;</strong></h3><p><strong>&#20659;&#32113;&#38283;&#30332;&#27969;&#31243;</strong>&#65306;</p><ol><li><p>&#27083;&#24605;&#24819;&#27861; &#8594; 2. &#23416;&#32722;&#26694;&#26550; &#8594; 3. &#29872;&#22659;&#35373;&#23450; &#8594; 4. &#25776;&#23531;&#31243;&#24335;&#30908; &#8594; 5. &#38500;&#37679; &#8594; 6. &#37096;&#32626;</p></li></ol><ul><li><p>&#26178;&#38291;&#25104;&#26412;&#65306;&#24448;&#24448;&#38656;&#35201;&#22909;&#24190;&#20491;&#24037;&#20316;&#26085;&#65292;&#29978;&#33267;&#26159;&#38656;&#35201;&#33287;&#22810;&#20491;&#32887;&#33021;&#36000;&#36012;&#20154;&#28317;&#36890;</p></li><li><p>&#25216;&#34899;&#38272;&#27323;&#65306;&#38656;&#35201;&#28145;&#21402;&#30340;&#31243;&#24335;&#35373;&#35336;&#32147;&#39511;</p></li><li><p>&#36845;&#20195;&#36895;&#24230;&#65306;&#27599;&#27425;&#20462;&#25913;&#37117;&#38656;&#35201;&#23436;&#25972;&#30340;&#38283;&#30332;&#36913;&#26399; (ex. &#25490;&#20837; Backlog, PRD review etc.)</p></li></ul><p><strong>AI First &#38283;&#30332;</strong>&#65306;</p><ol><li><p>&#25551;&#36848;&#24819;&#27861;&#65288;Prompt&#65289;&#8594; 2. AI &#29983;&#25104;&#23436;&#25972;&#25033;&#29992; &#8594; 3. &#28204;&#35430; &#8594; 4. &#23565;&#35441;&#24335;&#20462;&#25913; &#8594; 5. &#37325;&#26032;&#37096;&#32626;</p></li></ol><ul><li><p>&#26178;&#38291;&#25104;&#26412;&#65306;&#25976;&#23567;&#26178; (&#36889;&#27425;&#25105;&#22823;&#27010;&#21482;&#33457;&#20102; 1-1.5 &#23567;&#26178;)</p></li><li><p>&#25216;&#34899;&#38272;&#27323;&#65306;&#26371;&#23531; Prompt &#23601;&#33021;&#38283;&#30332;</p></li><li><p>&#36845;&#20195;&#36895;&#24230;&#65306;&#23565;&#35441;&#21363;&#20462;&#25913;&#65292;&#21363;&#26178;&#30475;&#21040;&#32080;&#26524;</p></li></ul><h3><strong>&#26412;&#25991;&#23637;&#31034;&#20102;&#20160;&#40636;</strong></h3><p>&#36889;&#31687;&#25991;&#31456;&#35352;&#37636;&#20102; <strong>**Nano Banana Lab**</strong> &#30340;&#23436;&#25972;&#38283;&#30332;&#36942;&#31243;&#65292;&#19968;&#20491;&#29992; Google AI Studio &#24478;&#38646;&#21040;&#37096;&#32626;&#30340; IP &#35282;&#33394;&#29983;&#25104;&#25033;&#29992;&#12290;&#26356;&#37325;&#35201;&#30340;&#26159;&#65292;&#23637;&#31034;&#20102;&#65306;</p><p>&#9989; <strong>**&#22914;&#20309;&#29992; Prompt &#24555;&#36895;&#23559;&#24819;&#27861;&#36681;&#21270;&#28858;&#21487;&#36939;&#34892;&#30340;&#25033;&#29992;**</strong></p><p>&#9989; <strong>**&#22914;&#20309;&#36879;&#36942;&#23565;&#35441;&#25345;&#32396;&#28204;&#35430;&#12289;&#20462;&#25913;&#12289;&#30332;&#24067;**</strong></p><p>&#9989; <strong>**&#22914;&#20309;&#35731;&#38283;&#30332;&#32773;&#33287; Builder &#24555;&#36895;&#23526;&#36368;&#21109;&#24847;**</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0mkn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0mkn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0mkn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0mkn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0mkn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0mkn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg" width="1280" height="712" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:712,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78940,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0mkn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0mkn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0mkn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0mkn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98e54e59-ae0d-4ab6-beb2-44716aeea1dc_1280x712.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294; 1&#65306;Nano Banana Lab &#30340;&#22294;&#20687;&#32232;&#36655;&#20171;&#38754; &#8212; &#24478;&#24819;&#27861;&#21040;&#36889;&#20491;&#25033;&#29992;&#65292;&#21482;&#33457;&#20102;1&#23567;&#26178;*</em></p><h3><strong>Nano Banana Lab &#26159;&#20160;&#40636;</strong></h3><p>&#19968;&#20491;&#28858; IP &#35282;&#33394;&#12300;Jimmy&#12301;&#35373;&#35336;&#30340;&#22810;&#27169;&#24907;&#20839;&#23481;&#29983;&#25104;&#24037;&#20855;&#65292;&#25552;&#20379;&#65306;</p><ul><li><p><strong>**DNA &#27169;&#24335;**</strong>&#65306;&#25991;&#29983;&#22294;&#65292;&#22522;&#26044;&#12300;Visual DNA&#12301;&#29983;&#25104;&#19968;&#33268;&#24615;&#35282;&#33394;</p></li><li><p><strong>**&#32232;&#36655;&#27169;&#24335;**</strong>&#65306;&#22294;&#29983;&#22294;&#65292;AI &#36628;&#21161;&#22294;&#20687;&#32232;&#36655;</p></li><li><p><strong>**Veo &#27169;&#24335;**</strong>&#65306;&#22294;&#29983;&#24433;&#29255;&#65292;&#23559;&#38748;&#24907;&#22294;&#20687;&#36681;&#25563;&#28858;&#30701;&#24433;&#29255;</p></li></ul><p><strong>&#38364;&#37749;</strong>&#65306;</p><ul><li><p>No-Build &#26550;&#27083;&#65288;&#28961;&#38656; npm&#12289;webpack&#65289;</p></li><li><p>BYOK &#23433;&#20840;&#27231;&#21046;&#65288;Bring Your Own Key&#65289;</p></li><li><p>&#23436;&#25972;&#30340;&#23384;&#21462;&#25511;&#21046;&#65288;Passcode + Idle Timeout&#65289;</p></li></ul><p>&#37325;&#35201;&#30340;&#26159;&#65306;<strong>&#36889;&#20491;&#25033;&#29992;&#23436;&#20840;&#30001; AI Studio &#23565;&#35441;&#29983;&#25104;&#65292;&#20006;&#22312;&#25345;&#32396;&#23565;&#35441;&#20013;&#23436;&#25104; 4 &#27425;&#21151;&#33021;&#20462;&#25913;&#12290;</strong></p><p></p><div><hr></div><h2><strong>2. &#25104;&#26524;&#23637;&#31034;&#65306;&#20808;&#30475;&#30475;&#25105;&#20497;&#20570;&#20986;&#20102;&#20160;&#40636;</strong></h2><p>&#22312;&#28145;&#20837;&#38283;&#30332;&#36942;&#31243;&#20043;&#21069;&#65292;&#20808;&#30475;&#30475;&#26368;&#32066;&#25104;&#26524;&#65292;&#35731;&#24744;&#20102;&#35299;&#36889;&#20491;&#25033;&#29992;&#30340;&#23526;&#38555;&#25928;&#26524;&#12290;</p><h3><strong>&#25033;&#29992;&#21151;&#33021;&#27010;&#35261;</strong></h3><p>Nano Banana Lab &#25972;&#21512;&#20102;&#19977;&#20491;&#26680;&#24515;&#21151;&#33021;&#65292;&#25552;&#20379;&#23436;&#25972;&#30340; IP &#35282;&#33394;&#20839;&#23481;&#29983;&#25104;&#24037;&#20316;&#27969;&#65306;</p><p>1. <strong>**DNA &#27169;&#24335;**</strong>&#65306;&#24555;&#36895;&#29983;&#25104;&#19968;&#33268;&#24615;&#35282;&#33394;&#22294;&#20687;</p><p>2. <strong>**&#32232;&#36655;&#27169;&#24335;**</strong>&#65306;&#31934;&#32048;&#35519;&#25972;&#22294;&#20687;&#32048;&#31680;</p><p>3. <strong>**Veo &#27169;&#24335;**</strong>&#65306;&#23559;&#38748;&#24907;&#22294;&#20687;&#36681;&#25563;&#28858;&#21205;&#24907;&#24433;&#29255;</p><h3><strong>Demo &#24433;&#29255;</strong></h3><p><strong>&#23436;&#25972;&#24037;&#20316;&#27969;&#31243;&#28436;&#31034;</strong></p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;45ef703e-b3e6-4081-b341-9bb4fde03db7&quot;,&quot;duration&quot;:null}"></div><p><strong>**Veo &#24433;&#29255;&#29983;&#25104;&#28436;&#31034;**</strong></p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;013cb0c7-8d12-46cf-a1a6-468de95358d0&quot;,&quot;duration&quot;:null}"></div><p></p><p>&#27492;&#24433;&#29255;&#23637;&#31034;&#65306;</p><p>- &#19978;&#20659; Jimmy &#35282;&#33394;&#22294;&#20687;</p><p>- &#36664;&#20837;&#21205;&#30059;&#25552;&#31034;&#35422;&#65288;&#12300;&#36339;&#20491; Rat Dance&#12301;&#65289;</p><p>- &#31561;&#24453; Veo &#29983;&#25104; 5 &#31186;&#30701;&#24433;&#29255;</p><p>- &#25773;&#25918;&#33287;&#19979;&#36617;&#29983;&#25104;&#30340;&#24433;&#29255;</p><h3><strong>&#23526;&#38555;&#29983;&#25104;&#31684;&#20363;</strong></h3><p><strong>**Jimmy &#35282;&#33394;&#30340; Visual DNA &#29983;&#25104;&#32080;&#26524;**</strong></p><p>&#22522;&#26044;&#30456;&#21516;&#30340; Visual DNA Prompt&#65292;&#27169;&#22411;&#33021;&#22816;&#29983;&#25104;&#20855;&#26377;&#19968;&#33268;&#35222;&#35258;&#29305;&#24501;&#30340;&#35282;&#33394;&#22294;&#20687;&#65306;</p><p>&#32080;&#26524;&#65306;&#35282;&#33394;&#20027;&#39636;&#29305;&#24501;&#20445;&#25345;&#19981;&#35722;&#65292;&#25104;&#21151;&#36681;&#25563;&#28858;&#24433;&#29255;&#12290;</p><p><strong>**&#24433;&#29255;&#29983;&#25104;&#31034;&#20363;**</strong></p><p>&#21205;&#30059;&#25552;&#31034;&#35422;&#65306;&#12300;&#36339;&#20491; Rat Dance&#12301;</p><p>&#32080;&#26524;&#65306;Jimmy &#35282;&#33394;&#20197; Pixar &#39080;&#26684;&#22519;&#34892;&#36339;&#33310;&#21205;&#20316;&#65292;&#20445;&#25345;&#35222;&#35258;&#19968;&#33268;&#24615;&#65292;&#21205;&#20316;&#27969;&#26274;&#33258;&#28982;&#12290;</p><p>---</p><h2><strong>3. AI First (with AI Studio) &#39493;&#21205;&#30340;&#38283;&#30332;&#24037;&#20316;&#27969;</strong></h2><h3><strong>&#26680;&#24515;&#24490;&#29872;&#65306;Prompt &#8594; Code &#8594; Test &#8594; Deploy &#8594; Iterate</strong></h3><p>&#36889;&#26159; Nano Banana Lab &#30340;&#23436;&#25972;&#38283;&#30332;&#27969;&#31243;&#65292;&#23637;&#31034;&#22914;&#20309;&#36879;&#36942; AI Studio &#23526;&#29694;&#24555;&#36895;&#36845;&#20195;&#65306;</p><pre><code>&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;                    &#38283;&#30332;&#24490;&#29872;                          &#9474;
&#9474;                                                     &#9474;
&#9474;  1. Prompt&#65288;&#25551;&#36848;&#24819;&#27861;&#65289;                                &#9474;
&#9474;         &#8595;                                           &#9474;
&#9474;  2. AI &#29983;&#25104;&#31243;&#24335;&#30908;                                    &#9474;
&#9474;         &#8595;                                           &#9474;
&#9474;  3. &#28204;&#35430;&#65288;&#30332;&#29694;&#21839;&#38988;&#65289;                                  &#9474;
&#9474;         &#8595;                                           &#9474;
&#9474;  4. &#23565;&#35441;&#24335;&#20462;&#25913;&#65288;&#25552;&#20986;&#38656;&#27714;&#65289;                             &#9474;
&#9474;         &#8595;                                           &#9474;
&#9474;  5. AI &#20462;&#27491;&#31243;&#24335;&#30908;                                    &#9474;
&#9474;         &#8595;                                           &#9474;
&#9474;  6. &#37096;&#32626;&#65288;Cloud Run / &#26412;&#22320;&#65289;                          &#9474;
&#9474;         &#8595;                                           &#9474;
&#9474;  &#22238;&#21040;&#27493;&#39519; 3&#65288;&#25345;&#32396;&#36845;&#20195;&#65289;                                &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;</code></pre><p></p><div><hr></div><h3><strong>&#31532; 1 &#36650;&#65306;&#21021;&#22987; Prompt &#8594; &#23436;&#25972;&#25033;&#29992;</strong></h3><p><strong>**&#20351;&#29992;&#32773;&#30340;&#21021;&#22987;&#24819;&#27861;**</strong>&#65288;&#29992;&#33258;&#28982;&#35486;&#35328;&#25551;&#36848;&#65289;&#65306;</p><p>&#25105;&#26159;&#30452;&#25509;&#20808;&#29992; Gemini Web App (https://gemini.google.com) &#20808;&#35342;&#35542;:</p><p>&gt; IP &#35222;&#35258;DNA&#30340;&#32232;&#30908;&#34899;&#65306; &#20351;&#29992;Nano Banana &#37956;&#36896;&#19968;&#33268;&#24615;&#35282;&#33394;&#30340;&#25033;&#29992;&#20195;&#29702;</p><p>&gt; &#32763;&#35695;&#25104;&#33521;&#25991;&#65292;&#25105;&#25171;&#31639;&#25918;&#21040; google ai studio &#30340; prompt &#29986;&#29983;&#30475;&#30475;, &#28982;&#24460;&#38928;&#35336;&#20808;&#26377;&#19968;&#20491;&#31684;&#20363; (&#25925;&#20107;&#24615;), &#29986;&#20986;&#20154;&#29289;&#22294;&#29255;, &#22312;&#25509;&#32396;&#29986;&#29983;&#24433;&#29255;.</p><p>&gt; &#25552;&#20379; prompt &#35731;&#25105;&#20043;&#24460;&#26041;&#20415;&#25171;&#36896; app, &#19981;&#26159;&#24171;&#25105;&#30452;&#25509;&#29986;&#22294;&#12290;</p><p></p><div><hr></div><p><strong>**Gemini &#30340;&#22238;&#25033;&#33287;&#29702;&#35299;**</strong>&#65306;</p><p>&#22909;&#30340;&#65292;&#38750;&#24120;&#25265;&#27465;&#65281;&#25105;&#29702;&#35299;&#24744;&#30340;&#24847;&#24605;&#20102;&#12290;&#24744;&#38656;&#35201;&#30340;&#26159;&#19968;&#20491;&#32080;&#27083;&#21270;&#30340;&#12289;&#21487;&#20197;&#37325;&#35079;&#20351;&#29992;&#30340; Prompt &#31684;&#26412;&#65292;&#20197;&#20415;&#22312; Google AI Studio &#20013;&#37956;&#36896;&#20986;&#21517;&#28858; Jimmy &#30340;&#19968;&#33268;&#24615; IP &#35282;&#33394;&#65292;&#20006;&#33021;&#23559;&#36889;&#20491; <strong>**&#35222;&#35258; DNA**</strong> &#25033;&#29992;&#26044;&#22294;&#29255;&#21644;&#24433;&#29255;&#29983;&#25104;&#12290;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-Li3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-Li3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png 424w, https://substackcdn.com/image/fetch/$s_!-Li3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png 848w, https://substackcdn.com/image/fetch/$s_!-Li3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png 1272w, https://substackcdn.com/image/fetch/$s_!-Li3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-Li3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png" width="1132" height="1248" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1248,&quot;width&quot;:1132,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:247847,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-Li3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png 424w, https://substackcdn.com/image/fetch/$s_!-Li3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png 848w, https://substackcdn.com/image/fetch/$s_!-Li3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png 1272w, https://substackcdn.com/image/fetch/$s_!-Li3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F104d4942-639a-4872-bb2b-fb6acbe64fb8_1132x1248.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294; 1-2&#65306;Gemini &#29983;&#25104;&#30340; Jimmy IP &#35222;&#35258; DNA &#37956;&#36896; Prompt &#31684;&#26412;&#65288;&#31532;&#19968;&#37096;&#20998;&#65289;*</em></p><p><strong>**Jimmy &#30340; Visual DNA &#26680;&#24515;&#35373;&#23450;**</strong>&#65306;</p><p>- <strong>**CHARACTER NAME**</strong>: Jimmy</p><p>- <strong>**AESTHETIC STYLE**</strong>: High-detail 2D/3D hybrid rendering (Pixar meets Sci-Fi)</p><p>- <strong>**VISUAL DNA KEY TRAITS**</strong>:</p><p>1. <strong>**Hair**</strong>: Bright, spiky purple hair (Magenta/Violet tone)</p><p>2. <strong>**Signature Item**</strong>: Yellow banana headband with solar panel</p><p>3. <strong>**Outfit**</strong>: High-tech explorer jumpsuit (safety orange and neon green)</p><p>4. <strong>**Companion**</strong>: Pee-Wee&#65288;&#40643;&#33394;&#39321;&#34121;&#27231;&#22120;&#20154;&#22821;&#20276;&#65289;</p><p>5. <strong>**Expression/Vibe**</strong>: Energetic, curious, determined</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ncHX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ncHX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png 424w, https://substackcdn.com/image/fetch/$s_!ncHX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png 848w, https://substackcdn.com/image/fetch/$s_!ncHX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!ncHX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ncHX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png" width="996" height="1130" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1130,&quot;width&quot;:996,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:231563,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ncHX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png 424w, https://substackcdn.com/image/fetch/$s_!ncHX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png 848w, https://substackcdn.com/image/fetch/$s_!ncHX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!ncHX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff924cb1d-e3eb-4fa6-a9f9-068aaba91a6e_996x1130.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>*&#22294; 1-3&#65306;Prompt &#31684;&#26412;&#21253;&#21547;&#38748;&#24907;&#22294;&#29255;&#33287;&#21205;&#24907;&#24433;&#29255;&#30340;&#29983;&#25104;&#31684;&#20363;*</em></p><p><strong>**Prompt &#31684;&#26412;&#30340;&#25033;&#29992;&#22580;&#26223;**</strong>&#65306;</p><p>1. <strong>**&#38748;&#24907;&#22294;&#29255;&#29983;&#25104;&#31684;&#20363;&#65288;&#25925;&#20107;&#24615;&#25033;&#29992;&#65289;**</strong>:</p><p>- TASK: Generate a full-body, high-resolution static image of Jimmy</p><p>- SCENE CONTEXT: Jimmy &#22312;&#22806;&#26143;&#21474;&#26519;&#20013;&#65292;&#31449;&#22312;&#24040;&#22823;&#30340;&#27231;&#22120;&#20154;&#38613;&#20687;&#38957;&#19978;</p><p>- CAMERA/LIGHTING: Wide shot, &#24375;&#35519;&#38675;&#34425;&#20809;&#25928;</p><p>2. <strong>**&#21205;&#24907;&#24433;&#29255;&#29983;&#25104;&#28310;&#20633;&#65288;&#21205;&#20316;&#19968;&#33268;&#24615;&#65289;**</strong>:</p><p>- TASK: Describe a 5-second action sequence</p><p>- ACTION/MOTION SEQUENCE: Jimmy &#24478;&#27231;&#22120;&#20154;&#38957;&#19978;&#36339;&#36493;&#33267;&#34321;&#33735;&#24125;</p><p>- &#30906;&#20445; Jimmy &#30340;&#35222;&#35258;&#19968;&#33268;&#24615;&#22312;&#25972;&#20491;&#21205;&#20316;&#20013;&#20445;&#25345;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bTEb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bTEb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png 424w, https://substackcdn.com/image/fetch/$s_!bTEb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png 848w, https://substackcdn.com/image/fetch/$s_!bTEb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png 1272w, https://substackcdn.com/image/fetch/$s_!bTEb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bTEb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png" width="1054" height="1114" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1114,&quot;width&quot;:1054,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:218979,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bTEb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png 424w, https://substackcdn.com/image/fetch/$s_!bTEb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png 848w, https://substackcdn.com/image/fetch/$s_!bTEb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png 1272w, https://substackcdn.com/image/fetch/$s_!bTEb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F745fd1aa-3e26-4d53-b6c1-71f568153efa_1054x1114.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294; 1-4&#65306;Gemini &#35498;&#26126;&#22914;&#20309;&#22312;&#38283;&#30332; App &#26178;&#20351;&#29992;&#36889;&#20491; Visual DNA Prompt &#31684;&#26412;*</em></p><p><strong>**&#22914;&#20309;&#20351;&#29992;&#36889;&#20491;&#31684;&#26412;**</strong>&#65306;</p><p>- &#22312;&#38283;&#30332; App &#26178;&#65292;&#21487;&#20197;&#23559;&#12300;<strong>**&#26680;&#24515; IP &#35222;&#35258; DNA &#35373;&#23450;**</strong>&#12301;&#20316;&#28858;&#22266;&#23450;&#30340;&#21443;&#25976;&#27169;&#32068;</p><p>- &#30070;&#20351;&#29992;&#32773;&#36984;&#25799;&#29983;&#25104;&#22294;&#29255;&#25110;&#24433;&#29255;&#26178;&#65292;&#21482;&#38656;&#20462;&#25913;&#12300;&#25033;&#29992; 1&#12301;&#25110;&#12300;&#25033;&#29992; 2&#12301;&#20013;&#30340; <strong>**SCENE/TASK &#20839;&#23481;**</strong></p><p>- &#36889;&#27171;&#28961;&#35542;&#22580;&#26223;&#22914;&#20309;&#35722;&#21270;&#65292;AI &#37117;&#26371;&#34987;&#36861;&#36843;&#36981;&#23432; Jimmy &#30340;&#26680;&#24515;&#35222;&#35258;&#29305;&#24501;&#65288;&#38957;&#39662;&#12289;&#39321;&#34121;&#38957;&#24118;&#12289;&#21046;&#26381;&#31561;&#65289;&#65292;&#24478;&#32780;&#23526;&#29694;&#35222;&#35258;&#19968;&#33268;&#24615;</p><p></p><div><hr></div><p><strong>**&#24478; Visual DNA &#21040;&#23436;&#25972;&#25033;&#29992;**</strong>&#65306;</p><p>&#26377;&#20102;&#36889;&#20491; Prompt &#31684;&#26412;&#24460;&#65292;&#19979;&#19968;&#27493;&#23601;&#26159;&#23559;&#23427;&#25972;&#21512;&#21040;&#25033;&#29992;&#20013;&#12290;&#25105;&#23559;&#36889;&#20491;&#31684;&#26412;&#24118;&#21040; <strong>**Google AI Studio**</strong>&#65292;&#20006;&#29992;&#23427;&#20358;&#29983;&#25104;&#23436;&#25972;&#30340; React &#25033;&#29992;&#31243;&#24335;&#12290;</p><p>- &#25171;&#38283; AI Studio &#36984;&#21462;&#36889;&#20491;&#31684;&#26412;:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k2kp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k2kp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png 424w, https://substackcdn.com/image/fetch/$s_!k2kp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png 848w, https://substackcdn.com/image/fetch/$s_!k2kp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png 1272w, https://substackcdn.com/image/fetch/$s_!k2kp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!k2kp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png" width="880" height="210" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:210,&quot;width&quot;:880,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30653,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!k2kp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png 424w, https://substackcdn.com/image/fetch/$s_!k2kp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png 848w, https://substackcdn.com/image/fetch/$s_!k2kp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png 1272w, https://substackcdn.com/image/fetch/$s_!k2kp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0f34ec2-a579-41e4-8af5-5223c5b048a5_880x210.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>- &#36028;&#19978;&#21083;&#21083;&#36879;&#36942; Gemini Web App &#29986;&#29983;&#30340; Prompt </p><p><strong>**AI Studio &#30340;&#22238;&#25033;**</strong>&#65306;</p><p>&#27169;&#22411;&#29702;&#35299;&#38656;&#27714;&#20043;&#24460;&#65292;&#29986;&#29983;&#19968;&#19979;&#27284;&#26696;:</p><p>- `index.html`&#65306;&#21253;&#21547; Import Maps &#30340;&#20837;&#21475;&#27284;&#26696;</p><p>- `App.tsx`&#65306;&#20027;&#25033;&#29992;&#37007;&#36655;&#65288;&#29376;&#24907;&#31649;&#29702;&#12289;&#36335;&#30001;&#65289;</p><p>- `components/CharacterGenerator.tsx`&#65306;DNA &#29983;&#25104;&#32068;&#20214;</p><p>- `components/ImageEditor.tsx`&#65306;&#22294;&#20687;&#32232;&#36655;&#32068;&#20214;</p><p>- `components/VideoGenerator.tsx`&#65306;Veo &#24433;&#29255;&#29983;&#25104;&#32068;&#20214;</p><p>- `services/geminiService.ts`&#65306;&#25152;&#26377; AI API &#21628;&#21483;&#37007;&#36655;</p><p><strong>**&#38364;&#37749;&#20142;&#40670;**</strong>&#65306;</p><p>- &#9989; Visual DNA &#25104;&#28858;&#25033;&#29992;&#30340;&#26680;&#24515;&#21443;&#25976;</p><p>- &#9989; &#38646;&#23433;&#35037;&#65292;&#30452;&#25509;&#21487;&#36939;&#34892;&#65288;No-Build&#65289;</p><p>- &#9989; &#23436;&#25972;&#30340;&#32068;&#20214;&#26550;&#27083;</p><p>- &#9989; &#38928;&#22635;&#30340; Jimmy Visual DNA Prompt</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tO1l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tO1l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png 424w, https://substackcdn.com/image/fetch/$s_!tO1l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png 848w, https://substackcdn.com/image/fetch/$s_!tO1l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png 1272w, https://substackcdn.com/image/fetch/$s_!tO1l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tO1l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png" width="1008" height="1286" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1286,&quot;width&quot;:1008,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:241649,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tO1l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png 424w, https://substackcdn.com/image/fetch/$s_!tO1l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png 848w, https://substackcdn.com/image/fetch/$s_!tO1l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png 1272w, https://substackcdn.com/image/fetch/$s_!tO1l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61f92476-f579-4f77-b8a3-273f9e6216ef_1008x1286.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294; 1-5&#65306;AI Studio &#30340; Code Assistant &#33258;&#21205;&#20998;&#26512;&#25033;&#29992;&#26550;&#27083;*</em></p><p><strong>**&#19968;&#37749;&#37096;&#32626;&#21040; Cloud Run**</strong>&#65306;</p><p>AI Studio &#26368;&#24375;&#22823;&#30340;&#21151;&#33021;&#20043;&#19968;&#65292;&#23601;&#26159;&#29983;&#25104;&#23436;&#25033;&#29992;&#24460;&#65292;&#21487;&#20197;&#30452;&#25509;&#40670;&#25802;&#12300;<strong>**Deploy app**</strong>&#12301;&#25353;&#37397;&#65292;&#19968;&#37749;&#37096;&#32626;&#21040; Google Cloud Run&#65306;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LxOh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LxOh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png 424w, https://substackcdn.com/image/fetch/$s_!LxOh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png 848w, https://substackcdn.com/image/fetch/$s_!LxOh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png 1272w, https://substackcdn.com/image/fetch/$s_!LxOh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LxOh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png" width="718" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:718,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32499,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LxOh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png 424w, https://substackcdn.com/image/fetch/$s_!LxOh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png 848w, https://substackcdn.com/image/fetch/$s_!LxOh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png 1272w, https://substackcdn.com/image/fetch/$s_!LxOh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a7ed1ea-7831-4dab-8250-aab9fef53735_718x204.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>*&#22294; 1-6&#65306;AI Studio &#20171;&#38754;&#20013;&#30340;&#12300;Deploy app&#12301;&#25353;&#37397;&#65292;&#25903;&#25588;&#19968;&#37749;&#37096;&#32626;&#33267; Cloud Run*</em></p><p>&#40670;&#25802;&#24460;&#65292;AI Studio &#26371;&#33258;&#21205;&#65306;</p><ul><li><p>&#128230; &#25171;&#21253;&#25033;&#29992;&#31243;&#24335;&#30908;</p></li><li><p>&#128640; &#37096;&#32626;&#33267; Google Cloud Run</p></li><li><p>&#128279; &#29983;&#25104;&#21487;&#20844;&#38283;&#35370;&#21839;&#30340; URL</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yG6m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yG6m!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png 424w, https://substackcdn.com/image/fetch/$s_!yG6m!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png 848w, https://substackcdn.com/image/fetch/$s_!yG6m!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png 1272w, https://substackcdn.com/image/fetch/$s_!yG6m!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yG6m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png" width="1426" height="778" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:778,&quot;width&quot;:1426,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96945,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yG6m!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png 424w, https://substackcdn.com/image/fetch/$s_!yG6m!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png 848w, https://substackcdn.com/image/fetch/$s_!yG6m!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png 1272w, https://substackcdn.com/image/fetch/$s_!yG6m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd257ba0d-8027-4d4b-9844-32f30299d611_1426x778.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>*&#22294; 1-7&#65306;&#37096;&#32626;&#25104;&#21151;&#36890;&#30693;&#65292;&#39023;&#31034;&#25033;&#29992;&#24050;&#19978;&#32218;&#20006;&#25552;&#20379; Cloud Run URL*</em></p><p><strong>**&#26178;&#38291;&#25104;&#26412;**</strong>&#65306;&#32004; 30 &#20998;&#37912;&#65288;Gemini &#23565;&#35441; + AI Studio &#29983;&#25104; + &#19968;&#37749;&#37096;&#32626; + &#21021;&#27493;&#28204;&#35430;&#65289;</p><p>&#36889;&#23601;&#26159; AI First &#38283;&#30332;&#30340;&#26680;&#24515;&#20778;&#21218;&#65306;<strong>**&#24478;&#24819;&#27861;&#21040;&#21487;&#36939;&#34892;&#30340;&#25033;&#29992;&#31243;&#24335;&#65292;&#20840;&#31243;&#36879;&#36942;&#23565;&#35441;&#23436;&#25104;&#65292;&#28961;&#38656;&#25163;&#21205;&#37197;&#32622;&#20282;&#26381;&#22120;&#25110;&#23481;&#22120;&#21270;&#27969;&#31243;**</strong>&#12290;</p><p></p><div><hr></div><h3><strong>&#31532; 2 &#36650;&#65306;&#28204;&#35430;&#30332;&#29694;&#21839;&#38988; &#8594; &#23565;&#35441;&#24335;&#20462;&#27491;</strong></h3><p><strong>**&#28204;&#35430;&#38542;&#27573;&#30332;&#29694;&#30340;&#21839;&#38988;**</strong>&#65306;</p><p>&#20351;&#29992;&#32773;&#37096;&#32626;&#25033;&#29992;&#24460;&#28204;&#35430;&#65292;&#30332;&#29694;&#65306;</p><blockquote><p>&#8220;&#28858;&#20309;&#20854;&#20182;&#20351;&#29992;&#32773;&#27794;&#26377;&#36664;&#20837; API Key &#20063;&#21487;&#20197;&#29986;&#22294;&#12289;&#20462;&#22294;&#12289;&#29986;&#24433;&#29255;&#65311;&#65281;&#8221;</p></blockquote><p><strong>**&#23565;&#35441;&#24335;&#20462;&#25913;**</strong>&#65306;</p><p>&#20351;&#29992;&#32773;&#30452;&#25509;&#22312; AI Studio &#20013;&#25551;&#36848;&#21839;&#38988;&#65306;</p><pre><code>User: &#8220;passcode works! but...&#28858;&#20309;&#20854;&#20182;&#20351;&#29992;&#32773;&#27794;&#26377;&#36664;&#20837; API key &#20063;&#21487;&#20197;&#29986;&#22294;, &#20462;&#22294;, &#29986;&#24433;&#29255;&#65311;&#8221;

Gemini: &#8220;&#20597;&#28204;&#21040;&#23433;&#20840;&#24615;&#21839;&#38988;&#65281;App.tsx &#20013;&#33258;&#21205;&#35712;&#21462; process.env.API_KEY&#12290;

        &#35299;&#27770;&#26041;&#26696;&#65306;&#23526;&#20316; BYOK (Bring Your Own Key) &#27231;&#21046;...&#8221;</code></pre><p><strong>**AI &#33258;&#21205;&#20462;&#27491;**</strong>&#65306;</p><p>Gemini &#20998;&#26512;&#21839;&#38988;&#24460;&#65292;&#25552;&#20379;&#23436;&#25972;&#30340;&#20462;&#27491;&#26041;&#26696;&#65306;</p><p>1. <strong>**&#31227;&#38500;&#29872;&#22659;&#35722;&#25976;&#33258;&#21205;&#35712;&#21462;**</strong></p><pre><code>// App.tsx

- const apiKey = process.env.API_KEY || &#8220;&#8221;;

+ const apiKey = localStorage.getItem(&#8221;gemini_api_key&#8221;) || &#8220;&#8221;;</code></pre><p></p><p>2. <strong>**&#26032;&#22686; ApiKeyInput Modal**</strong></p><pre><code>if (!apiKey) {

return &lt;ApiKeyInput onSubmit={handleApiKeySubmit} /&gt;;

}
</code></pre><p></p><p>3. <strong>**&#26356;&#26032; geminiService.ts**</strong></p><pre><code>// &#24375;&#21046;&#20351;&#29992;&#32773;&#25552;&#20379;&#30340; Key

const genAI = new GoogleGenerativeAI(userProvidedKey);</code></pre><p></p><p></p><div><hr></div><h3><strong>&#31532; 3 &#36650;&#65306;&#21151;&#33021;&#38656;&#27714;&#35722;&#26356; &#8594; &#21363;&#26178;&#36845;&#20195;</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lz6E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lz6E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png 424w, https://substackcdn.com/image/fetch/$s_!Lz6E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png 848w, https://substackcdn.com/image/fetch/$s_!Lz6E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png 1272w, https://substackcdn.com/image/fetch/$s_!Lz6E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lz6E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png" width="508" height="609.8237885462555" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1090,&quot;width&quot;:908,&quot;resizeWidth&quot;:508,&quot;bytes&quot;:104033,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lz6E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png 424w, https://substackcdn.com/image/fetch/$s_!Lz6E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png 848w, https://substackcdn.com/image/fetch/$s_!Lz6E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png 1272w, https://substackcdn.com/image/fetch/$s_!Lz6E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F007fe93e-e2c5-45ed-af77-aba1aa3b4102_908x1090.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>**&#26032;&#38656;&#27714;**</strong>&#65306;</p><p>&#20351;&#29992;&#32773;&#28204;&#35430;&#24460;&#25552;&#20986;&#26032;&#30340;&#23433;&#20840;&#38656;&#27714;&#65306;</p><blockquote><p>&#8220;&#38913;&#38754;&#37325;&#25972;&#26178;&#65292;&#25110;&#26159;&#38913;&#38754; idle &#36229;&#36942; 5 mins&#65292;&#20063;&#35201;&#37325;&#26032;&#36664;&#20837; passcode&#8221;</p></blockquote><p><strong>**&#23565;&#35441;&#24335;&#38283;&#30332;**</strong>&#65306;</p><pre><code>User: &#8220;&#38913;&#38754;&#37325;&#25972;&#26178;, &#25110;&#26159;&#38913;&#38754; idle &#36229;&#36942; 5 mins, &#20063;&#35201;&#37325;&#26032;&#36664;&#20837; passcode&#8221;

Gemini: &#8220;&#20102;&#35299;&#65281;&#38656;&#35201;&#20841;&#20491;&#20462;&#25913;&#65306;

        1. &#31227;&#38500; sessionStorage &#25345;&#20037;&#21270;

        2. &#26032;&#22686;&#38290;&#32622;&#35336;&#26178;&#22120;&#30435;&#32893; mousemove/keydown...&#8221;</code></pre><p></p><p><strong>**AI &#29983;&#25104;&#30340;&#35299;&#27770;&#26041;&#26696;**</strong>&#65306;</p><p>1. <strong>**&#31227;&#38500; Session Persistence**</strong></p><pre><code>- const [isUnlocked, setIsUnlocked] = useState(

-   sessionStorage.getItem(&#8221;unlocked&#8221;) === &#8220;true&#8221;

- );

+ const [isUnlocked, setIsUnlocked] = useState(false);</code></pre><p>2. <strong>**&#26032;&#22686; Idle Timeout &#37007;&#36655;**</strong></p><pre><code>useEffect(() =&gt; {

if (isUnlocked) {

const timer = setTimeout(() =&gt; {

setIsUnlocked(false);

alert(&#8221;&#24050;&#38290;&#32622; 5 &#20998;&#37912;&#65292;&#25033;&#29992;&#24050;&#37782;&#23450;&#8221;);

    }, 5 * 60 * 1000);

const resetTimer = () =&gt; { /* &#37325;&#32622;&#37007;&#36655; */ };

window.addEventListener(&#8221;mousemove&#8221;, resetTimer);

window.addEventListener(&#8221;keydown&#8221;, resetTimer);

return () =&gt; { /* &#28165;&#29702;&#37007;&#36655; */ };

  }

}, [isUnlocked]);</code></pre><p><strong>**&#25104;&#26524;**</strong>&#65306;</p><p>- &#9989; &#38913;&#38754;&#21047;&#26032;&#24460;&#38656;&#37325;&#26032;&#39511;&#35657;</p><p>- &#9989; 5 &#20998;&#37912;&#28961;&#25805;&#20316;&#33258;&#21205;&#37782;&#23450;</p><p>- &#9989; &#22810;&#23652;&#23433;&#20840;&#38450;&#35703;</p><p></p><div><hr></div><h3><strong>&#31532; 4 &#36650;&#65306;&#27169;&#22411;&#35519;&#25972; &#8594; &#19968;&#21477;&#35441;&#25630;&#23450;</strong></h3><p>&#21407;&#22240;: veo 3.1 &#30340; Token per min &#34875;&#23569;&#65292;&#29494;&#35947;&#26159;&#21542;&#35201;&#25913;&#25104; veo 3.0 or 2.0</p><p><strong>**&#38656;&#27714;**</strong>&#65306;</p><blockquote><p>&#8220;veo-3.1-fast-generate-preview &#25913;&#25104; veo-3.0-fast-generate-001&#65292;&#20294;&#26159; veo-3.1 &#21487;&#20197;&#20808;&#35387;&#35299;&#25481;&#8221;</p></blockquote><p><strong>**AI &#30340;&#22238;&#25033;**</strong>&#65306;</p><pre><code>Gemini: &#8220;&#26126;&#30333;&#65281;&#20999;&#25563;&#21040;&#31337;&#23450;&#29256;&#26412;&#12290;&#20462;&#25913; geminiService.ts&#65306;...&#8221;</code></pre><p></p><p><strong>**&#31243;&#24335;&#30908;&#35722;&#26356;**</strong>&#65306;</p><pre><code>// services/geminiService.ts

- const VIDEO_MODEL = &#8220;veo-3.1-fast-generate-preview&#8221;;

+ const VIDEO_MODEL = &#8220;veo-3.0-fast-generate-001&#8221;;

+ // &#20633;&#29992;&#29256;&#26412;&#65306;veo-3.1-fast-generate-preview</code></pre><p></p><p><strong>**&#25104;&#26524;**</strong>&#65306;</p><p>- &#9989; &#20999;&#25563;&#33267;&#31337;&#23450;&#29256;&#26412;</p><p>- &#9989; &#20445;&#30041;&#20633;&#29992;&#35387;&#35299;</p><p>- &#9989; API &#30456;&#23481;&#24615;&#25552;&#21319;</p><p><strong>**&#26178;&#38291;&#25104;&#26412;**</strong>&#65306;&#32004; 5 &#20998;&#37912;&#65288;&#19968;&#21477;&#35441; + AI &#20462;&#25913;&#65289;</p><p></p><div><hr></div><h3><strong>Master Prompt&#65306;&#23559;&#32147;&#39511;&#22266;&#21270;&#28858;&#21487;&#37325;&#35079;&#27969;&#31243;</strong></h3><p>&#32147;&#36942; 4 &#36650;&#36845;&#20195;&#24460;&#65292;&#25105;&#20497;&#23559;&#25152;&#26377;&#38656;&#27714;&#12289;&#20462;&#27491;&#12289;&#26368;&#20339;&#23526;&#36368;&#25972;&#21512;&#25104;&#19968;&#20491; <strong>**Master Prompt**</strong>&#12290;</p><p>&#20219;&#20309;&#20154;&#37117;&#21487;&#20197;&#29992;&#36889;&#20491; Prompt &#22312; AI Studio &#20013;<strong>**&#19968;&#27425;&#24615;&#29983;&#25104;&#23436;&#25972;&#30340;&#25033;&#29992;**</strong>&#65292;&#21253;&#21547;&#65306;</p><p>- &#9989; &#25152;&#26377;&#21151;&#33021;&#65288;DNA&#12289;&#32232;&#36655;&#12289;Veo&#65289;</p><p>- &#9989; &#25152;&#26377;&#23433;&#20840;&#27231;&#21046;&#65288;BYOK&#12289;Passcode&#12289;Idle Timeout&#65289;</p><p>- &#9989; &#26368;&#20339;&#23526;&#36368;&#65288;Base64 &#34389;&#29702;&#12289;&#37679;&#35492;&#34389;&#29702;&#65289;</p><p>- &#9989; &#23436;&#25972;&#30340;&#27284;&#26696;&#32080;&#27083;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JTXP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JTXP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png 424w, https://substackcdn.com/image/fetch/$s_!JTXP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png 848w, https://substackcdn.com/image/fetch/$s_!JTXP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png 1272w, https://substackcdn.com/image/fetch/$s_!JTXP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JTXP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png" width="1064" height="1284" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1284,&quot;width&quot;:1064,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:272598,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181793103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JTXP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png 424w, https://substackcdn.com/image/fetch/$s_!JTXP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png 848w, https://substackcdn.com/image/fetch/$s_!JTXP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png 1272w, https://substackcdn.com/image/fetch/$s_!JTXP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3161d9bb-3aed-4d85-8791-bf42aa68ddfa_1064x1284.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294; 5&#65306;&#20351;&#29992; Master Prompt &#22312; AI Studio &#20013;&#19968;&#37749;&#29983;&#25104;&#23436;&#25972;&#25033;&#29992;*</em></p><p></p><p><strong>&#36889;&#23601;&#26159; AI Studio &#20729;&#20540;</strong>&#65306;&#23559;&#36845;&#20195;&#36942;&#31243;&#20013;&#30340;&#30693;&#35672;&#32047;&#31309;&#65292;&#36681;&#21270;&#28858;&#21487;&#37325;&#35079;&#12289;&#21487;&#20998;&#20139;&#30340;&#38283;&#30332;&#36039;&#29986;&#12290;</p><div><hr></div><h2><strong>&#32317;&#32080;&#33287;&#23637;&#26395;</strong></h2><h3><strong>&#25910;&#31339;&#65306;&#24478;&#12300;&#23531;&#31243;&#24335;&#12301;&#21040;&#12300;&#23565;&#35441;&#24335;&#38283;&#30332;&#12301;</strong></h3><p>&#20659;&#32113;&#38283;&#30332;&#65306;</p><pre><code>&#24819;&#27861; &#8594; &#23416;&#32722;&#25216;&#34899; &#8594; &#23531;&#31243;&#24335; &#8594; &#38500;&#37679; &#8594; &#37096;&#32626;

&#65288;&#38656;&#35201;&#28145;&#21402;&#30340;&#25216;&#34899;&#32972;&#26223;&#65292;&#26178;&#38291;&#25104;&#26412;&#39640;&#65289;</code></pre><p></p><p>AI First&#65306;</p><pre><code>&#24819;&#27861; &#8594; &#29992;&#33258;&#28982;&#35486;&#35328;&#25551;&#36848; &#8594; AI &#29983;&#25104; &#8594; &#28204;&#35430; &#8594; &#23565;&#35441;&#20462;&#25913; &#8594; &#37096;&#32626;

&#65288;&#26371;&#23531; Prompt &#23601;&#33021;&#38283;&#30332;&#65292;1.5 &#23567;&#26178;&#23436;&#25104;&#65289;
&#65288;&#30070;&#28982;&#20320;&#36996;&#26159;&#35201;&#25026;&#36575;&#39636;&#24037;&#31243;&#33287;&#36575;&#39636;&#26550;&#27083;&#65281;)</code></pre><p></p><p><strong>&#21855;&#31034;</strong></p><ol><li><p><strong>&#24819;&#27861;&#39511;&#35657;&#30340;&#36895;&#24230;&#26159;&#38364;&#37749;</strong></p></li></ol><ul><li><p>&#20659;&#32113;&#26041;&#24335;&#21487;&#33021;&#33457;&#25976;&#36913;&#23526;&#20316;&#65292;&#26368;&#24460;&#30332;&#29694;&#26041;&#21521;&#19981;&#23565;</p></li><li><p>AI Studio &#35731;&#20320;&#22312;&#25976;&#23567;&#26178;&#20839;&#39511;&#35657;&#24819;&#27861;&#21487;&#34892;&#24615;</p></li><li><p><strong>&#24555;&#36895;&#22833;&#25943;&#65292;&#24555;&#36895;&#36845;&#20195;</strong></p></li></ul><ol start="2"><li><p><strong>&#25216;&#34899;&#19981;&#20877;&#26159;&#29942;&#38968;</strong></p></li></ol><ul><li><p>&#19981;&#38656;&#35201;&#31934;&#36890; React&#12289;Tailwind&#12289;API &#35373;&#35336;</p></li><li><p>&#23560;&#27880;&#26044;&#29986;&#21697;&#37007;&#36655;&#33287;&#20351;&#29992;&#32773;&#38656;&#27714;</p></li><li><p>AI &#34389;&#29702;&#25216;&#34899;&#23526;&#20316;&#32048;&#31680;</p></li></ul><ol start="3"><li><p><strong>Master Prompt &#26159;&#21487;&#35079;&#35069;&#30340;&#36039;&#29986;</strong></p></li></ol><ul><li><p>&#36845;&#20195;&#36942;&#31243;&#20013;&#32047;&#31309;&#30340;&#30693;&#35672;&#21487;&#20197;&#22266;&#21270;&#28858; Prompt</p></li><li><p>&#20219;&#20309;&#20154;&#37117;&#33021;&#29992;&#30456;&#21516; Prompt &#37325;&#29694;&#25033;&#29992;</p></li></ul><p></p><p><strong>Google AI Studio &#22312;&#36889;&#27425;&#38283;&#30332;&#36942;&#31243;&#20013;&#30340;&#30340;&#20729;&#20540;</strong></p><ul><li><p><strong>&#22810;&#27169;&#24907;&#25972;&#21512;</strong>&#65306;Imagen + Veo + Gemini &#22312;&#21516;&#19968;&#24179;&#21488;</p></li></ul><ul><li><p><strong>&#23565;&#35441;&#24335;&#36845;&#20195;</strong>&#65306;&#25345;&#32396;&#23565;&#35441;&#20013;&#31934;&#28310;&#20462;&#25913;&#31243;&#24335;&#30908;</p></li></ul><ul><li><p><strong>&#21363;&#26178;&#21453;&#39243;</strong>&#65306;&#29983;&#25104; &#8594; &#28204;&#35430; &#8594; &#20462;&#25913;&#24490;&#29872;&#21482;&#38656;&#25976;&#20998;&#37912;</p></li></ul><p></p><p></p><h3><strong>&#36039;&#28304;</strong></h3><ul><li><p>Google AI Studio - &#23448;&#26041;&#38283;&#30332;&#24179;&#21488; <a href="https://aistudio.google.com/">https://aistudio.google.com/</a></p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[Experience Liftoff: Google Antigravity 產品頁 Slogan 隨想]]></title><description><![CDATA["Ground Control to Major Tom... Check ignition and may God's love be with you" &#8212; David Bowie, Space Oddity]]></description><link>https://memo.jimmyliao.net/p/experience-liftoff-google-antigravity</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/experience-liftoff-google-antigravity</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Sun, 14 Dec 2025 15:26:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/iYYRH4apXDo" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#30070; Google Antigravity &#30340;&#39318;&#38913;&#20986;&#29694;&#37027;&#21477; &#8220;Experience liftoff with the next-generation IDE&#8221; &#26178;,&#25105;&#33126;&#20013;&#31435;&#21051;&#38911;&#36215;&#20102; David Bowie &#30340; Space Oddity&#12290;&#36889;&#19981;&#21482;&#26159;&#24039;&#21512;&#30340;&#25991;&#26696;&#8212;&#8212;&#20841;&#32773;&#37117;&#22312;&#35527;&#35542;&#19968;&#31278;&#12300;&#38626;&#38283;&#12301;&#30340;&#39636;&#39511;:&#38626;&#38283;&#29087;&#24713;&#30340;&#22320;&#38754;,&#36914;&#20837;&#19968;&#20491;&#20840;&#26032;&#30340;&#12289;&#22833;&#37325;&#30340;&#31354;&#38291;&#12290;</p><p>&#20294;&#23601;&#20687; Major Tom &#30340;&#22826;&#31354;&#20043;&#26053;,&#36889;&#31278;&#22833;&#37325;&#26082;&#26159;&#33258;&#30001;,&#20063;&#26159;&#22833;&#25511;&#30340;&#38283;&#22987;&#12290;</p><p></p><p>&#24213;&#19979;&#26159;&#20043;&#21069;&#30740;&#31350; Major Tom &#30340;&#36899;&#32080;&#65292;&#23565;&#65292;&#36889;&#31687;&#20854;&#23526;&#26159;&#36225;&#27231;&#35352;&#37636;&#19968;&#19979;&#65292;&#20197;&#24460;&#33258;&#24049;&#25214;&#20358;&#25773;&#25918;&#27604;&#36611;&#26041;&#20415;&#65292;&#21704;&#65281;</p><p>(&#35357;&#30064;&#34875;&#22810;&#20154;&#19981;&#30693;&#36947;&#36889;&#39318;&#27468;&#30340;&#24847;&#24605;)</p><div><hr></div><p>&#21407;&#29256; David Bowie &#26159;&#24478; &#38463;&#22982;&#26031;&#22767; &#30331;&#38520;&#26376;&#29699;&#29986;&#29983;&#30340;&#38728;&#24863;:</p><div id="youtube2-iYYRH4apXDo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;iYYRH4apXDo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/iYYRH4apXDo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>&#25105;&#26159;&#24478; Chris Hadfield &#30340;&#29256;&#26412;&#38283;&#22987;&#32893;&#30340;, &#24478;&#22826;&#31354;&#33369;&#30475;&#22320;&#29699;&#26178;&#21809;&#36889;&#39318;&#27468;&#22909;&#26377;&#24863;&#35258;&#21834;&#65281;</p><div id="youtube2-pDyl6I6ESSw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;pDyl6I6ESSw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/pDyl6I6ESSw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>&#25033;&#35442;&#27604;&#36611;&#22810;&#20154;&#26159;&#24478;&#30333;&#26085;&#22818;&#20882;&#38570;&#29579;&#32893;&#21040;:</p><div id="youtube2--oQO-kGU2lA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;-oQO-kGU2lA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/-oQO-kGU2lA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>&#25110;&#26159; &#38515;&#26524;&#12298;&#37027;&#22812;&#20940;&#26216;&#65292;&#25105;&#22352;&#19978;&#20102;&#26106;&#35282;&#38283;&#24448;&#22823;&#22484;&#30340;&#32005; van&#12299;&#65288;The Midnight After&#65289;</p><div id="youtube2-X440EhmqiG8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;X440EhmqiG8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/X440EhmqiG8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p><p>&#25110;&#26159;&#36889;&#37002;&#26377;&#24456;&#26834;&#30340;<a href="https://flipermag.com/2015/02/12/major-tom/">&#20171;&#32057;&#25991;</a></p><p></p><p></p><h2><strong>Ground Control to Major Tom: &#20659;&#32113;&#38283;&#30332;&#27969;&#31243;&#30340;&#37325;&#21147;</strong></h2><pre><code>&#8220;This is Ground Control to Major Tom

You&#8217;ve really made the grade&#8221;</code></pre><p></p><p>&#22312;&#20659;&#32113;&#30340;&#38283;&#30332;&#19990;&#30028;&#35041;,&#25105;&#20497;&#20687;&#26159;&#34987;&#37325;&#21147;&#29282;&#29282;&#32129;&#22312;&#22320;&#38754;&#19978;:</p><p>- <strong>**&#29872;&#22659;&#37197;&#32622;&#30340;&#37325;&#21147;**</strong>: `npm install`&#12289;Docker &#23481;&#22120;&#12289;&#29872;&#22659;&#35722;&#25976;&#12289;&#20381;&#36084;&#29256;&#26412;&#34909;&#31361;</p><p>- <strong>**&#26412;&#22320;&#36039;&#28304;&#30340;&#37325;&#21147;**</strong>: &#35352;&#25014;&#39636;&#19981;&#36275;&#12289;&#30913;&#30879;&#31354;&#38291;&#12289;CPU &#39080;&#25159;&#29378;&#36681;</p><p>- <strong>**&#21332;&#20316;&#21516;&#27493;&#30340;&#37325;&#21147;**</strong>: Git &#34909;&#31361;&#12289;&#31243;&#24335;&#30908;&#23529;&#26597;&#24310;&#36978;&#12289;&#8221;works on my machine&#8221; &#32156;&#21512;&#30151;</p><p>Ground Control(&#20659;&#32113;&#38283;&#30332;&#27969;&#31243;)&#32317;&#26159;&#22312;&#37027;&#35041;,&#32102;&#25105;&#20497;&#25351;&#20196;&#12289;&#38480;&#21046;&#12289;&#26694;&#26550;&#12290;&#23433;&#20840;,&#21487;&#38928;&#28204;,&#20294;&#20063;&#27785;&#37325;&#12290;</p><h2><strong>Stepping Through the Door: &#36914;&#20837;&#38642;&#31471; IDE</strong></h2><pre><code>&#8220;This is Major Tom to Ground Control

I&#8217;m stepping through the door&#8221;</code></pre><p></p><p>&#30070;&#20320;&#31532;&#19968;&#27425;&#25171;&#38283; Google Antigravity(&#25110;&#20219;&#20309;&#29694;&#20195;&#38642;&#31471; IDE):</p><p><strong>**&#37027;&#25159;&#38272;**</strong> = &#28687;&#35261;&#22120;&#20998;&#38913;  </p><p><strong>**&#20498;&#25976;&#35336;&#26178;**</strong> = &#36617;&#20837;&#36914;&#24230;&#26781;  </p><p><strong>**&#30332;&#23556;**</strong> = &#29872;&#22659;&#33258;&#21205;&#37197;&#32622;&#23436;&#25104;</p><p>&#19981;&#38656;&#35201; `brew install`&#12289;&#19981;&#38656;&#35201;&#31561;&#24453; Docker &#21855;&#21205;&#12289;&#19981;&#38656;&#35201;&#25812;&#24515; Python &#29256;&#26412;&#12290;&#20320;&#21482;&#26159;&#12300;stepping through the door&#12301;,&#28982;&#24460;&#29872;&#22659;&#23601;&#28310;&#20633;&#22909;&#20102;&#12290;</p><p>&#36889;&#26159;&#31532;&#19968;&#27425;&#39636;&#39511;&#22833;&#37325;&#30340;&#26178;&#21051;&#8212;&#8212;&#31361;&#28982;&#24847;&#35672;&#21040;,&#21407;&#20358;&#38283;&#30332;&#21487;&#20197;&#36889;&#40636;&#12300;&#36629;&#12301;&#12290;</p><h2><strong>Floating in a Most Peculiar Way: AI &#36628;&#21161;&#30340;&#22855;&#22937;&#24863;&#21463;</strong></h2><pre><code>&#8220;And I&#8217;m floating in a most peculiar way

And the stars look very different today&#8221;</code></pre><p>&#22312; Antigravity &#35041;,AI &#36628;&#21161;&#32232;&#31243;&#24118;&#20358;&#30340;&#24863;&#21463;&#30906;&#23526;&#26159; &#8220;peculiar&#8221;(&#22855;&#29305;&#30340;):</p><p><strong>**&#22833;&#37325;&#24863;&#20043;&#19968;:&#26234;&#24935;&#35036;&#20840;&#30340;&#38928;&#30693;&#33021;&#21147;**</strong>  </p><p>&#20320;&#25165;&#21083;&#38283;&#22987;&#25171;&#23383;,IDE &#23601;&#24050;&#32147;&#12300;&#30693;&#36947;&#12301;&#20320;&#24819;&#23531;&#20160;&#40636;&#12290;&#23601;&#20687;&#22312;&#28961;&#37325;&#21147;&#29872;&#22659;&#20013;,&#36629;&#36629;&#19968;&#25512;&#23601;&#33021;&#28369;&#34892;&#24456;&#36960;&#8212;&#8212;&#20320;&#21482;&#38656;&#35201;&#32102;&#19968;&#20491;&#24847;&#22294;,AI &#23601;&#24171;&#20320;&#23436;&#25104;&#25972;&#27573;&#31243;&#24335;&#30908;&#12290;</p><p><strong>**&#22833;&#37325;&#24863;&#20043;&#20108;:&#35486;&#35328;&#30340;&#36328;&#30028;&#27969;&#21205;**</strong>  </p><p>&#22312;&#22320;&#38754;&#19978;,&#20999;&#25563;&#31243;&#24335;&#35486;&#35328;&#23601;&#20687;&#36328;&#36234;&#22283;&#30028;&#8212;&#8212;&#38656;&#35201;&#36969;&#25033;&#12289;&#23416;&#32722;&#12289;&#37325;&#26032;&#37197;&#32622;&#12290;&#20294;&#22312; AI IDE &#20013;,Python&#12289;JavaScript&#12289;Go &#20043;&#38291;&#30340;&#30028;&#32218;&#35722;&#24471;&#27169;&#31946;&#12290;AI &#25104;&#28858;&#21363;&#26178;&#32763;&#35695;&#27231;,&#35731;&#20320;&#22312;&#19981;&#21516;&#35486;&#35328;&#38291;&#12300;&#28418;&#28014;&#12301;&#12290;</p><p><strong>**&#22833;&#37325;&#24863;&#20043;&#19977;:&#25277;&#35937;&#23652;&#32026;&#30340;&#33258;&#30001;&#31227;&#21205;**</strong>  </p><p>&#24478;&#39640;&#38542;&#26550;&#27083;&#35373;&#35336;&#21040;&#24213;&#23652;&#23526;&#20316;&#32048;&#31680;,AI &#35731;&#20320;&#21487;&#20197;&#22312;&#19981;&#21516;&#25277;&#35937;&#23652;&#32026;&#38291;&#24555;&#36895;&#20999;&#25563;&#12290;&#19981;&#20877;&#38656;&#35201;&#12300;&#29228;&#27155;&#26799;&#12301;&#8212;&#8212;&#20320;&#21487;&#20197;&#30452;&#25509;&#12300;&#28418;&#28014;&#12301;&#21040;&#20320;&#38656;&#35201;&#30340;&#39640;&#24230;&#12290;</p><p>&#26143;&#26143;&#30475;&#36215;&#20358;&#30906;&#23526;&#19981;&#19968;&#27171;&#20102;&#12290;</p><h2><strong>Planet Earth is Blue: &#22833;&#37325;&#30340;&#20195;&#20729;</strong></h2><pre><code>&#8220;Planet Earth is blue

And there&#8217;s nothing I can do&#8221;
</code></pre><p></p><p>&#20294; Space Oddity &#19981;&#21482;&#26159;&#35738;&#38924;&#22826;&#31354;&#26053;&#34892;&#12290;&#27468;&#26354;&#24460;&#21322;&#27573;&#25581;&#31034;&#20102;&#22833;&#25511;&#30340;&#19968;&#38754;&#8212;&#8212;Major Tom &#22833;&#21435;&#20102;&#33287; Ground Control &#30340;&#32879;&#32363;,&#28418;&#28014;&#22312;&#34395;&#31354;&#20013;,&#28961;&#21161;&#32780;&#23396;&#29544;&#12290;</p><p><strong>**&#38642;&#31471; IDE &#30340;&#22833;&#25511;&#26178;&#21051;:**</strong></p><p><strong>**&#32178;&#36335;&#26039;&#32218;**</strong> = &#22833;&#21435;&#29983;&#21629;&#32218;  </p><p>&#30070;&#32178;&#36335;&#20013;&#26039;,&#20320;&#31361;&#28982;&#24847;&#35672;&#21040;&#33258;&#24049;&#23436;&#20840;&#20381;&#36084;&#36889;&#26781;&#30475;&#19981;&#35211;&#30340;&#36899;&#32218;&#12290;&#26412;&#22320;&#38283;&#30332;&#29872;&#22659;&#30340;&#12300;&#37325;&#21147;&#12301;,&#27492;&#21051;&#21453;&#32780;&#25104;&#28858;&#19968;&#31278;&#23433;&#20840;&#24863;&#30340;&#20358;&#28304;&#12290;</p><p><strong>**AI &#30340;&#40657;&#30418;&#27770;&#31574;**</strong> = &#8220;There&#8217;s nothing I can do&#8221;  </p><p>AI &#32102;&#20320;&#30340;&#31243;&#24335;&#30908;&#24314;&#35696;,&#26377;&#26178;&#20505;&#20320;&#19981;&#23436;&#20840;&#29702;&#35299;&#28858;&#20160;&#40636;&#35201;&#36889;&#27171;&#23531;&#12290;&#20320;&#25509;&#21463;&#20102;,&#20294;&#20063;&#38577;&#32004;&#24863;&#21040;&#19968;&#31278;&#22833;&#25511;&#8212;&#8212;&#20320;&#26159;&#22312;&#32232;&#31243;,&#36996;&#26159;&#22312;&#12300;&#30435;&#30563;&#12301;AI &#32232;&#31243;?</p><p><strong>**&#20379;&#25033;&#21830;&#37782;&#23450;**</strong> = &#28961;&#27861;&#36820;&#22238;&#22320;&#29699;  </p><p>&#30070;&#20320;&#30340;&#25972;&#20491;&#24037;&#20316;&#27969;&#31243;&#37117;&#24314;&#31435;&#22312;&#29305;&#23450;&#38642;&#31471; IDE &#19978;,&#36983;&#31227;&#25104;&#26412;&#35722;&#24471;&#26997;&#39640;&#12290;&#23601;&#20687; Major Tom &#19968;&#27171;,&#20320;&#21487;&#33021;&#30495;&#30340;&#22238;&#19981;&#21435;&#20102;&#12290;</p><h2><strong>Can You Hear Me, Major Tom?: &#25214;&#21040;&#26032;&#30340;&#24179;&#34913;</strong></h2><pre><code>&#8220;Can you hear me, Major Tom?

Can you hear me, Major Tom?&#8221;</code></pre><p></p><p>Ground Control &#19968;&#30452;&#22312;&#21628;&#21483;,&#20294; Major Tom &#36984;&#25799;&#20102;&#33258;&#24049;&#30340;&#36335;&#12290;</p><p>&#23565;&#26044;&#29694;&#20195;&#38283;&#30332;&#32773;,&#36889;&#19981;&#26159;&#12300;&#35201;&#19981;&#35201;&#20351;&#29992;&#38642;&#31471; IDE/AI &#36628;&#21161;&#12301;&#30340;&#20108;&#36984;&#19968;&#21839;&#38988;&#12290;&#30495;&#27491;&#30340;&#21839;&#38988;&#26159;:<strong>**&#22914;&#20309;&#22312;&#22833;&#37325;&#20013;&#25214;&#21040;&#24179;&#34913;?**</strong></p><p><strong>**&#23526;&#36368;&#24515;&#24471;:**</strong></p><p>1. <strong>**&#20445;&#25345;&#26412;&#22320;&#20633;&#26696;**</strong>  </p><p>&#23601;&#20687;&#22826;&#31354;&#20154;&#30340;&#36867;&#29983;&#33369;,&#32173;&#25345;&#19968;&#20491;&#31934;&#31777;&#30340;&#26412;&#22320;&#38283;&#30332;&#29872;&#22659;&#12290;&#19981;&#26159;&#27599;&#22825;&#29992;,&#20294;&#38364;&#37749;&#26178;&#21051;&#33021;&#25937;&#21629;&#12290;</p><p>2. <strong>**&#29702;&#35299; AI &#30340;&#24314;&#35696;**</strong>  </p><p>&#19981;&#35201;&#30450;&#30446;&#25509;&#21463; AI &#29986;&#29983;&#30340;&#31243;&#24335;&#30908;&#12290;&#33457;&#26178;&#38291;&#29702;&#35299;&#23427;&#28858;&#20160;&#40636;&#36889;&#27171;&#23531;,&#36889;&#26159;&#36991;&#20813;&#12300;&#22833;&#32879;&#12301;&#30340;&#26041;&#24335;&#12290;&#23601;&#20687; Major Tom &#25033;&#35442;&#20445;&#25345;&#33287; Ground Control &#30340;&#28317;&#36890;&#12290;</p><p>3. <strong>**&#36984;&#25799;&#21487;&#36983;&#31227;&#30340;&#25216;&#34899;&#26855;**</strong>  </p><p>&#20351;&#29992;&#38283;&#25918;&#27161;&#28310;&#12289;&#36991;&#20813;&#36942;&#24230;&#20381;&#36084;&#23560;&#26377;&#21151;&#33021;&#12290;&#32102;&#33258;&#24049;&#20445;&#30041;&#12300;&#36820;&#22238;&#22320;&#29699;&#12301;&#30340;&#36984;&#38917;&#12290;</p><p>4. <strong>**&#20139;&#21463;&#22833;&#37325;,&#20294;&#35352;&#24471;&#37325;&#21147;**</strong>  </p><p>AI &#36628;&#21161;&#24118;&#20358;&#30340;&#25928;&#29575;&#25552;&#21319;&#26159;&#30495;&#23526;&#30340;,&#20294;&#19981;&#35201;&#24536;&#35352;&#22522;&#30990;&#21407;&#29702;&#12290;&#22833;&#37325;&#24456;&#29245;,&#20294;&#20320;&#38656;&#35201;&#30693;&#36947;&#37325;&#21147;&#22914;&#20309;&#36939;&#20316;&#12290;</p><h2><strong>Here Am I Sitting in a Tin Can: &#32066;&#26997;&#30340;&#23396;&#29544;&#33287;&#33258;&#30001;</strong></h2><pre><code>&#8220;Here am I sitting in a tin can

Far above the world

Planet Earth is blue

And there&#8217;s nothing I can do&#8221;</code></pre><p></p><p>Space Oddity &#30340;&#32080;&#23616;&#26159;&#38283;&#25918;&#30340;&#8212;&#8212;Major Tom &#21040;&#24213;&#24590;&#40636;&#20102;?&#20182;&#27515;&#20102;?&#36855;&#22833;&#20102;?&#36996;&#26159;&#25214;&#21040;&#20102;&#26032;&#30340;&#23384;&#22312;&#26041;&#24335;?</p><p>&#20351;&#29992; Google Antigravity(&#25110;&#20219;&#20309;&#27425;&#19990;&#20195; IDE)&#30340;&#39636;&#39511;&#20063;&#26159;&#22914;&#27492;&#12290;&#20320;&#30906;&#23526;&#22312;&#19968;&#20491;&#12300;tin can&#12301;(&#28687;&#35261;&#22120;&#35222;&#31383;)&#35041;,&#36960;&#38626;&#20659;&#32113;&#38283;&#30332;&#30340;&#22320;&#38754;&#12290;&#22320;&#29699;(&#20659;&#32113;&#38283;&#30332;&#26041;&#24335;)&#22312;&#19979;&#26041;&#35722;&#24471;&#36234;&#20358;&#36234;&#34253;&#12289;&#36234;&#20358;&#36234;&#36953;&#36960;&#12290;</p><p><strong>**&#20294;&#36889;&#19981;&#19968;&#23450;&#26159;&#22750;&#20107;&#12290;**</strong></p><p>&#20063;&#35377;,&#36889;&#23601;&#26159;&#38283;&#30332;&#30340;&#26410;&#20358;&#8212;&#8212;&#25105;&#20497;&#19981;&#20877;&#34987;&#37325;&#21147;(&#29872;&#22659;&#37197;&#32622;&#12289;&#36039;&#28304;&#38480;&#21046;&#12289;&#21332;&#20316;&#25705;&#25830;)&#26463;&#32283;&#12290;&#25105;&#20497;&#23416;&#26371;&#22312;&#22833;&#37325;&#20013;&#24037;&#20316;,&#22312; AI &#30340;&#36628;&#21161;&#19979;&#12300;&#28418;&#28014;&#12301;&#24471;&#26356;&#24555;&#12289;&#26356;&#36960;&#12290;</p><p>&#20063;&#35377;,Major Tom &#20006;&#27794;&#26377;&#22833;&#25511;&#12290;&#20182;&#21482;&#26159;&#25214;&#21040;&#20102;&#19968;&#31278;&#26032;&#30340;&#23384;&#22312;&#26041;&#24335;&#8212;&#8212;&#19968;&#31278;&#25105;&#20497;&#36996;&#19981;&#23436;&#20840;&#29702;&#35299;,&#20294;&#24050;&#32147;&#28961;&#27861;&#22238;&#38957;&#30340;&#26041;&#24335;&#12290;</p><p></p><div><hr></div><p><strong>## &#23526;&#29992;&#25351;&#21335;:&#20320;&#30340; Liftoff Checklist</strong></p><p>&#22914;&#26524;&#20320;&#27770;&#23450;&#38283;&#22987;&#33258;&#24049;&#30340;&#12300;&#22826;&#31354;&#20043;&#26053;&#12301;,&#24314;&#35696;:</p><p><strong>**&#30332;&#23556;&#21069;&#27298;&#26597;(Pre-launch):**</strong></p><p>- [ ] &#20102;&#35299; Antigravity &#30340;&#22522;&#26412;&#21151;&#33021;&#21644;&#38480;&#21046;</p><p>- [ ] &#28310;&#20633;&#26412;&#22320;&#20633;&#20221;&#26041;&#26696;(&#20197;&#38450;&#32178;&#36335;&#21839;&#38988;)</p><p>- [ ] &#36984;&#25799;&#19968;&#20491;&#35430;&#39511;&#24615;&#23560;&#26696;&#38283;&#22987;(&#19981;&#35201;&#30452;&#25509;&#29992;&#29983;&#29986;&#29872;&#22659;)</p><p><strong>**&#36556;&#36947;&#20013;(In Orbit):**</strong></p><p>- [ ] &#23416;&#32722; AI &#24555;&#25463;&#37749;&#21644; prompt &#25216;&#24039;</p><p>- [ ] &#24314;&#31435;&#31243;&#24335;&#30908;&#23529;&#26597;&#32722;&#24931;(&#19981;&#30450;&#30446;&#25509;&#21463; AI &#24314;&#35696;)</p><p>- [ ] &#35352;&#37636;&#36983;&#31227;&#30171;&#40670;&#21644;&#26368;&#20339;&#23526;&#36368;</p><p><strong>**&#36820;&#22238;&#28310;&#20633;(Re-entry Plan):**</strong></p><p>- [ ] &#20445;&#25345;&#25216;&#34899;&#26855;&#30340;&#21487;&#36983;&#31227;&#24615;</p><p>- [ ] &#23450;&#26399;&#21295;&#20986;&#37325;&#35201;&#35373;&#23450;&#21644;&#31243;&#24335;&#30908;</p><p>- [ ] &#32173;&#25345;&#23565;&#24213;&#23652;&#25216;&#34899;&#30340;&#29702;&#35299;</p><p>---</p><p><em>*&#8221;Check ignition and may God&#8217;s love be with you&#8221;*</em></p><p>Liftoff &#30340;&#26178;&#21051;,&#26082;&#33288;&#22894;&#21448;&#19981;&#23433;&#12290;&#20294;&#20063;&#35377;&#36889;&#23601;&#26159;&#36914;&#27493;&#30340;&#26412;&#36074;&#8212;&#8212;&#38626;&#38283;&#24050;&#30693;&#30340;&#22320;&#38754;,&#36914;&#20837;&#26410;&#30693;&#30340;&#22826;&#31354;&#12290;</p><p>Google Antigravity &#19981;&#21482;&#26159;&#19968;&#20491; IDE,&#23427;&#26159;&#19968;&#20491;&#38364;&#26044;&#26410;&#20358;&#38283;&#30332;&#26041;&#24335;&#30340;&#23459;&#35328;:<strong>**&#25105;&#20497;&#27491;&#22312;&#38626;&#38283;&#22320;&#29699;**</strong>&#12290;&#21839;&#38988;&#19981;&#26159;&#35201;&#19981;&#35201;&#36208;,&#32780;&#26159;&#25105;&#20497;&#33021;&#21542;&#22312;&#22833;&#37325;&#20013;,&#25214;&#21040;&#26032;&#30340;&#24179;&#34913;&#33287;&#25484;&#25511;&#12290;</p><p>&#21508;&#20301; Major Tom,&#28310;&#20633;&#22909;&#20102;&#21966;?</p><p><em>*&#8221;This is Ground Control to Major Tom... Commencing countdown, engines on...&#8221;*</em></p><p></p><div><hr></div><p><strong>**&#24310;&#20280;&#38321;&#35712;:**</strong></p><p>- [Google Antigravity &#23448;&#26041;&#25991;&#20214;](<a href="https://developers.google.com/antigravity">https://developers.google.com/antigravity</a>)</p><p>&#19968;&#20491;&#22312;&#20659;&#32113; IDE &#21644;&#38642;&#31471;&#29872;&#22659;&#20043;&#38291;&#28418;&#28014;&#30340;&#20840;&#31471;&#24037;&#31243;&#24107;,&#20173;&#22312;&#23563;&#25214; Ground Control &#30340;&#35338;&#34399;&#12290;</p><p>---</p><p><em>*P.S. &#22914;&#26524;&#20320;&#20063;&#26159; David Bowie &#31881;&#32114;,&#25512;&#34214;&#32893;&#23436;&#25972;&#23560;&#36655;&#12290;Space Oddity &#21482;&#26159;&#38283;&#22987;,&#24460;&#38754;&#36996;&#26377; Ashes to Ashes,&#35611;&#36848; Major Tom &#30340;&#24460;&#32396;&#25925;&#20107;...*</em></p><p></p>]]></content:encoded></item><item><title><![CDATA[Antigravity Rules & Workflows Guide: AI-Powered Development Standards]]></title><description><![CDATA[Build intelligent dev environments with official mechanisms - set once, work forever]]></description><link>https://memo.jimmyliao.net/p/antigravity-rules-and-workflows-guide</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/antigravity-rules-and-workflows-guide</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Sun, 14 Dec 2025 14:45:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f054bad6-d8c2-437b-9cb8-6b3013c3ecc5_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>*Last Updated: December 14, 2025*</em></p><p></p><h2><strong>The Problem</strong></h2><p>Common repetitive work when using Antigravity IDE:</p><pre><code>Day 1:

Developer: Create a React component

AI: Sure, using class component

Developer: No, we only use function components

AI: Understood, corrected

Day 2 (new conversation):

Developer: Create another React component

AI: Sure, using class component

Developer: (explaining again...) We only use function components

Day 3 (reopen project):

Developer: Create login component

AI: Which framework should I use?

Developer: (third time...) React, function component, TypeScript</code></pre><p></p><p>Every time you start a new conversation or restart the IDE, you have to tell the AI again:</p><p>- Code style preferences</p><p>- Naming conventions</p><p>- Testing requirements</p><p>- Documentation format</p><p>These rules should be part of the project, not something you explain every time.</p><p></p><div><hr></div><h2><strong>The Solution</strong></h2><p><strong>**Antigravity provides two official mechanisms**</strong> to make AI automatically follow your development standards:</p><h3><strong>1. Rules</strong></h3><p>- Like &#8220;system prompts&#8221;</p><p>- Always active, no need to remind every time</p><p>- Define AI&#8217;s behavior guidelines</p><h3><strong>2. Workflows</strong></h3><p>- Like &#8220;quick actions&#8221;</p><p>- Trigger on demand, execute complex tasks</p><p>- Standardize repetitive work</p><p></p><div><hr></div><h2><strong>Get Started: Experience Rules &amp; Workflows with agy-starter</strong></h2><p>Instead of starting with theory, let&#8217;s dive right in. We&#8217;ve prepared a complete example project `agy-starter` for hands-on learning.</p><p></p><h4>Repo: <code>https://github.com/AgentWorkshop/agy-starter.git</code></h4><div><hr></div><h2><strong>Step 1: Clone the Project</strong></h2><pre><code>git clone https://github.com/AgentWorkshop/agy-starter.git

cd agy-starter</code></pre><p></p><p>Open this folder in Antigravity IDE (File &#8594; Open Folder &#8594; select `agy-starter/`)</p><h3><strong>&#128161; What are Rules?</strong></h3><p>After opening the project, Antigravity automatically reads the `.antigravity/rules.md` file. <strong>**Rules are AI&#8217;s behavior guidelines**</strong>, like a constitution that&#8217;s always in effect:</p><ul><li><p><strong>**Always active**</strong>: No need to repeat instructions every conversation</p></li><li><p><strong>**Auto-applied**</strong>: AI automatically loads when opening the project</p></li><li><p><strong>**Team-shared**</strong>: After committing to git, all members follow the same standards</p></li></ul><p><strong>**Example:**</strong> Open `.antigravity/rules.md` to see complete writing standards. Try asking AI to create a new article - it will automatically follow these rules.</p><p></p><div><hr></div><h2><strong>Step 2: Explore Project Structure</strong></h2><p>View the project file tree:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Uh95!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Uh95!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png 424w, https://substackcdn.com/image/fetch/$s_!Uh95!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png 848w, https://substackcdn.com/image/fetch/$s_!Uh95!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png 1272w, https://substackcdn.com/image/fetch/$s_!Uh95!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Uh95!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png" width="840" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:840,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:131991,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181591749?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Uh95!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png 424w, https://substackcdn.com/image/fetch/$s_!Uh95!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png 848w, https://substackcdn.com/image/fetch/$s_!Uh95!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png 1272w, https://substackcdn.com/image/fetch/$s_!Uh95!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b26703-0849-4c00-bbbc-d9c0e843e011_840x820.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>*Image: agy-starter project structure - actual file tree in Antigravity IDE*</em></p><h3><strong>&#128161; File Location Explanation</strong></h3><p>Antigravity projects have two official directories:</p><p><strong>`.antigravity/rules.md`</strong> - Project Standards</p><ul><li><p>AI&#8217;s behavior guidelines</p></li><li><p>Auto-loaded, always active</p></li></ul><p><strong>`.agent/workflows/`</strong> - Workflows</p><ul><li><p>Reusable task templates</p></li><li><p>Triggered with `/commands`</p></li></ul><p><strong>**Tip:**</strong> You can also set global configuration (`~/.gemini/GEMINI.md`) for personal preferences across all projects.</p><p></p><div><hr></div><h2><strong>Step 3: Try Your First Workflow</strong></h2><p>In the Antigravity conversation, type: `/`</p><p>You&#8217;ll see the list of available workflows:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OtNF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OtNF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png 424w, https://substackcdn.com/image/fetch/$s_!OtNF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png 848w, https://substackcdn.com/image/fetch/$s_!OtNF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png 1272w, https://substackcdn.com/image/fetch/$s_!OtNF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OtNF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png" width="862" height="934" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:934,&quot;width&quot;:862,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:84273,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181591749?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OtNF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png 424w, https://substackcdn.com/image/fetch/$s_!OtNF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png 848w, https://substackcdn.com/image/fetch/$s_!OtNF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png 1272w, https://substackcdn.com/image/fetch/$s_!OtNF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d7e716-5f71-4f2f-bc0b-9e3e5731e355_862x934.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*Image: Triggering a Workflow - interface after typing /*</em></p><p>Select `/create` to have AI create a new article.</p><h3><strong>&#128161; What are Workflows?</strong></h3><p><strong>**Workflows are reusable task templates**</strong>, like scripts:</p><ul><li><p><strong>**Standardized process**</strong>: Ensures consistent steps every time</p></li><li><p><strong>**Time-saving**</strong>: No need to describe steps in detail each time</p></li><li><p><strong>**Team collaboration**</strong>: Everyone completes tasks the same way</p></li></ul><p><strong>**Workflows included in agy-starter:**</strong></p><ul><li><p>`/create` - Create new article (with template and image directory)</p></li><li><p>`/update` - Update code examples in articles</p></li><li><p>`/proof` - Proofread article (check format, links, tone)</p></li></ul><p>Open `.agent/workflows/create-article.md` to see the workflow structure: includes step instructions, examples, and expected results.</p><p></p><div><hr></div><h2><strong>Step 4: Customize Your Rules</strong></h2><p>Now that you understand how Rules work, try editing `.antigravity/rules.md` to match your project needs.</p><h3><strong>&#128161; Writing Good Rules</strong></h3><p><strong>**&#10060; Bad Examples (too abstract):**</strong></p><pre><code>

- Write good code

- Follow best practices</code></pre><p></p><p><strong>**&#9989; Good Examples (specific and clear):**</strong></p><pre><code>- Use Function Components, not Class Components

- Props must define TypeScript interface

- Every component must have a corresponding .test.tsx file</code></pre><p></p><p><strong>**Editing Steps:**</strong></p><p>1. Open `.antigravity/rules.md`</p><p>2. Modify standards based on your project tech stack</p><p>3. Save and reload Antigravity (or start a new conversation)</p><p>4. Test if AI follows the new rules</p><p></p><div><hr></div><h2><strong>Step 5: Create Your First Workflow</strong></h2><p>Try creating a new workflow file in `.agent/workflows/`.</p><h3><strong>&#128161; Workflow Structure</strong></h3><p>Basic format:</p><pre><code>---

description: Brief description of what this workflow does

---

## Steps

### 1. First Step

- Specific operation instructions

- Expected results

### 2. Second Step

- Specific operation instructions

- Expected results</code></pre><p></p><p><strong>**Example: Generate Test Files**</strong></p><pre><code>---

description: Generate unit tests for existing code

---

## Steps

### 1. Analyze Target File

- Read the specified code file

- Identify all exported functions

### 2. Generate Test Cases

- Create at least 3 tests for each function

- Use clear test names

### 3. Run Tests

- Automatically execute npm test

- Verify all tests pass</code></pre><p></p><p>Save as `.agent/workflows/generate-tests.md`, then trigger it with `/generate`.</p><p></p><div><hr></div><h2><strong>Deep Understanding</strong></h2><h3><strong>Global vs Workspace Rules</strong></h3><p>You might wonder: When should I use global Rules vs project Rules?</p><p><strong>**Global Configuration (</strong>`~/.gemini/GEMINI.md`<strong>):**</strong></p><ul><li><p>Personal code style (applies to all projects)</p></li><li><p>Preferred naming conventions</p></li><li><p>Documentation writing habits</p></li></ul><p><strong>**Project Configuration (</strong>`.antigravity/rules.md`<strong>):**</strong></p><ul><li><p>Project-specific tech stack</p></li><li><p>Team-shared standards</p></li><li><p>Client-specific requirements</p></li></ul><p><strong>**Priority:**</strong> Workspace Rules &gt; Global Rules (project settings take precedence)</p><p></p><div><hr></div><h2><strong>FAQ</strong></h2><p><strong>Q: What&#8217;s the difference between Rules and Workflows?*</strong></p><p><strong>A:</strong> Rules are &#8220;passive guidelines&#8221;, Workflows are &#8220;active tasks&#8221;</p><p></p><p><strong>Q: When I reopen the project, do Rules still work?</strong></p><p><strong>A:</strong> Yes! Rules and Workflows are stored in project files, and AI automatically loads them every time you open the project.</p><p></p><p><strong>Q: What if team members don&#8217;t have Antigravity?</strong></p><p><strong>A:</strong> These files are plain text Markdown and can be read as the project&#8217;s CONTRIBUTING.md.</p><p></p><div><hr></div><p><strong>## Summary</strong></p><p><strong>**After implementing Rules &amp; Workflows, you&#8217;ll see:**</strong></p><p>&#9989; <strong>**No more repetition**</strong> - Set once, AI remembers forever</p><p>&#9989; <strong>**Instant onboarding**</strong> - New team members get the same AI behavior</p><p>&#9989; <strong>**Consistent quality**</strong> - All code follows the same standards</p><p>&#9989; <strong>**Time savings**</strong> - Complex tasks become one-command operations</p><p>&#9989; <strong>**Knowledge transfer**</strong> - Project standards are documented and executable</p><h4><strong>Start using agy-starter and experience the power of Antigravity Rules &amp; Workflows!</strong> &#128640;</h4><div><hr></div><h2><strong>Resources</strong></h2><p>- [Google Developers Blog - Antigravity Launch] - <a href="https://developers.googleblog.com/build-with-google-antigravity-our-new-agentic-development-platform/">link</a></p><p>- [Google Codelabs - Antigravity Tutorial] - <a href="https://codelabs.developers.google.com/getting-started-google-antigravity">link</a></p><p>- <strong>[Antigravity Workspace Template]: <a href="https://github.com/jimmyliao/antigravity-web-fullstack">https://github.com/jimmyliao/antigravity-web-fullstack</a></strong></p><p>- [Antigravity Codes - Workflows Guide] <a href="https://antigravity.codes/blog/workflows">link</a></p><p></p><div><hr></div><h3><strong><a href="https://github.com/jimmyliao">Jimmy Liao</a></strong></h3><ul><li><p>CTO/Co-founder @ Stealth Startup</p></li></ul><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Antigravity Rules & Workflows 實戰：讓 AI 自動遵循開發規範]]></title><description><![CDATA[Build intelligent dev environments with official mechanisms - set once, work forever]]></description><link>https://memo.jimmyliao.net/p/antigravity-rules-and-workflows-ai</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/antigravity-rules-and-workflows-ai</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Sun, 14 Dec 2025 14:30:41 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dbe5cced-c8ab-4611-aa8b-3baad43065ae_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>*&#26368;&#24460;&#26356;&#26032;&#65306;2025&#24180;12&#26376;14&#26085;*</em></p><p></p><h2><strong>&#21839;&#38988;</strong></h2><p>&#22312;&#20351;&#29992; Antigravity IDE &#38283;&#30332;&#26178;&#65292;&#24120;&#35211;&#30340;&#37325;&#35079;&#24037;&#20316;:</p><pre><code>&#31532;&#19968;&#22825;&#65306;

&#38283;&#30332;&#32773;&#65306;&#24314;&#31435;&#19968;&#20491; React &#20803;&#20214;

AI&#65306;&#22909;&#30340;&#65292;&#20351;&#29992; class component

&#38283;&#30332;&#32773;&#65306;&#19981;&#23565;&#65292;&#25105;&#20497;&#21482;&#29992; function component

AI&#65306;&#20102;&#35299;&#65292;&#24050;&#20462;&#27491;

&#31532;&#20108;&#22825;&#65288;&#26032;&#23565;&#35441;&#65289;&#65306;

&#38283;&#30332;&#32773;&#65306;&#24314;&#31435;&#21478;&#19968;&#20491; React &#20803;&#20214;

AI&#65306;&#22909;&#30340;&#65292;&#20351;&#29992; class component

&#38283;&#30332;&#32773;&#65306;&#65288;&#21448;&#35201;&#37325;&#26032;&#35299;&#37323;...&#65289;&#25105;&#20497;&#21482;&#29992; function component

&#31532;&#19977;&#22825;&#65288;&#37325;&#26032;&#38283;&#21855;&#23560;&#26696;&#65289;&#65306;

&#38283;&#30332;&#32773;&#65306;&#24314;&#31435;&#30331;&#20837;&#20803;&#20214;

AI&#65306;&#35201;&#29992;&#20160;&#40636;&#26694;&#26550;&#65311;

&#38283;&#30332;&#32773;&#65306;&#65288;&#31532;&#19977;&#27425;...&#65289;React&#65292;function component&#65292;TypeScript</code></pre><p></p><p>&#27599;&#27425;&#38283;&#26032;&#23565;&#35441;&#12289;&#37325;&#21855; IDE&#65292;&#37117;&#35201;&#37325;&#26032;&#21578;&#35380; AI&#65306;</p><p>- &#20351;&#29992;&#30340;&#31243;&#24335;&#30908;&#39080;&#26684;</p><p>- &#21629;&#21517;&#24931;&#20363;</p><p>- &#28204;&#35430;&#35201;&#27714;</p><p>- &#25991;&#20214;&#26684;&#24335;</p><p>&#36889;&#20123;&#35215;&#21063;&#25033;&#35442;&#26159;&#23560;&#26696;&#30340;&#19968;&#37096;&#20998;&#65292;&#32780;&#19981;&#26159;&#27599;&#27425;&#37117;&#35201;&#21475;&#38957;&#35498;&#26126;&#12290;</p><p></p><div><hr></div><h2><strong>&#35299;&#27770;&#26041;&#26696;</strong></h2><p><strong>Antigravity &#23448;&#26041;&#25552;&#20379;&#20841;&#31278;&#27231;&#21046;</strong>&#65292;&#35731; AI &#33258;&#21205;&#36981;&#24490;&#20320;&#30340;&#38283;&#30332;&#35215;&#31684;&#65306;</p><h3><strong>1. Rules&#65288;&#35215;&#21063;&#65289;</strong></h3><p>- &#39006;&#20284;&#12300;&#31995;&#32113;&#25351;&#20196;&#12301;</p><p>- &#27704;&#36960;&#29983;&#25928;&#65292;&#19981;&#38656;&#35201;&#27599;&#27425;&#25552;&#37266;</p><p>- &#23450;&#32681; AI &#30340;&#34892;&#28858;&#28310;&#21063;</p><h3><strong>2. Workflows&#65288;&#24037;&#20316;&#27969;&#31243;&#65289;</strong></h3><p>- &#39006;&#20284;&#12300;&#24555;&#25463;&#25351;&#20196;&#12301;</p><p>- &#25353;&#38656;&#35320;&#30332;&#65292;&#22519;&#34892;&#35079;&#38620;&#20219;&#21209;</p><p>- &#27161;&#28310;&#21270;&#37325;&#35079;&#24615;&#24037;&#20316;</p><p></p><div><hr></div><h2><strong>&#29992; agy-starter &#39636;&#39511; Rules &amp; Workflows</strong></h2><p>&#33287;&#20854;&#24478;&#29702;&#35542;&#38283;&#22987;&#65292;&#19981;&#22914;&#30452;&#25509;&#21205;&#25163;&#35430;&#35430;&#12290;&#25105;&#20497;&#28310;&#20633;&#20102;&#19968;&#20491;&#23436;&#25972;&#30340;&#31684;&#20363;&#23560;&#26696; `agy-starter`&#65292;&#35731;&#20320;&#37002;&#20570;&#37002;&#23416;&#12290;</p><h4><strong>Repo: <a href="https://github.com/AgentWorkshop/agy-starter">https://github.com/AgentWorkshop/agy-starter</a></strong></h4><div><hr></div><h2><strong>&#27493;&#39519; 1&#65306;Clone &#23560;&#26696;&#20006;&#38283;&#21855;</strong></h2><pre><code>git clone https://github.com/AgentWorkshop/agy-starter.git

cd agy-starter</code></pre><p></p><p>&#22312; Antigravity IDE &#20013;&#38283;&#21855;&#27492;&#36039;&#26009;&#22846;&#65288;File &#8594; Open Folder &#8594; &#36984;&#25799; `agy-starter/`&#65289;</p><h3><strong>&#128161; &#20160;&#40636;&#26159; Rules&#65311;</strong></h3><p>&#25171;&#38283;&#23560;&#26696;&#24460;&#65292;Antigravity &#26371;&#33258;&#21205;&#35712;&#21462; `.antigravity/rules.md` &#27284;&#26696;&#12290;<strong>**Rules &#26159; AI &#30340;&#34892;&#28858;&#28310;&#21063;**</strong>&#65292;&#23601;&#20687;&#25010;&#27861;&#19968;&#27171;&#27704;&#36960;&#29983;&#25928;&#65306;</p><ul><li><p><strong>**&#27704;&#36960;&#29983;&#25928;**</strong>&#65306;&#19981;&#38656;&#35201;&#27599;&#27425;&#23565;&#35441;&#37117;&#37325;&#35079;&#35498;&#26126;</p></li><li><p><strong>**&#33258;&#21205;&#22871;&#29992;**</strong>&#65306;&#38283;&#21855;&#23560;&#26696;&#26178; AI &#33258;&#21205;&#36617;&#20837;</p></li><li><p><strong>**&#22296;&#38538;&#20849;&#20139;**</strong>&#65306;commit &#21040; git &#24460;&#65292;&#25152;&#26377;&#25104;&#21729;&#37117;&#36981;&#24490;&#21516;&#27171;&#35215;&#31684;</p></li></ul><p><strong>&#31684;&#20363;&#65306;</strong> &#25171;&#38283; `.antigravity/rules.md`&#65292;&#20320;&#26371;&#30475;&#21040;&#25991;&#31456;&#25776;&#23531;&#30340;&#23436;&#25972;&#35215;&#31684;&#12290;&#35430;&#33879;&#35731; AI &#24314;&#31435;&#26032;&#25991;&#31456;&#65292;&#23427;&#26371;&#33258;&#21205;&#36981;&#24490;&#36889;&#20123;&#35215;&#21063;&#12290;</p><p></p><div><hr></div><h2><strong>&#27493;&#39519; 2&#65306;&#25506;&#32034;&#23560;&#26696;&#32080;&#27083;</strong></h2><p>&#26597;&#30475;&#23560;&#26696;&#27284;&#26696;&#32080;&#27083;&#65306;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zJFm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zJFm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png 424w, https://substackcdn.com/image/fetch/$s_!zJFm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png 848w, https://substackcdn.com/image/fetch/$s_!zJFm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png 1272w, https://substackcdn.com/image/fetch/$s_!zJFm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zJFm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png" width="840" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:840,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:131991,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181589840?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zJFm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png 424w, https://substackcdn.com/image/fetch/$s_!zJFm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png 848w, https://substackcdn.com/image/fetch/$s_!zJFm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png 1272w, https://substackcdn.com/image/fetch/$s_!zJFm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1d0721-ceda-42ee-965f-8d152ea5bb15_840x820.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294;&#29255;&#35498;&#26126;&#65306;agy-starter &#23560;&#26696;&#32080;&#27083; - &#22312; Antigravity IDE &#20013;&#30340;&#23526;&#38555;&#27284;&#26696;&#27193;*</em></p><h3><strong>&#128161; &#27284;&#26696;&#20301;&#32622;&#35498;&#26126;</strong></h3><p>Antigravity &#23560;&#26696;&#26377;&#20841;&#20491;&#23448;&#26041;&#30446;&#37636;&#65306;</p><ol><li><p><strong>`.antigravity/rules.md`</strong> - &#23560;&#26696;&#35215;&#31684;</p></li></ol><ul><li><p>AI &#30340;&#34892;&#28858;&#28310;&#21063;</p></li><li><p>&#33258;&#21205;&#36617;&#20837;&#65292;&#27704;&#36960;&#29983;&#25928;</p></li></ul><ol start="2"><li><p><strong>`.agent/workflows/`</strong> - &#24037;&#20316;&#27969;&#31243;</p></li></ol><ul><li><p>&#21487;&#37325;&#35079;&#20351;&#29992;&#30340;&#20219;&#21209;&#31684;&#26412;</p></li><li><p>&#29992; `/&#25351;&#20196;` &#35320;&#30332;</p></li></ul><p><strong>Tips&#65306;</strong> &#20063;&#21487;&#20197;&#22312;&#20840;&#22495;&#35373;&#23450;&#65288;`~/.gemini/GEMINI.md`&#65289;&#65292;&#36969;&#29992;&#25152;&#26377;&#23560;&#26696;&#30340;&#20491;&#20154;&#20559;&#22909;&#12290;</p><p></p><div><hr></div><h2><strong>&#27493;&#39519; 3&#65306;&#39636;&#39511;&#31532;&#19968;&#20491; Workflow</strong></h2><p>&#22312; Antigravity &#23565;&#35441;&#20013;&#36664;&#20837;&#65306;`/`</p><p>&#20320;&#26371;&#30475;&#21040;&#21487;&#29992;&#30340; workflows &#21015;&#34920;&#65306;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!51On!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!51On!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png 424w, https://substackcdn.com/image/fetch/$s_!51On!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png 848w, https://substackcdn.com/image/fetch/$s_!51On!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png 1272w, https://substackcdn.com/image/fetch/$s_!51On!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!51On!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png" width="862" height="934" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:934,&quot;width&quot;:862,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:84273,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181589840?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!51On!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png 424w, https://substackcdn.com/image/fetch/$s_!51On!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png 848w, https://substackcdn.com/image/fetch/$s_!51On!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png 1272w, https://substackcdn.com/image/fetch/$s_!51On!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F399ff5e3-5bce-44f3-925c-ee984e6b234c_862x934.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294;&#29255;&#35498;&#26126;&#65306;&#35320;&#30332; Workflow - &#36664;&#20837; / &#24460;&#30340;&#20171;&#38754;*</em></p><p>&#36984;&#25799; `/create`&#65292;&#35731; AI &#24314;&#31435;&#19968;&#31687;&#26032;&#25991;&#31456;&#12290;</p><h3><strong>&#128161; &#20160;&#40636;&#26159; Workflows&#65311;</strong></h3><p><strong>Workflows &#26159;&#21487;&#37325;&#35079;&#20351;&#29992;&#30340;&#20219;&#21209;&#31684;&#26412;</strong>&#65292;&#23601;&#20687;&#33139;&#26412;&#19968;&#27171;&#65306;</p><ul><li><p><strong>**&#27161;&#28310;&#21270;&#27969;&#31243;**</strong>&#65306;&#30906;&#20445;&#27599;&#27425;&#22519;&#34892;&#27493;&#39519;&#19968;&#33268;</p></li><li><p><strong>**&#31680;&#30465;&#26178;&#38291;**</strong>&#65306;&#19981;&#29992;&#27599;&#27425;&#37117;&#35443;&#32048;&#25551;&#36848;&#27493;&#39519;</p></li><li><p><strong>**&#22296;&#38538;&#21332;&#20316;**</strong>&#65306;&#25152;&#26377;&#20154;&#29992;&#21516;&#27171;&#26041;&#24335;&#23436;&#25104;&#20219;&#21209;</p></li></ul><p><strong>agy-starter &#21253;&#21547;&#30340; workflows&#65306;</strong></p><ul><li><p>`/create` - &#24314;&#31435;&#26032;&#25991;&#31456;&#65288;&#21547;&#27169;&#26495;&#12289;&#22294;&#29255;&#30446;&#37636;&#65289;</p></li><li><p>`/update` - &#26356;&#26032;&#25991;&#31456;&#20013;&#30340;&#31243;&#24335;&#30908;&#31684;&#20363;</p></li><li><p>`/proof` - &#26657;&#23565;&#25991;&#31456;&#65288;&#27298;&#26597;&#26684;&#24335;&#12289;&#36899;&#32080;&#12289;&#35486;&#27683;&#65289;</p></li></ul><p>&#25171;&#38283; `.agent/workflows/create-article.md` &#30475;&#30475; workflow &#30340;&#32080;&#27083;&#65306;&#21253;&#21547;&#27493;&#39519;&#35498;&#26126;&#12289;&#31684;&#20363;&#12289;&#21644;&#38928;&#26399;&#32080;&#26524;&#12290;</p><p></p><div><hr></div><h2><strong>&#27493;&#39519; 4&#65306;&#33258;&#35330;&#20320;&#30340; Rules</strong></h2><p>&#29694;&#22312;&#20320;&#29702;&#35299; Rules &#30340;&#36939;&#20316;&#26041;&#24335;&#65292;&#35430;&#33879;&#32232;&#36655; `.antigravity/rules.md` &#20358;&#21305;&#37197;&#20320;&#30340;&#23560;&#26696;&#38656;&#27714;&#12290;</p><h3><strong>&#128161; &#25776;&#23531;&#22909;&#30340; Rules</strong></h3><p><strong>&#10060; &#19981;&#22909;&#30340;&#31684;&#20363;&#65288;&#22826;&#25277;&#35937;&#65289;&#65306;</strong></p><pre><code>- &#23531;&#20986;&#22909;&#30340;&#31243;&#24335;&#30908;

- &#36981;&#24490; Best Practice</code></pre><p></p><p><strong>&#9989; &#22909;&#30340;&#31684;&#20363;&#65288;&#20855;&#39636;&#26126;&#30906;&#65289;&#65306;</strong></p><pre><code>- &#20351;&#29992; Function Component&#65292;&#19981;&#35201;&#29992; Class Component

- Props &#24517;&#38920;&#23450;&#32681; TypeScript interface

- &#27599;&#20491;&#20803;&#20214;&#37117;&#35201;&#26377;&#23565;&#25033;&#30340; .test.tsx &#27284;&#26696;</code></pre><p></p><p><strong>&#32232;&#36655;&#27493;&#39519;&#65306;</strong></p><p>1. &#38283;&#21855; `.antigravity/rules.md`</p><p>2. &#26681;&#25818;&#20320;&#30340;&#23560;&#26696;&#25216;&#34899;&#26855;&#20462;&#25913;&#35215;&#31684;</p><p>3. &#20786;&#23384;&#24460;&#37325;&#26032;&#36617;&#20837; Antigravity&#65288;&#25110;&#38283;&#26032;&#23565;&#35441;&#65289;</p><p>4. &#28204;&#35430; AI &#26159;&#21542;&#36981;&#24490;&#26032;&#35215;&#21063;</p><p></p><div><hr></div><h2><strong>&#27493;&#39519; 5&#65306;&#24314;&#31435;&#20320;&#30340;&#31532;&#19968;&#20491; Workflow</strong></h2><p>&#35430;&#33879;&#22312; `.agent/workflows/` &#24314;&#31435;&#19968;&#20491;&#26032;&#30340; workflow &#27284;&#26696;&#12290;</p><h3><strong>&#128161; Workflow &#32080;&#27083;</strong></h3><p>&#22522;&#26412;&#26684;&#24335;&#65306;</p><pre><code>---

description: &#31777;&#30701;&#25551;&#36848;&#36889;&#20491; workflow &#20570;&#20160;&#40636;

---

## &#27493;&#39519;

### 1. &#31532;&#19968;&#20491;&#27493;&#39519;

- &#20855;&#39636;&#25805;&#20316;&#35498;&#26126;

- &#38928;&#26399;&#32080;&#26524;

### 2. &#31532;&#20108;&#20491;&#27493;&#39519;

- &#20855;&#39636;&#25805;&#20316;&#35498;&#26126;

- &#38928;&#26399;&#32080;&#26524;</code></pre><p></p><p><strong>&#31684;&#20363;&#65306;&#24314;&#31435;&#28204;&#35430;&#27284;&#26696;</strong></p><pre><code>---

description: &#28858;&#29694;&#26377;&#31243;&#24335;&#30908;&#29986;&#29983;&#21934;&#20803;&#28204;&#35430;

---

## &#27493;&#39519;

### 1. &#20998;&#26512;&#30446;&#27161;&#27284;&#26696;

- &#35712;&#21462;&#25351;&#23450;&#30340;&#31243;&#24335;&#30908;&#27284;&#26696;

- &#35672;&#21029;&#25152;&#26377; exported functions

### 2. &#29986;&#29983;&#28204;&#35430;&#26696;&#20363;

- &#28858;&#27599;&#20491; function &#24314;&#31435;&#33267;&#23569; 3 &#20491;&#28204;&#35430;

- &#20351;&#29992;&#28165;&#26970;&#30340;&#28204;&#35430;&#21517;&#31281;

### 3. &#22519;&#34892;&#28204;&#35430;

- &#33258;&#21205;&#22519;&#34892; npm test

- &#30906;&#35469;&#25152;&#26377;&#28204;&#35430;&#36890;&#36942;</code></pre><p></p><p>&#20786;&#23384;&#28858; `.agent/workflows/generate-tests.md`&#65292;&#28982;&#24460;&#29992; `/generate` &#35320;&#30332;&#23427;&#12290;</p><p></p><div><hr></div><h2><strong>&#28145;&#20837;&#29702;&#35299;</strong></h2><h3><strong>Global vs Workspace Rules</strong></h3><p>&#20320;&#21487;&#33021;&#26371;&#30097;&#24785;&#65306;&#20160;&#40636;&#26178;&#20505;&#29992;&#20840;&#22495; Rules&#65292;&#20160;&#40636;&#26178;&#20505;&#29992;&#23560;&#26696; Rules&#65311;</p><p><strong>&#20840;&#22495;&#35373;&#23450;&#65288;</strong>`~/.gemini/GEMINI.md`<strong>&#65289;&#65306;</strong></p><p>- &#20491;&#20154;&#31243;&#24335;&#30908;&#39080;&#26684;&#65288;&#36969;&#29992;&#25152;&#26377;&#23560;&#26696;&#65289;</p><p>- &#24931;&#29992;&#30340;&#21629;&#21517;&#26041;&#24335;</p><p>- &#25991;&#20214;&#25776;&#23531;&#32722;&#24931;</p><p><strong>&#23560;&#26696;&#35373;&#23450;&#65288;</strong>`.antigravity/rules.md`<strong>&#65289;&#65306;</strong></p><p>- &#23560;&#26696;&#29305;&#23450;&#25216;&#34899;&#26855;</p><p>- &#22296;&#38538;&#20849;&#20139;&#35215;&#31684;</p><p>- &#23458;&#25142;&#29305;&#27530;&#35201;&#27714;</p><p><strong>&#20778;&#20808;&#38918;&#24207;&#65306;</strong> Workspace Rules &gt; Global Rules&#65288;&#23560;&#26696;&#35373;&#23450;&#20778;&#20808;&#65289;</p><p></p><div><hr></div><h2><strong>&#24120;&#35211;&#21839;&#38988;</strong></h2><p><strong>Q: Rules &#21644; Workflows &#26377;&#20160;&#40636;&#19981;&#21516;&#65311;</strong></p><p><strong>A:</strong> Rules &#26159;&#12300;&#34987;&#21205;&#35215;&#21063;&#12301;&#65292;Workflows &#26159;&#12300;&#20027;&#21205;&#20219;&#21209;&#12301;</p><p></p><p><strong>Q: &#37325;&#26032;&#38283;&#21855;&#23560;&#26696;&#26178;&#65292;Rules &#36996;&#26371;&#29983;&#25928;&#21966;&#65311;</strong></p><p><strong>A:</strong> &#26159;&#30340;&#65281;Rules &#21644; Workflows &#20786;&#23384;&#22312;&#23560;&#26696;&#27284;&#26696;&#20013;&#65292;&#27599;&#27425;&#38283;&#21855;&#23560;&#26696; AI &#37117;&#26371;&#33258;&#21205;&#36617;&#20837;&#12290;</p><p></p><p><strong>Q: &#22296;&#38538;&#25104;&#21729;&#27794;&#26377; Antigravity &#24590;&#40636;&#36774;&#65311;</strong></p><p><strong>A:</strong> &#36889;&#20123;&#27284;&#26696;&#26159;&#32020;&#25991;&#23383; Markdown&#65292;&#21487;&#20197;&#30070;&#20316;&#23560;&#26696;&#30340; CONTRIBUTING.md &#38321;&#35712;&#12290;</p><p></p><div><hr></div><h2><strong>&#32317;&#32080;</strong></h2><p><strong>&#23526;&#26045; Rules &amp; Workflows &#24460;</strong></p><p>&#9989; <strong>&#19981;&#20877;&#37325;&#35079;</strong> - &#35373;&#23450;&#19968;&#27425;&#65292;AI &#27704;&#36960;&#35352;&#24471;</p><p>&#9989; <strong>&#21363;&#26178; onboarding</strong> - &#26032;&#25104;&#21729;&#31435;&#21051;&#29554;&#24471;&#30456;&#21516;&#30340; AI &#34892;&#28858;</p><p>&#9989; <strong>&#21697;&#36074;&#19968;&#33268;</strong> - &#25152;&#26377;&#31243;&#24335;&#30908;&#36981;&#24490;&#30456;&#21516;&#27161;&#28310;</p><p>&#9989; <strong>&#35079;&#38620;&#20219;&#21209;&#35722;&#25104;&#19968;&#37749;&#25805;&#20316;</strong></p><p>&#9989; <strong>&#23560;&#26696;&#35215;&#31684;&#34987;&#25991;&#20214;&#21270;&#19988;&#21487;&#22519;&#34892;</strong></p><p></p><div><hr></div><h2><strong>&#30456;&#38364;&#36039;&#28304;</strong></h2><ul><li><p>Google Developers Blog - Antigravity &#30332;&#24067; - <a href="https://developers.googleblog.com/build-with-google-antigravity-our-new-agentic-development-platform/">link</a></p></li><li><p>Google Codelabs - Antigravity &#25945;&#23416; - <a href="https://codelabs.developers.google.com/getting-started-google-antigravity">link</a></p></li><li><p><strong>Antigravity Workspace Template - <a href="https://github.com/jimmyliao/antigravity-web-fullstack">https://github.com/jimmyliao/antigravity-web-fullstack</a></strong></p></li><li><p>Antigravity Codes - Workflows &#25351;&#21335; <a href="https://antigravity.codes/blog/workflows">link</a></p></li></ul><p></p><div><hr></div><p><strong><a href="https://github.com/jimmyliao">Jimmy Liao</a></strong></p><ul><li><p>CTO/Co-founder @ Stealth Startup</p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[Antigravity 好用的工具: Antigravigy Quota Extension：即時監控 AI 模型用量]]></title><description><![CDATA[Vibe Coding/Building &#22909;&#29992;&#24037;&#20855; Antigravity, &#35352;&#24471;&#19979;&#36617;]]></description><link>https://memo.jimmyliao.net/p/antigravity-antigravigy-quota-extension</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/antigravity-antigravigy-quota-extension</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Sat, 13 Dec 2025 02:28:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!luYx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>VS Code &#25844;&#20805;&#22871;&#20214;&#65292;&#22312;&#29376;&#24907;&#21015;&#39023;&#31034; Antigravity AI &#27169;&#22411;&#30340;&#38989;&#24230;&#20351;&#29992;&#24773;&#27841;</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!luYx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!luYx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png 424w, https://substackcdn.com/image/fetch/$s_!luYx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png 848w, https://substackcdn.com/image/fetch/$s_!luYx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png 1272w, https://substackcdn.com/image/fetch/$s_!luYx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!luYx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png" width="638" height="488.5782967032967" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1115,&quot;width&quot;:1456,&quot;resizeWidth&quot;:638,&quot;bytes&quot;:288615,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181481422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!luYx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png 424w, https://substackcdn.com/image/fetch/$s_!luYx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png 848w, https://substackcdn.com/image/fetch/$s_!luYx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png 1272w, https://substackcdn.com/image/fetch/$s_!luYx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F947913b0-901b-46c8-afe7-a945f2cda14d_1590x1218.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294;&#29255;&#35498;&#26126;&#65306;AGQ &#25844;&#20805;&#22871;&#20214;&#20027;&#35222;&#35258;&#65292;&#23637;&#31034;&#29376;&#24907;&#21015;&#25972;&#21512;&#25928;&#26524;*</em></p><p>---</p><h2><strong>&#21839;&#38988;</strong></h2><p>&#22312;&#20351;&#29992; Antigravity &#36914;&#34892;&#38283;&#30332;&#26178;&#65292;AI &#27169;&#22411;&#30340;&#38989;&#24230;&#31649;&#29702;&#26159;&#20491;&#23526;&#38555;&#21839;&#38988;&#12290;&#30070;&#38989;&#24230;&#29992;&#30433;&#26178;&#65292;&#38283;&#30332;&#27969;&#31243;&#26371;&#34987;&#36843;&#20013;&#26039;&#65292;&#20294;&#30446;&#21069;&#27794;&#26377;&#31777;&#21934;&#30340;&#26041;&#24335;&#21363;&#26178;&#25484;&#25569;&#21508;&#27169;&#22411;&#30340;&#20351;&#29992;&#29376;&#27841;&#12290;</p><p>&#38283;&#30332;&#32773;&#38656;&#35201;&#25163;&#21205;&#36914;&#20837;&#35373;&#23450;&#38913;&#38754;&#26597;&#30475;&#38989;&#24230;&#65292;&#36889;&#22312;&#23526;&#38555;&#24037;&#20316;&#20013;&#20006;&#19981;&#23526;&#29992;&#12290;</p><p>---</p><h2><strong>&#35299;&#27770;&#26041;&#26696;</strong></h2><p><strong>Antigravity Quota (AGQ)</strong> &#26159;&#19968;&#20491;&#36629;&#37327;&#32026;&#30340; VS Code &#25844;&#20805;&#22871;&#20214;&#65292;&#23559;&#38989;&#24230;&#36039;&#35338;&#25972;&#21512;&#21040;&#29376;&#24907;&#21015;&#12290;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KZHR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KZHR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png 424w, https://substackcdn.com/image/fetch/$s_!KZHR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png 848w, https://substackcdn.com/image/fetch/$s_!KZHR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png 1272w, https://substackcdn.com/image/fetch/$s_!KZHR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KZHR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png" width="1420" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1420,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133938,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181481422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KZHR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png 424w, https://substackcdn.com/image/fetch/$s_!KZHR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png 848w, https://substackcdn.com/image/fetch/$s_!KZHR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png 1272w, https://substackcdn.com/image/fetch/$s_!KZHR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3743c51d-7084-4b90-9732-df5cb654d65c_1420x730.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294;&#29255;&#35498;&#26126;&#65306;VS Code &#29376;&#24907;&#21015;&#39023;&#31034; &#8220;AGQ&#8221; &#22294;&#31034;&#65292;&#40670;&#25802;&#24460;&#23637;&#38283;&#29992;&#37327;&#35443;&#24773;*</em></p><h3><strong>&#20027;&#35201;&#21151;&#33021;</strong></h3><ul><li><p>&#21363;&#26178;&#39023;&#31034;&#25152;&#26377; AI &#27169;&#22411;&#30340;&#29992;&#37327;&#30334;&#20998;&#27604;</p></li><li><p>&#20498;&#25976;&#35336;&#26178;&#22120;&#39023;&#31034;&#38989;&#24230;&#37325;&#32622;&#26178;&#38291;</p></li><li><p>&#21487;&#33258;&#35330;&#35201;&#39023;&#31034;&#30340;&#27169;&#22411;</p></li><li><p>&#25163;&#21205;&#21047;&#26032;&#21151;&#33021;</p></li><li><p>&#29376;&#24907;&#21015;&#25972;&#21512;&#65292;&#38568;&#26178;&#21487;&#35211;</p></li></ul><h3><strong>&#25505;&#29992;&#24773;&#27841;</strong></h3><ul><li><p>henrikdev &#25345;&#32396;&#32173;&#35703;</p></li><li><p>&#38283;&#28304;&#19988;&#20813;&#36027;</p></li></ul><p></p><div><hr></div><h2><strong>&#129302; &#25903;&#25588;&#30340; AI &#27169;&#22411;</strong></h2><p>AGQ &#25903;&#25588; Antigravity IDE &#20013;&#25152;&#26377;&#20027;&#27969; AI &#27169;&#22411;</p><p></p><h3><strong>&#27169;&#22411;&#36984;&#25799;&#31574;&#30053;</strong></h3><p>&#26681;&#25818;&#20219;&#21209;&#35079;&#38620;&#24230;&#21644;&#38989;&#24230;&#29376;&#27841;&#36984;&#25799;&#36969;&#30070;&#27169;&#22411;&#65306;</p><p><strong>&#26085;&#24120;&#38283;&#30332;&#20219;&#21209;</strong></p><ul><li><p>Gemini 3 Pro (Low) &#25110; Claude Sonnet 4.5</p><ul><li><p>&#36969;&#29992;&#26044;&#24120;&#35211;&#30340; CRUD&#12289;&#37325;&#27083;&#12289;&#38500;&#37679;</p></li></ul></li></ul><p><strong>&#35079;&#38620;&#21839;&#38988;&#34389;&#29702;</strong></p><ul><li><p>Claude Sonnet 4.5 (Thinking) &#25110; Claude Opus 4.5</p></li><li><p>&#36969;&#29992;&#26044;&#26550;&#27083;&#35373;&#35336;&#12289;&#28436;&#31639;&#27861;&#20778;&#21270;&#12289;&#31995;&#32113;&#25972;&#21512;</p></li></ul><p><strong>&#38989;&#24230;&#19981;&#36275;&#26178;</strong></p><ul><li><p>&#20999;&#25563;&#21040; GPT-OSS 120B</p></li><li><p>&#25110;&#20778;&#20808;&#34389;&#29702;&#21487;&#25163;&#21205;&#23436;&#25104;&#30340;&#24037;&#20316;</p></li></ul><p></p><div><hr></div><h2><strong>&#23433;&#35037;</strong></h2><h3><strong>&#36879;&#36942; Marketplace</strong></h3><p>1. &#38283;&#21855; Extensions &#38754;&#26495; (`Cmd/Ctrl + Shift + X`)</p><p>2. &#25628;&#23563; &#8220;Antigravity Quota&#8221;</p><p>3. &#40670;&#25802; Install</p><p></p><h3><strong>&#21021;&#27425;&#35373;&#23450;</strong></h3><p>&#23433;&#35037;&#23436;&#25104;&#24460;&#65292;&#29376;&#24907;&#21015;&#26371;&#20986;&#29694; &#8220;AGQ&#8221; &#22294;&#31034;&#12290;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gMOt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gMOt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png 424w, https://substackcdn.com/image/fetch/$s_!gMOt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png 848w, https://substackcdn.com/image/fetch/$s_!gMOt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png 1272w, https://substackcdn.com/image/fetch/$s_!gMOt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gMOt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png" width="604" height="242" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:242,&quot;width&quot;:604,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:63570,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181481422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gMOt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png 424w, https://substackcdn.com/image/fetch/$s_!gMOt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png 848w, https://substackcdn.com/image/fetch/$s_!gMOt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png 1272w, https://substackcdn.com/image/fetch/$s_!gMOt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d602fb9-64dc-411d-b4a8-5bf187970563_604x242.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>*&#22294;&#29255;&#35498;&#26126;&#65306;VS Code &#29376;&#24907;&#21015;&#21491;&#19979;&#35282;&#30340; AGQ &#22294;&#31034;*</em></p><p>&#40670;&#25802;&#27169;&#22411;&#21517;&#31281;&#24038;&#20596;&#30340;&#22291;&#22280;&#20358;&#20999;&#25563;&#39023;&#31034;/&#38577;&#34255;&#65306;</p><p>- &#9989; &#21246;&#36984; = &#39023;&#31034;&#22312;&#29376;&#24907;&#21015;</p><p>- &#11093; &#26410;&#21246;&#36984; = &#38577;&#34255;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kqof!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kqof!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png 424w, https://substackcdn.com/image/fetch/$s_!kqof!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png 848w, https://substackcdn.com/image/fetch/$s_!kqof!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png 1272w, https://substackcdn.com/image/fetch/$s_!kqof!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kqof!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png" width="886" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:886,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115773,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181481422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kqof!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png 424w, https://substackcdn.com/image/fetch/$s_!kqof!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png 848w, https://substackcdn.com/image/fetch/$s_!kqof!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png 1272w, https://substackcdn.com/image/fetch/$s_!kqof!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d2a1a97-8ce6-497f-bb57-c5f678dc443e_886x740.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>*&#22294;&#29255;&#35498;&#26126;&#65306;&#40670;&#25802;&#27169;&#22411;&#21069;&#30340;&#22291;&#22280;&#20999;&#25563;&#39023;&#31034;&#29376;&#24907;*</em></p><h3><strong>&#38656;&#35201;&#21363;&#26178;&#26356;&#26032;</strong></h3><ul><li><p>&#20351;&#29992;&#25351;&#20196;&#38754;&#26495; (`Cmd/Ctrl + Shift + P`)</p></li><li><p>&#22519;&#34892; `AGQ: Refresh Now`</p></li></ul><p></p><p></p><div><hr></div><h2><strong>&#36914;&#38542;&#20351;&#29992;</strong></h2><h3><strong>&#27169;&#22411;&#20999;&#25563;&#31574;&#30053;</strong></h3><p>&#26681;&#25818;&#38989;&#24230;&#21097;&#39192;&#30334;&#20998;&#27604;&#35519;&#25972;&#27169;&#22411;&#36984;&#25799;&#65306;</p><pre><code>&#38989;&#24230; &gt; 80%  &#8594; &#20219;&#20309;&#27169;&#22411;&#30342;&#21487;

&#38989;&#24230; 50-80% &#8594; &#20778;&#20808;&#20013;&#38542;&#27169;&#22411;&#65288;Sonnet, Gemini Low&#65289;

&#38989;&#24230; &lt; 50%  &#8594; &#20677;&#20351;&#29992;&#20302;&#38542;&#27169;&#22411;&#65292;&#20445;&#30041;&#39640;&#38542;&#27169;&#22411;&#32102;&#38364;&#37749;&#20219;&#21209;

&#38989;&#24230; &lt; 20%  &#8594; &#26283;&#20572; AI &#36628;&#21161;&#65292;&#31561;&#24453;&#37325;&#32622;&#25110;&#25163;&#21205;&#34389;&#29702;</code></pre><p></p><h3><strong>&#26178;&#38291;&#20998;&#37197;</strong></h3><p>AGQ &#39023;&#31034;&#30340;&#37325;&#32622;&#36913;&#26399;&#36890;&#24120;&#32004; 157 &#23567;&#26178;&#65288;&#32004; 6.5 &#22825;&#65289;&#65306;</p><pre><code>&#36913;&#26399;&#21069;&#27573;&#65288;Day 1-3&#65289;&#8594; &#21487;&#20351;&#29992;&#39640;&#38542;&#27169;&#22411;&#36914;&#34892;&#26550;&#27083;&#35373;&#35336;&#12289;&#37325;&#27083;

&#36913;&#26399;&#20013;&#27573;&#65288;Day 4-5&#65289;&#8594; &#20999;&#25563;&#20013;&#38542;&#27169;&#22411;&#34389;&#29702;&#19968;&#33324;&#38283;&#30332;&#20219;&#21209;

&#36913;&#26399;&#24460;&#27573;&#65288;Day 6-7&#65289;&#8594; &#20445;&#23432;&#20351;&#29992;&#65292;&#20197;&#20302;&#38542;&#27169;&#22411;&#25110;&#25163;&#21205;&#38283;&#30332;&#28858;&#20027;</code></pre><p></p><h3></h3><h3><strong>&#24555;&#25463;&#37749;&#35373;&#23450;</strong></h3><p>&#21487;&#22312; Antigravity &#35373;&#23450;&#33258;&#35330;&#24555;&#25463;&#37749;&#65306;</p><pre><code>// keybindings.json

{

&#8220;key&#8221;: &#8220;cmd+shift+q&#8221;,

&#8220;command&#8221;: &#8220;agq.refreshNow&#8221;,

&#8220;when&#8221;: &#8220;editorTextFocus&#8221;

}</code></pre><p></p><p></p><div><hr></div><h2><strong>&#21487;&#29992;&#25351;&#20196;</strong></h2><ul><li><p>`AGQ: Refresh Now` : &#25163;&#21205;&#37325;&#26032;&#25972;&#29702;&#38989;&#24230;&#36039;&#35338; </p></li><li><p>`AGQ: Open Settings` : &#38283;&#21855; Antigravity &#35373;&#23450; </p></li><li><p>`AGQ: Toggle Model Visibility` : &#20999;&#25563;&#27169;&#22411;&#39023;&#31034; </p></li></ul><h3><strong>&#22519;&#34892;&#26041;&#24335;</strong></h3><p>&#38283;&#21855;&#25351;&#20196;&#38754;&#26495; (`Cmd/Ctrl + Shift + P`)&#65292;&#36664;&#20837; `AGQ` &#36984;&#25799;&#25351;&#20196;&#12290;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Mcd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Mcd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png 424w, https://substackcdn.com/image/fetch/$s_!9Mcd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png 848w, https://substackcdn.com/image/fetch/$s_!9Mcd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png 1272w, https://substackcdn.com/image/fetch/$s_!9Mcd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Mcd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png" width="1386" height="264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:264,&quot;width&quot;:1386,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:39879,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181481422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9Mcd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png 424w, https://substackcdn.com/image/fetch/$s_!9Mcd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png 848w, https://substackcdn.com/image/fetch/$s_!9Mcd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png 1272w, https://substackcdn.com/image/fetch/$s_!9Mcd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b1f15b8-b698-450a-9436-60926c3f7032_1386x264.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><em>*&#22294;&#29255;&#35498;&#26126;&#65306;VS Code &#25351;&#20196;&#38754;&#26495;&#39023;&#31034; AGQ &#30456;&#38364;&#25351;&#20196;*</em></p><p></p><div><hr></div><h2><strong>&#24310;&#20280;&#38321;&#35712;</strong></h2><h3><strong>Antigravity Fullstack Template</strong></h3><p>AGQ &#35299;&#27770;&#20102;&#38989;&#24230;&#30435;&#25511;&#21839;&#38988;&#65292;&#20294;&#22312;&#23560;&#26696;&#38283;&#30332;&#25928;&#29575;&#19978;&#36996;&#26377;&#20778;&#21270;&#31354;&#38291;&#12290;</p><p><strong>Antigravity Fullstack Template</strong> &#25552;&#20379;&#65306;</p><p>- &#32321;&#39636;&#20013;&#25991;&#38283;&#30332;&#29872;&#22659;</p><p>- &#38928;&#35373;&#25972;&#21512;&#30340; AI &#21332;&#20316;&#35215;&#21063;</p><p>- &#23436;&#25972;&#30340;&#24037;&#20855;&#37832;&#21644;&#23560;&#26696;&#32080;&#27083;</p><pre><code>git clone https://github.com/jimmyliao/antigravity-web-fullstack.git</code></pre><p>&#23436;&#25972;&#35498;&#26126;&#35531;&#38748;&#24453;&#19979;&#19968;&#31687; &#8594;</p><p></p><div><hr></div><p><strong>Jimmy Liao</strong></p><ul><li><p>CTO/Co-founder @ Steath Mode Startup</p></li><li><p>GitHub: <a href="https://github.com/jimmyliao">@jimmyliao</a></p></li><li><p>Template: antigravity-web-fullstack: <a href="https://github.com/jimmyliao/antigravity-web-fullstack">https://github.com/jimmyliao/antigravity-web-fullstack</a></p></li></ul><p></p><div><hr></div><h2><strong>&#30456;&#38364;&#36039;&#28304;</strong></h2><ul><li><p>[AGQ Extension - VS Code Marketplace](<a href="https://github.com/Henrik-3/AntigravityQuota/tree/v1.0.4">https://github.com/Henrik-3/AntigravityQuota/tree/v1.0.4</a>)</p></li><li><p>[Antigravity &#23448;&#26041;&#25991;&#20214;](<a href="https://docs.antigravity.com">https://docs.antigravity.com</a>)</p></li><li><p>[GitHub Repository](<a href="https://github.com/jimmyliao/antigravity-web-fullstack">https://github.com/jimmyliao/antigravity-web-fullstack</a>)</p></li></ul><p></p><div><hr></div><p><em>*&#26368;&#24460;&#26356;&#26032;&#65306;2025&#24180;12&#26376;13&#26085;*</em>  </p><p></p><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[🤖 Gemini Interactions API 初探]]></title><description><![CDATA[Google &#37341;&#23565; Stateful AI &#25033;&#29992;&#31243;&#24335;&#35352;&#25014;&#39636;&#31649;&#29702;&#30340;&#26041;&#26696;...&#20043;&#19968;]]></description><link>https://memo.jimmyliao.net/p/gemini-interactions-api</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/gemini-interactions-api</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Fri, 12 Dec 2025 03:58:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dabfd04b-136b-4e79-a473-0c482b9be9be_2048x2048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h6>Substack &#30340;&#25805;&#20316;&#20171;&#38754;&#24456;&#19981;&#30452;&#35258;&#21834;, &#19981;&#30693;&#36947;&#26377;&#27794;&#26377; API/MCP (&#35442;&#19981;&#26371;&#35201;&#33258;&#24049;&#25630;&#19968;&#20491;&#21543;)</h6><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ehyi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ehyi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!Ehyi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!Ehyi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!Ehyi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ehyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png" width="80" height="80" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:80,&quot;bytes&quot;:5615828,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181392481?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ehyi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!Ehyi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!Ehyi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!Ehyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7717ea3b-8884-4648-81c0-ba1e9ff6b398_2048x2048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Google &#26368;&#36817;&#25512;&#20986;&#20102; Gemini Interactions API&#65292;&#28858;&#38283;&#30332;&#32773;&#24314;&#27083;&#26377;&#29376;&#24907; AI &#25033;&#29992;&#31243;&#24335;&#30340;&#26041;&#24335;&#24118;&#20358;&#20102;&#31684;&#24335;&#36681;&#31227;&#12290;&#33287;&#20659;&#32113;&#38656;&#35201;&#33258;&#34892;&#31649;&#29702;&#23565;&#35441;&#27511;&#21490;&#30340;&#26041;&#27861;&#19981;&#21516;&#65292;&#36889;&#20491; API &#25552;&#20379;&#20102;&#20839;&#24314;&#30340;&#23565;&#35441;&#29376;&#24907;&#31649;&#29702;&#21151;&#33021;&#12290;&#38614;&#28982;&#36889;&#31777;&#21270;&#20102;&#38283;&#30332;&#27969;&#31243;&#65292;&#20294;&#20063;&#20276;&#38568;&#33879;&#20540;&#24471;&#20180;&#32048;&#23529;&#35222;&#30340;&#26550;&#27083;&#24433;&#38911;&#21644;&#25104;&#26412;&#32771;&#37327;&#12290;</p><h2><strong>&#20160;&#40636;&#26159; Interactions API&#65311;</strong></h2><p>Interactions API &#23526;&#29694;&#20102;&#20855;&#26377;&#25345;&#20037;&#29376;&#24907;&#31649;&#29702;&#30340;&#22810;&#36650;&#23565;&#35441;&#21151;&#33021;&#12290;&#38283;&#30332;&#32773;&#19981;&#38656;&#35201;&#25163;&#21205;&#36861;&#36452;&#23565;&#35441;&#27511;&#21490;&#20006;&#22312;&#27599;&#27425;&#35531;&#27714;&#26178;&#20659;&#36958;&#65292;API &#26371;&#36879;&#36942; <strong>Interaction Objects </strong>&#33258;&#21205;&#34389;&#29702;&#36889;&#19968;&#20999;&#8212;&#8212;&#36889;&#20123;&#32080;&#27083;&#21270;&#35352;&#37636;&#23553;&#35037;&#20102;&#20351;&#29992;&#32773;&#35338;&#24687;&#12289;&#27169;&#22411;&#22238;&#25033;&#12289;&#24037;&#20855;&#21628;&#21483;&#21644;&#24037;&#20855;&#32080;&#26524;&#12290;</p><h3><strong>&#26680;&#24515;&#21151;&#33021;</strong></h3><ul><li><p><strong>&#33258;&#21205;&#29376;&#24907;&#31649;&#29702;</strong>&#65306;API &#36879;&#36942; `previous_interaction_id` &#22312;&#22810;&#36650;&#23565;&#35441;&#20013;&#32173;&#35703;&#23565;&#35441;&#19978;&#19979;&#25991;</p></li><li><p><strong>&#24037;&#20855;&#32232;&#25490;</strong>&#65306;&#28961;&#32299;&#25972;&#21512;&#20989;&#25976;&#21628;&#21483;&#12289;&#20839;&#24314;&#24037;&#20855;&#65288;Google &#25628;&#23563;&#12289;&#31243;&#24335;&#30908;&#22519;&#34892;&#65289;&#21644; MCP &#20282;&#26381;&#22120;</p></li><li><p><strong>&#38263;&#26178;&#38291;&#36939;&#34892;&#20219;&#21209;</strong>&#65306;&#25903;&#25588;&#32972;&#26223;&#22519;&#34892;&#30340;&#38750;&#21516;&#27493;&#25805;&#20316;&#65288;`background=true`&#65289;</p></li><li><p><strong>&#20839;&#24314;&#35352;&#25014;&#39636;</strong>&#65306;&#20282;&#26381;&#22120;&#31471;&#20786;&#23384;&#23565;&#35441;&#27511;&#21490;</p></li></ul><p><strong>&#20786;&#23384;&#26550;&#27083;</strong>&#65306;&#38614;&#28982;&#25991;&#20214;&#20013;&#27794;&#26377;&#26126;&#30906;&#35498;&#26126;&#65292;&#20294;&#36889;&#20123; Interaction Objects &#24456;&#21487;&#33021;&#20786;&#23384;&#22312; Google Cloud Storage (GCS) &#25110;&#39006;&#20284;&#30340;&#25345;&#20037;&#21270;&#22522;&#30990;&#35373;&#26045;&#20013;&#65292;&#36889;&#30452;&#25509;&#24433;&#38911;&#20102;&#36039;&#26009;&#20445;&#30041;&#25919;&#31574;&#21644;&#25104;&#26412;&#12290;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UDFJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UDFJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!UDFJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!UDFJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!UDFJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UDFJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5225129,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181392481?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UDFJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!UDFJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!UDFJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!UDFJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39ba2e82-aa14-44d9-a73f-14924ba5cb8c_2048x2048.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2><strong>1 &#22825; vs. 55 &#22825;&#20445;&#30041;&#26399;</strong></h2><p></p><p><strong>&#20813;&#36027;&#26041;&#26696;</strong></p><ul><li><p>&#36039;&#26009;&#20445;&#30041;&#26399;: 1 &#22825;</p></li><li><p>&#22580;&#26223;: &#24555;&#36895;&#31034;&#31684;&#12289;&#28204;&#35430;&#12289;&#28961;&#29376;&#24907;&#25033;&#29992;</p></li><li><p>&#38480;&#21046;: &#28961;&#27861;&#25903;&#25588;&#22238;&#35370;&#20351;&#29992;&#32773;&#25110;&#38656;&#35201;&#25345;&#20037;&#35352;&#25014;&#30340;&#25033;&#29992;</p></li></ul><p><strong>&#20184;&#36027;&#26041;&#26696;</strong></p><ul><li><p>&#36039;&#26009;&#20445;&#30041;&#26399;: 55 &#22825;</p></li><li><p>&#22580;&#26223;: &#20855;&#26377;&#23565;&#35441;&#27511;&#21490;&#30340;&#29983;&#29986;&#29872;&#22659;&#25033;&#29992;</p></li><li><p>&#38480;&#21046;: &#20786;&#23384;&#25104;&#26412;&#32047;&#31309;&#65307;&#24517;&#38920;&#31649;&#29702;&#36039;&#26009;&#29983;&#21629;&#36913;&#26399;</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DfL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DfL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!0DfL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!0DfL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!0DfL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DfL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5353327,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181392481?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DfL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!0DfL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!0DfL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!0DfL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa98634f4-6d13-4236-ae91-c47d06691930_2048x2048.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3><strong>&#128680; &#20813;&#36027;&#26041;&#26696;&#20351;&#29992;&#32773;&#30340;&#24433;&#38911;</strong></h3><p>24 &#23567;&#26178;&#20445;&#30041;&#38480;&#21046;&#24478;&#26681;&#26412;&#19978;&#38480;&#21046;&#20102;&#20320;&#33021;&#24314;&#27083;&#30340;&#25033;&#29992;&#39006;&#22411;&#12290;&#22312; 25 &#23567;&#26178;&#24460;&#65292;&#20320;&#28961;&#27861;&#20351;&#29992; `previous_interaction_id` &#20358;&#32380;&#32396;&#23565;&#35441;&#8212;&#8212;&#20282;&#26381;&#22120;&#31471;&#30340;&#29376;&#24907;&#24050;&#32147;&#28040;&#22833;&#12290;&#36889;&#36843;&#20351;&#38283;&#30332;&#32773;&#24517;&#38920;&#65306;</p><p>- &#21482;&#24314;&#27083;&#28961;&#29376;&#24907;&#25110;&#30701;&#26371;&#35441;&#30340;&#25033;&#29992;&#31243;&#24335;</p><p>- &#28858;&#36229;&#36942; 24 &#23567;&#26178;&#30340;&#20351;&#29992;&#32773;&#19978;&#19979;&#25991;&#23526;&#20316;&#22806;&#37096;&#35352;&#25014;&#39636;&#20786;&#23384;</p><p>- &#22312;&#23458;&#25142;&#31471;&#25163;&#21205;&#31649;&#29702;&#23565;&#35441;&#27511;&#21490;&#65288;&#28961;&#29376;&#24907;&#27169;&#24335;&#65289;</p><p><strong>&#35299;&#27770;&#26041;&#26696;</strong>&#65306;&#22914;&#26524;&#20320;&#22312;&#20813;&#36027;&#26041;&#26696;&#19978;&#38656;&#35201;&#36229;&#36942; 24 &#23567;&#26178;&#30340;&#35352;&#25014;&#65292;&#24517;&#38920;&#23526;&#20316;&#33258;&#24049;&#30340;&#35299;&#27770;&#26041;&#26696;&#65292;&#20351;&#29992;&#22806;&#37096;&#36039;&#26009;&#24235;&#12289;&#21521;&#37327;&#20786;&#23384;&#25110;&#39006;&#20284;&#30340;&#25345;&#20037;&#21270;&#23652;&#12290;</p><h3><strong>&#128184; &#20184;&#36027;&#26041;&#26696;&#30340;&#38577;&#34255;&#25104;&#26412;</strong></h3><p>&#21319;&#32026;&#21040;&#20184;&#36027;&#26041;&#26696;&#21487;&#29554;&#24471; 55 &#22825;&#30340;&#20445;&#30041;&#26399;&#65292;&#20294;&#24341;&#20837;&#20102;&#26032;&#30340;&#25104;&#26412;&#32173;&#24230;&#65306;</p><p><strong>&#20659;&#32113; LLM &#25104;&#26412;&#65306;</strong></p><p>1. &#36664;&#20837; Token&#65288;&#25552;&#31034;&#34389;&#29702;&#65289;</p><p>2. &#36664;&#20986; Token&#65288;&#22238;&#25033;&#29983;&#25104;&#65289;</p><p><strong>Interactions API &#30340;&#26032;&#25104;&#26412;&#65306;</strong></p><p>3. <strong>&#20114;&#21205;&#20786;&#23384;&#25104;&#26412;</strong></p><p>&#23565;&#26044;&#39640;&#27969;&#37327;&#25033;&#29992;&#65292;&#36889;&#26371;&#24555;&#36895;&#32047;&#31309;&#65306;</p><p></p><p><strong>&#31684;&#20363;&#65306;&#23458;&#25142;&#25903;&#25588;&#32842;&#22825;&#27231;&#22120;&#20154;</strong></p><p>- &#27599;&#22825; 10,000 &#20301;&#20351;&#29992;&#32773;</p><p>- &#24179;&#22343;&#27599;&#20301;&#20351;&#29992;&#32773; 5 &#27425;&#20114;&#21205;</p><p>- &#27599;&#22825; 50,000 &#20491;&#20114;&#21205;&#29289;&#20214;</p><p>- &#20445;&#30041; 55 &#22825; = 275 &#33836;&#20491;&#20786;&#23384;&#29289;&#20214;</p><p>- &#21363;&#20351;&#27599;&#20491;&#29289;&#20214;&#21482;&#38656;&#24190;&#20998;&#37666;&#65292;&#36889;&#20063;&#26371;&#32047;&#31309;&#25104;&#21487;&#35264;&#30340;&#25976;&#23383;</p><h2><strong>&#25511;&#21046;&#20786;&#23384;&#65306;Opt-in &#36984;&#25799;</strong></h2><p>&#38364;&#37749;&#26159;&#65292;&#20320;&#21487;&#20197;&#36879;&#36942; `store` &#21443;&#25976;&#25511;&#21046;&#35201;&#20786;&#23384;&#20160;&#40636;&#65306;</p><p><strong>&#20309;&#26178;&#25033;&#35442;&#20351;&#29992; </strong>`store=false`<strong>&#65306;</strong></p><ul><li><p>GDPR/HIPAA &#21512;&#35215;&#35201;&#27714;</p></li><li><p>&#25935;&#24863;&#30340;&#36001;&#21209;&#25110;&#37291;&#30274;&#36039;&#26009;</p></li><li><p>&#33256;&#26178;&#38500;&#37679;&#26371;&#35441;</p></li><li><p>&#39640;&#38971;&#29575;&#12289;&#20302;&#20729;&#20540;&#20114;&#21205;</p></li></ul><p><strong>&#38480;&#21046;</strong>&#65306;&#30070; `store=false` &#26178;&#65292;&#20320;&#28961;&#27861;&#22312;&#24460;&#32396;&#36650;&#27425;&#20013;&#20351;&#29992; `previous_interaction_id`&#65292;&#22240;&#28858;&#20114;&#21205;&#27794;&#26377;&#22312;&#20282;&#26381;&#22120;&#31471;&#25345;&#20037;&#21270;&#12290;&#20320;&#24517;&#38920;&#25913;&#28858;&#22312;&#23458;&#25142;&#31471;&#31649;&#29702;&#29376;&#24907;&#12290;</p><h2><strong>&#26550;&#27083;&#27770;&#31574;&#26694;&#26550;</strong></h2><p>&#22312;&#25505;&#29992; Interactions API &#20043;&#21069;&#65292;&#35413;&#20272;&#20197;&#19979;&#21839;&#38988;&#65306;</p><h3><strong>1. &#35352;&#25014;&#25345;&#32396;&#26178;&#38291;&#38656;&#27714;</strong></h3><pre><code>&#22914;&#26524;&#25152;&#38656;&#35352;&#25014; &#8804; 24 &#23567;&#26178;&#65306;

    &#8594; &#20813;&#36027;&#26041;&#26696;&#21487;&#33021;&#36275;&#22816;

&#22914;&#26524; 24 &#23567;&#26178; &lt; &#25152;&#38656;&#35352;&#25014; &#8804; 55 &#22825;&#65306;

    &#8594; &#38656;&#35201;&#20184;&#36027;&#26041;&#26696;

&#22914;&#26524;&#25152;&#38656;&#35352;&#25014; &gt; 55 &#22825;&#65306;

    &#8594; &#38656;&#35201;&#28151;&#21512;&#26041;&#27861;&#65288;API + &#22806;&#37096;&#20786;&#23384;&#65289;</code></pre><p></p><h3><strong>2. &#36039;&#26009;&#25935;&#24863;&#24615;&#33287;&#21512;&#35215;&#24615;</strong></h3><p><strong>&#39640;&#25935;&#24863;&#24615;</strong>&#65288;&#36001;&#21209;&#12289;&#37291;&#30274;&#12289;&#20491;&#20154;&#65289;&#65306;</p><ul><li><p>&#32771;&#24942;&#23565;&#25152;&#26377;&#20114;&#21205;&#20351;&#29992; `store=false`</p></li><li><p>&#23526;&#20316;&#33258;&#24049;&#30340;&#21152;&#23494;&#23433;&#20840;&#20786;&#23384;</p></li><li><p>&#20180;&#32048;&#23529;&#26597;&#36039;&#26009;&#34389;&#29702;&#21332;&#35696;</p></li></ul><p><strong>&#20013;&#31561;&#25935;&#24863;&#24615;</strong>&#65288;&#21830;&#26989;&#36039;&#26009;&#65289;&#65306;</p><ul><li><p>&#23529;&#26597; Google &#30340;&#36039;&#26009;&#34389;&#29702;&#26781;&#27454;</p></li><li><p>&#32771;&#24942;&#20677;&#23565;&#25935;&#24863;&#36650;&#27425;&#36984;&#25799;&#36864;&#20986;</p></li><li><p>&#23526;&#20316;&#29983;&#21629;&#36913;&#26399;&#31649;&#29702;</p></li></ul><p><strong>&#20302;&#25935;&#24863;&#24615;</strong>&#65288;&#20844;&#38283;&#20839;&#23481;&#12289;&#31034;&#31684;&#65289;&#65306;</p><ul><li><p>&#23436;&#20840;&#25509;&#21463; API &#20415;&#21033;&#24615;</p></li><li><p>&#27161;&#28310;&#20445;&#30041;&#25919;&#31574;&#21363;&#21487;&#28415;&#36275;</p></li></ul><h3><strong>3. &#25104;&#26412;</strong></h3><p>&#35336;&#31639;&#27599;&#26376;&#32317;&#25104;&#26412;&#65292;&#21253;&#25324;&#65306;</p><ul><li><p><strong>Token &#25104;&#26412;</strong>&#65306;&#36664;&#20837;&#21644;&#36664;&#20986; token &#20351;&#29992;&#37327;</p></li><li><p><strong>&#20786;&#23384;&#25104;&#26412;</strong>&#65306;&#20114;&#21205;&#25976;&#37327; &#215; &#20445;&#30041;&#26399; &#215; &#27599;&#27425;&#20114;&#21205;&#30340;&#20786;&#23384;&#25104;&#26412;</p></li><li><p><strong>&#24179;&#22343;&#20786;&#23384;&#20114;&#21205;&#25976;</strong>&#65306;&#27599;&#26085;&#20114;&#21205;&#25976; &#215; 27.5&#65288;55 &#22825;&#30340;&#24179;&#22343;&#20540;&#65289;</p></li></ul><p>&#23565;&#26044;&#27599;&#26085;&#20114;&#21205;&#37327;&#39640;&#30340;&#25033;&#29992;&#31243;&#24335;&#65292;&#20786;&#23384;&#25104;&#26412;&#21487;&#33021;&#25104;&#28858; API &#32317;&#24115;&#21934;&#30340;&#37325;&#35201;&#32068;&#25104;&#37096;&#20998;&#12290;</p><h2><strong>&#28151;&#21512;&#26550;&#27083;&#27169;&#24335;</strong></h2><p>&#23565;&#26044;&#20855;&#26377;&#22810;&#27171;&#21270;&#38656;&#27714;&#30340;&#29983;&#29986;&#25033;&#29992;&#65292;&#28151;&#21512;&#26041;&#27861;&#25552;&#20379;&#20102;&#26368;&#20339;&#24179;&#34913;&#65306;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qYMQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qYMQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!qYMQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!qYMQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!qYMQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qYMQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5195977,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181392481?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qYMQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!qYMQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!qYMQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!qYMQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc237eb35-f3be-432d-b36e-5c6cb3c2aca2_2816x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>&#30701;&#26399;&#19978;&#19979;&#25991;&#65288;&#8804;55 &#22825;&#65289;</strong>&#65306;</p><ul><li><p>&#20351;&#29992; Interactions API &#33287; `previous_interaction_id`</p></li><li><p>&#21033;&#29992;&#33258;&#21205;&#29376;&#24907;&#31649;&#29702;</p></li><li><p>&#21463;&#30410;&#26044;&#38577;&#24335;&#24555;&#21462;&#20197;&#25552;&#21319;&#25928;&#33021;</p></li></ul><p><strong>&#38263;&#26399;&#19978;&#19979;&#25991;&#65288;&gt;55 &#22825;&#65289;</strong>&#65306;</p><ul><li><p>&#22312;&#21521;&#37327;&#36039;&#26009;&#24235;&#20013;&#20786;&#23384;&#25688;&#35201;</p></li><li><p>&#27298;&#32034;&#30456;&#38364;&#19978;&#19979;&#25991;&#20006;&#27880;&#20837;&#26032;&#20114;&#21205;</p></li><li><p>&#32173;&#25345;&#23565;&#36039;&#26009;&#29983;&#21629;&#36913;&#26399;&#30340;&#25511;&#21046;</p></li></ul><p><strong>&#25935;&#24863;&#36039;&#26009;</strong>&#65306;</p><ul><li><p>&#23565;&#25935;&#24863;&#20114;&#21205;&#20351;&#29992; `store=false`</p></li><li><p>&#22312;&#20320;&#30340;&#23433;&#20840;&#36039;&#26009;&#24235;&#20013;&#20786;&#23384;&#21152;&#23494;&#29256;&#26412;</p></li><li><p>&#36981;&#23432;&#30435;&#31649;&#35201;&#27714;</p></li></ul><p><strong>&#28961;&#29376;&#24907;&#25805;&#20316;</strong>&#65306;</p><ul><li><p>(&#24453;&#32396;)</p><p></p></li></ul><h2><strong>&#36914;&#38542;&#21151;&#33021;</strong></h2><p>Interactions API &#36229;&#36234;&#20102;&#31777;&#21934;&#30340;&#23565;&#35441;&#65306;</p><p><strong>&#22810;&#36650;&#23565;&#35441;</strong>&#65306;&#21516;&#26178;&#25903;&#25588;&#26377;&#29376;&#24907;&#65288;&#20282;&#26381;&#22120;&#31649;&#29702;&#65289;&#21644;&#28961;&#29376;&#24907;&#65288;&#23458;&#25142;&#31471;&#31649;&#29702;&#65289;&#27169;&#24335;</p><p><strong>&#24037;&#20855;&#25972;&#21512;</strong>&#65306;&#20989;&#25976;&#21628;&#21483;&#12289;&#20839;&#24314;&#24037;&#20855;&#65288;Google &#25628;&#23563;&#12289;&#31243;&#24335;&#30908;&#22519;&#34892;&#12289;URL &#19978;&#19979;&#25991;&#65289;&#21644;&#36960;&#31471; MCP &#20282;&#26381;&#22120;</p><p><strong>&#22810;&#27169;&#24907;</strong>&#65306;&#25903;&#25588;&#22294;&#20687;&#29702;&#35299;&#12289;&#38899;&#35338;&#34389;&#29702;&#12289;&#24433;&#29255;&#20998;&#26512;&#12289;PDF &#25991;&#20214;&#21644;&#22294;&#20687;&#29983;&#25104;</p><p><strong>&#32080;&#27083;&#21270;&#36664;&#20986;</strong>&#65306;JSON schema &#24375;&#21046;&#22519;&#34892;&#20197;&#23526;&#29694;&#21487;&#38752;&#30340;&#36039;&#26009;&#25552;&#21462;&#21644;&#20998;&#39006;</p><p><strong>&#20018;&#27969;</strong>&#65306;&#22312;&#29983;&#25104;&#26178;&#36880;&#27493;&#25509;&#25910;&#22238;&#25033;</p><p><strong>&#32972;&#26223;&#22519;&#34892;</strong>&#65306;&#25903;&#25588;&#38750;&#21516;&#27493;&#36650;&#35426;&#30340;&#38263;&#26178;&#38291;&#36939;&#34892;&#20219;&#21209;&#65288;&#20677;&#38480;&#20195;&#29702;, aka. Agent&#65289;</p><h2><strong>&#38480;&#21046;&#33287;&#32771;&#37327;</strong></h2><p><strong>Beta &#29376;&#24907;</strong>&#65306;API &#34389;&#26044; beta &#38542;&#27573;&#8212;&#8212;schema &#21644;&#21151;&#33021;&#21487;&#33021;&#26371;&#26377;&#30772;&#22750;&#24615;&#26356;&#26032;</p><p><strong>&#24037;&#20855;&#32068;&#21512;</strong>&#65306;&#28151;&#21512;&#20351;&#29992; MCP&#12289;&#20989;&#25976;&#21628;&#21483;&#21644;&#20839;&#24314;&#24037;&#20855;&#26377;&#19968;&#20123;&#38480;&#21046;</p><p><strong>&#36664;&#20986;&#25490;&#24207;</strong>&#65306;&#26576;&#20123;&#20839;&#24314;&#24037;&#20855;&#30340;&#24037;&#20855;&#32080;&#26524;&#25490;&#24207;&#23384;&#22312;&#24050;&#30693;&#21839;&#38988;</p><p><strong>&#27169;&#22411;&#25903;&#25588;</strong>&#65306;&#30446;&#21069;&#25903;&#25588; Gemini 2.5 Flash&#12289;2.5 Pro &#21644; 3 Pro Preview &#27169;&#22411;&#65292;&#20197;&#21450; Deep Research &#20195;&#29702;</p><h2><strong>&#32080;&#35542;</strong></h2><p>Gemini Interactions API &#28858;&#24314;&#27083;&#23565;&#35441;&#24335; AI &#25033;&#29992;&#25552;&#20379;&#20102;&#39023;&#33879;&#30340;&#20415;&#21033;&#24615;&#65292;&#20294;&#23427;&#19981;&#26159;&#33836;&#38728;&#20025;&#12290;&#20839;&#24314;&#30340;&#35352;&#25014;&#39636;&#31649;&#29702;&#24118;&#20358;&#20102;&#26126;&#30906;&#30340;&#27402;&#34913;&#65306;</p><p>&#9989; <strong>&#20778;&#21218;&#65306;</strong></p><p>- &#31777;&#21270;&#38283;&#30332;&#24037;&#20316;&#27969;&#31243;</p><p>- &#33258;&#21205;&#29376;&#24907;&#31649;&#29702;</p><p>- &#28961;&#32299;&#24037;&#20855;&#32232;&#25490;</p><p>- &#28187;&#23569;&#22522;&#30990;&#35373;&#26045;&#36000;&#25812;</p><p>- &#24555;&#21462;&#24118;&#20358;&#30340;&#25928;&#33021;&#20778;&#21218;</p><p>&#9888;&#65039; <strong>&#32771;&#37327;&#20107;&#38917;&#65306;</strong></p><p>- &#22196;&#26684;&#30340;&#20445;&#30041;&#38480;&#21046;&#65288;1 &#22825;&#25110; 55 &#22825;&#65289;</p><p>- &#20786;&#23384;&#25104;&#26412;&#25414;&#32129;&#21040; API &#20351;&#29992;&#20013;</p><p>- &#36039;&#26009;&#20027;&#27402;&#21644;&#21512;&#35215;&#24615;&#24433;&#38911;</p><p>- &#28507;&#22312;&#30340;&#20379;&#25033;&#21830;&#37782;&#23450;</p><p>- Beta &#26399;&#38291;&#21487;&#33021;&#20986;&#29694;&#30772;&#22750;&#24615;&#35722;&#26356;</p><p><strong>&#24314;&#35696;</strong>&#65306;&#23559; Interactions API &#35222;&#28858;&#20320;&#26550;&#27083;&#20013;&#30340;&#26377;&#20729;&#20540;&#24037;&#20855;&#65292;&#32780;&#38750;&#23436;&#25972;&#35299;&#27770;&#26041;&#26696;&#12290;&#23565;&#26044;&#22823;&#22810;&#25976;&#29983;&#29986;&#25033;&#29992;&#65292;&#28151;&#21512;&#26041;&#27861;&#25552;&#20379;&#20102;&#26368;&#20339;&#24179;&#34913;&#8212;&#8212;&#21033;&#29992; API &#30340;&#20415;&#21033;&#24615;&#34389;&#29702;&#30701;&#26399;&#21040;&#20013;&#26399;&#29376;&#24907;&#65292;&#21516;&#26178;&#32173;&#35703;&#20320;&#33258;&#24049;&#30340;&#31995;&#32113;&#20358;&#34389;&#29702;&#38263;&#26399;&#35352;&#25014;&#12289;&#25935;&#24863;&#36039;&#26009;&#21644;&#33258;&#35330;&#20998;&#26512;&#12290;</p><p>&#38364;&#37749;&#22312;&#26044;&#25552;&#21069;&#29702;&#35299;&#36889;&#20123;&#38480;&#21046;&#20006;&#30456;&#25033;&#22320;&#35373;&#35336;&#20320;&#30340;&#26550;&#27083;&#12290;&#21482;&#26377;&#36889;&#27171;&#65292;&#20320;&#25165;&#33021;&#22312;&#20445;&#25345;&#23565;&#25104;&#26412;&#12289;&#21512;&#35215;&#24615;&#21644;&#20351;&#29992;&#32773;&#39636;&#39511;&#25511;&#21046;&#30340;&#21516;&#26178;&#65292;&#20805;&#20998;&#21033;&#29992; API &#30340;&#24375;&#22823;&#21151;&#33021;&#12290;</p><p>---</p><h2><strong>&#36039;&#28304;</strong></h2><ul><li><p>[&#23448;&#26041; Interactions API &#25991;&#20214;](<a href="https://ai.google.dev/gemini-api/docs/interactions">https://ai.google.dev/gemini-api/docs/interactions</a>)</p></li><li><p>[&#20351;&#29992; ADK &#21644; Interactions API &#24314;&#27083;&#20195;&#29702;](<a href="https://developers.googleblog.com/building-agents-with-the-adk-and-the-new-interactions-api/">https://developers.googleblog.com/building-agents-with-the-adk-and-the-new-interactions-api/</a>)</p></li><li><p>[Google AI &#37096;&#33853;&#26684;&#65306;Interactions API &#20844;&#21578;](<a href="https://blog.google/technology/developers/interactions-api/">https://blog.google/technology/developers/interactions-api/</a>)</p></li><li><p>[API &#21443;&#32771;&#25991;&#20214;](<a href="https://ai.google.dev/api/interactions-api">https://ai.google.dev/api/interactions-api</a>)</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Enterprise level Agentic dev workflow with Gemini CLI, ADK, and Antigravity - DevFest Taipei 2025 Session]]></title><description><![CDATA[From prototyping with Gemini CLI to enterprise deployment with MCP and ADK]]></description><link>https://memo.jimmyliao.net/p/enterprise-level-agentic-dev-workflow</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/enterprise-level-agentic-dev-workflow</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Tue, 09 Dec 2025 13:49:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HIFZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>---</p><p><em>This is the the the speak experience from DevFest Taichung, DevFest Taipei. You can check the online deck <a href="https://devfest2025taipei-jimmyliao.web.app/#1">here</a>. or </em><strong><a href="https://devfest2025taipei-jimmyliao.web.app/">https://devfest2025taipei-jimmyliao.web.app/</a></strong></p><ul><li><p><a href="https://devfest-taipei.gdg.tw/2025/sessions/?id=1024207">Enterprise level Agentic dev workflow with Gemini CLI, ADK, and Antigravity</a></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HIFZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HIFZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png 424w, https://substackcdn.com/image/fetch/$s_!HIFZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png 848w, https://substackcdn.com/image/fetch/$s_!HIFZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png 1272w, https://substackcdn.com/image/fetch/$s_!HIFZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HIFZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png" width="1456" height="788" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:788,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:354843,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HIFZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png 424w, https://substackcdn.com/image/fetch/$s_!HIFZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png 848w, https://substackcdn.com/image/fetch/$s_!HIFZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png 1272w, https://substackcdn.com/image/fetch/$s_!HIFZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F146f0c45-96f2-4f21-83f6-fdb386f79cd6_2126x1150.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2><strong>Introduction: Agentic AI as an Orchestration Challenge</strong></h2><p>At DevFest Taipei 2025, I had the opportunity to share insights from building an enterprise-grade AI agent platform across cities (Taichung, Taipei, and beyond). The core lesson? <strong>Treat agentic development as an orchestration problem, not just a coding exercise.</strong></p><p>Most enterprises face similar challenges when adopting AI:</p><p>- <strong>**Sensitive data restrictions**</strong>: Can&#8217;t upload proprietary data to cloud LLM providers</p><p>- <strong>**Internal authentication hurdles**</strong>: Legacy systems with complex auth requirements</p><p>- <strong>**Lack of standardized APIs**</strong>: Every internal tool speaks a different language</p><p>- <strong>**Tool fragmentation**</strong>: Developers juggle multiple AI platforms with inconsistent interfaces</p><p>The solution isn&#8217;t building everything from scratch&#8212;it&#8217;s about smart orchestration through standards like <strong>**MCP (Model Context Protocol)**</strong>, rapid prototyping with <strong>**Gemini CLI**</strong>, and production deployment via <strong>**Google ADK SDK**</strong>.</p><p><em>*Full technical notes:*</em> <a href="https://hackmd.io/@devfest-taipei-2025/SyFuv9gZWl">https://hackmd.io/@devfest-taipei-2025/SyFuv9gZWl</a></p><p>---</p><h2><strong>Architecture: Three Ways to Integrate MCP</strong></h2><p>Our architecture demonstrates <strong>**three validated MCP client approaches**</strong>, each serving different deployment needs:</p><p>```</p><p>Developer &#8594; [MCP Clients] &#8594; MCP Protocol &#8594; [4 MCP Servers]</p><p>              &#8595;                                  &#8595;</p><p>       [1] Gemini CLI                  Enterprise Data</p><p>       [2] Google Antigravity          Internal APIs</p><p>       [3] Standalone Python           Document DB</p><p>```</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ouxv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ouxv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png 424w, https://substackcdn.com/image/fetch/$s_!ouxv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png 848w, https://substackcdn.com/image/fetch/$s_!ouxv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!ouxv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ouxv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png" width="1246" height="1214" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1214,&quot;width&quot;:1246,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:129567,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ouxv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png 424w, https://substackcdn.com/image/fetch/$s_!ouxv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png 848w, https://substackcdn.com/image/fetch/$s_!ouxv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!ouxv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4623f32d-e248-4089-b3bb-a4a369c083e1_1246x1214.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3><strong>Core Components</strong></h3><p><strong>**MCP Protocol**</strong>: The standardization layer that connects AI models to enterprise tools using two transport modes:</p><p>- <strong>**SSE (Server-Sent Events)**</strong>: For remote MCP servers (HTTP-based)</p><p>- <strong>**STDIO**</strong>: For local MCP servers (process-based, higher security)</p><p><strong>**Three MCP Client Validations**</strong>:</p><p>1. <strong>**Gemini CLI**</strong> (Remote MCP, SSE transport)</p><p>- 1M+ token context window</p><p>- Free quota for rapid prototyping</p><p>- Ideal for developer experimentation</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C_OO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C_OO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png 424w, https://substackcdn.com/image/fetch/$s_!C_OO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png 848w, https://substackcdn.com/image/fetch/$s_!C_OO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png 1272w, https://substackcdn.com/image/fetch/$s_!C_OO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C_OO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png" width="1456" height="488" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:488,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:440532,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!C_OO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png 424w, https://substackcdn.com/image/fetch/$s_!C_OO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png 848w, https://substackcdn.com/image/fetch/$s_!C_OO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png 1272w, https://substackcdn.com/image/fetch/$s_!C_OO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d889116-99d5-4831-b367-cbeb42c8008c_2424x812.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>2. <strong>**Google Antigravity (or AnythingLLM)**</strong> (Local MCP, STDIO transport)</p><p>- Enterprise Web UI with RAG capabilities</p><p>- Docker-based deployment (`anythingllm-adk`)</p><p>- Verified with Taiwan Stock MCP + Investment Agent</p><p>3. <strong>**Standalone Python**</strong> (Direct execution)</p><p>- No MCP layer needed</p><p>- Direct ADK agent execution</p><p>- Best for demos and benchmarking</p><p><strong>**Development Frameworks**</strong>:</p><p>- <strong>**FastMCP**</strong>: Build MCP servers in ~50 lines of Python</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vdh6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vdh6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png 424w, https://substackcdn.com/image/fetch/$s_!vdh6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png 848w, https://substackcdn.com/image/fetch/$s_!vdh6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png 1272w, https://substackcdn.com/image/fetch/$s_!vdh6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vdh6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png" width="644" height="455.0933333333333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:636,&quot;width&quot;:900,&quot;resizeWidth&quot;:644,&quot;bytes&quot;:103530,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vdh6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png 424w, https://substackcdn.com/image/fetch/$s_!vdh6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png 848w, https://substackcdn.com/image/fetch/$s_!vdh6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png 1272w, https://substackcdn.com/image/fetch/$s_!vdh6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F983f37e2-9d0c-4a42-a695-1949fd82452f_900x636.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>- <strong>**Google ADK SDK 1.17.0**</strong>: Agent-first architecture with automatic tool orchestration</p><p>---</p><h2><strong>Five Key Implementations</strong></h2><h3><strong>1. Browserbase: Open-Source Browser Automation</strong></h3><p>Native MCP support for cloud-based browser automation&#8212;demonstrating MCP&#8217;s versatility beyond data APIs.</p><h3><strong>2. FastMCP Taiwan Stock Query &#11088;</strong></h3><p><strong>**50 lines of Python**</strong> to build a production-ready MCP server using the FastMCP framework. Serves real-time Taiwan stock data over SSE (Port 8080). This implementation showcases <strong>**MCP&#8217;s accessibility**</strong>: you don&#8217;t need complex infrastructure to get started.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KJcV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KJcV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png 424w, https://substackcdn.com/image/fetch/$s_!KJcV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png 848w, https://substackcdn.com/image/fetch/$s_!KJcV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png 1272w, https://substackcdn.com/image/fetch/$s_!KJcV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KJcV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png" width="598" height="404.5665961945032" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58065b4c-7ae6-4718-9780-9ac432457076_946x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:946,&quot;resizeWidth&quot;:598,&quot;bytes&quot;:108207,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KJcV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png 424w, https://substackcdn.com/image/fetch/$s_!KJcV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png 848w, https://substackcdn.com/image/fetch/$s_!KJcV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png 1272w, https://substackcdn.com/image/fetch/$s_!KJcV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58065b4c-7ae6-4718-9780-9ac432457076_946x640.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3><strong>3. Enterprise Document Management MCP &#11088;</strong></h3><p>Goes beyond simple document search&#8212;includes <strong>**compliance checking**</strong> with sensitive data detection. All processing happens locally, ensuring <strong>**zero data leakage**</strong> to external LLM providers. This addresses the #1 concern for regulated industries.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GGlj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GGlj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png 424w, https://substackcdn.com/image/fetch/$s_!GGlj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png 848w, https://substackcdn.com/image/fetch/$s_!GGlj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png 1272w, https://substackcdn.com/image/fetch/$s_!GGlj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GGlj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png" width="1456" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:603221,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GGlj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png 424w, https://substackcdn.com/image/fetch/$s_!GGlj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png 848w, https://substackcdn.com/image/fetch/$s_!GGlj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png 1272w, https://substackcdn.com/image/fetch/$s_!GGlj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dc0f815-6a72-48bd-bc02-feed1adce480_2302x1012.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3><strong>4. Google Antigravity (or AnythingLLM) Integration &#11088;</strong></h3><p><strong>**Official name**</strong>: Google Antigravity (open-sourced as AnythingLLM)</p><p><strong>**Role**</strong>: MCP Client with STDIO transport for local integration</p><p><strong>**Features**</strong>:</p><p>- Enterprise Web UI replacing CLI workflows</p><p>- RAG (Retrieval-Augmented Generation) for document grounding</p><p>- Docker-based deployment with `google-adk` pre-installed</p><p><strong>**Validation**</strong>: Successfully integrated Taiwan Stock MCP (STDIO mode) + Investment Agent&#8212;proving the <strong>**CLI-to-Web UI evolution path**</strong>.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1AiE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1AiE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png 424w, https://substackcdn.com/image/fetch/$s_!1AiE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png 848w, https://substackcdn.com/image/fetch/$s_!1AiE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png 1272w, https://substackcdn.com/image/fetch/$s_!1AiE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1AiE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png" width="1144" height="744" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:744,&quot;width&quot;:1144,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201657,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1AiE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png 424w, https://substackcdn.com/image/fetch/$s_!1AiE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png 848w, https://substackcdn.com/image/fetch/$s_!1AiE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png 1272w, https://substackcdn.com/image/fetch/$s_!1AiE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25b531f1-14ca-4e27-8153-150921fec0a9_1144x744.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x3ol!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x3ol!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png 424w, https://substackcdn.com/image/fetch/$s_!x3ol!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png 848w, https://substackcdn.com/image/fetch/$s_!x3ol!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png 1272w, https://substackcdn.com/image/fetch/$s_!x3ol!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x3ol!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png" width="1456" height="983" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:983,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:420600,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!x3ol!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png 424w, https://substackcdn.com/image/fetch/$s_!x3ol!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png 848w, https://substackcdn.com/image/fetch/$s_!x3ol!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png 1272w, https://substackcdn.com/image/fetch/$s_!x3ol!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8193ae9-8ef8-4d97-bdf2-7e8ae12ba872_1864x1258.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3><strong>5. Google ADK Investment Agent &#11088;&#11088;</strong></h3><p><strong>**Impact**</strong>: <strong>**3 seconds**</strong> (automated) vs. <strong>**3.5 hours**</strong> (manual) for investment analysis reports</p><p><strong>**Features**</strong>:</p><p>- Multi-tool reasoning (combines stock price APIs + document search)</p><p>- Automatic tool orchestration&#8212;no hardcoded workflows</p><p>- <strong>**Three-version architecture**</strong>:</p><p>- Standalone Python (for demos)</p><p>- Remote MCP Server (for Gemini CLI)</p><p>- STDIO MCP (for AnythingLLM)</p><p>This demonstrates ADK&#8217;s <strong>**agent-first design**</strong>: define capabilities, let the framework handle orchestration.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5zDY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5zDY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png 424w, https://substackcdn.com/image/fetch/$s_!5zDY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png 848w, https://substackcdn.com/image/fetch/$s_!5zDY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png 1272w, https://substackcdn.com/image/fetch/$s_!5zDY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5zDY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png" width="626" height="548.179945054945" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1275,&quot;width&quot;:1456,&quot;resizeWidth&quot;:626,&quot;bytes&quot;:285429,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/181140315?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5zDY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png 424w, https://substackcdn.com/image/fetch/$s_!5zDY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png 848w, https://substackcdn.com/image/fetch/$s_!5zDY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png 1272w, https://substackcdn.com/image/fetch/$s_!5zDY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07e2e7b-f358-4dd6-a1d3-a37f72805556_1676x1468.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>---</p><h2><strong>Deployment Strategy: Remote vs. Local MCP</strong></h2><p><strong>**Remote MCP**</strong> (SSE/HTTP):</p><p>- Deploy to Cloud Run, Kubernetes, or any HTTP endpoint</p><p>- Cross-platform support (any MCP-compatible client)</p><p>- Trade-off: Network latency, requires internet access</p><p><strong>**Local MCP**</strong> (STDIO):</p><p>- Process-based, runs on the same machine as the client</p><p>- <strong>**Faster**</strong> (no network overhead) + <strong>**More Secure**</strong> (no external traffic)</p><p>- Ideal for <strong>**sensitive data workflows**</strong></p><p><strong>**Decision rule**</strong>: For regulated industries or proprietary data &#8594; <strong>**Local MCP**</strong>. For shared enterprise services &#8594; <strong>**Remote MCP**</strong>.</p><p>---</p><h2><strong>Key Takeaways for AI/ML Engineers</strong></h2><h3><strong>1. Treat Agentic AI as an Orchestration Challenge</strong></h3><p>- <strong>**MCP Protocol**</strong>: Standardize tool integration (stop reinventing the wheel)</p><p>- <strong>**Gemini CLI + ADK**</strong>: Provide reasoning and automatic orchestration</p><p>- <strong>**Shift thinking**</strong>: From &#8220;I need to build everything&#8221; to &#8220;How do I compose existing capabilities?&#8221;</p><h3><strong>2. Incremental Path: CLI &#8594; Production</strong></h3><p>- <strong>**Stage 1**</strong>: Gemini CLI (free quota, 1M context, rapid prototyping)</p><p>- <strong>**Stage 2**</strong>: MCP Servers (standardized tool layer)</p><p>- <strong>**Stage 3**</strong>: Vertex AI / Cloud Run (enterprise deployment)</p><p><strong>**Don&#8217;t start with production complexity**</strong>&#8212;validate with CLI first.</p><h3><strong>3. Methodology &gt; Code</strong></h3><p>- <strong>**1,952 lines of docs**</strong> &gt; 10,000 lines of implementation code</p><p>- <strong>**Reusable templates**</strong> = sustainable innovation</p><p>- <strong>**10-minute replication**</strong> &gt; 2-week rewrite</p><p><strong>**Example**</strong>: Our .NET Conf 2025 prep took 5 days (not 3 weeks) because we had templates.</p><p>---</p><h2><strong>Resources</strong></h2><p><strong>**Live Slides**</strong>: <a href="https://devfest2025taipei-jimmyliao.web.app/">https://devfest2025taipei-jimmyliao.web.app/</a></p><p><strong>**Workshop Site**</strong>: <a href="https://devfest2025-workshop-jimmyliao.web.app/">https://devfest2025-workshop-jimmyliao.web.app/</a></p><p><strong>**Technical Walkthrough**</strong>: <a href="https://hackmd.io/@devfest-taipei-2025/SyFuv9gZWl">https://hackmd.io/@devfest-taipei-2025/SyFuv9gZWl</a></p><p><strong>**Official Documentation**</strong>:</p><p>- MCP Protocol: https://modelcontextprotocol.io</p><p>- Google ADK SDK: https://github.com/google/adk-python</p><p>- Gemini CLI: </p><p><strong>**Connect**</strong>: <a href="https://linktr.ee/jimmyliao">https://linktr.ee/jimmyliao</a></p><p>---</p><h2><strong>Closing Thoughts</strong></h2><p>Building production-ready AI agents isn&#8217;t about writing the most code&#8212;it&#8217;s about <strong>**orchestrating the right components**</strong> with proven patterns. The DevFest 2025 journey taught us that:</p><p>1. <strong>**Standards matter**</strong>: MCP eliminates integration chaos</p><p>2. <strong>**Start small, scale smart**</strong>: Gemini CLI &#8594; MCP &#8594; Production</p><p>3. <strong>**Methodology compounds**</strong>: Reusable templates pay dividends</p><p>If you&#8217;re building agentic AI systems, don&#8217;t start from scratch. Leverage MCP, experiment with Gemini CLI&#8217;s free tier, and document your patterns&#8212;your future self (and team) will thank you.</p><p>---</p><p><strong>**Tags**</strong>: #AI-Agents #MCP #GeminiCLI #GoogleADK #AnythingLLM #DevFest #AgenticAI #EnterpriseAI</p><p><strong>**Published**</strong>: December 2025</p><p><strong>**Author**</strong>: Jimmy Liao | Google Developer Expert (AI)</p><p><strong>**License**</strong>: CC BY 4.0 (code examples), text content &#169; 2025</p><p>---</p><p><em>*Generated with insights from DevFest Taichung, DevFest Taipei, and .NET Conf 2025 workshop experiences.*</em></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nPnM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nPnM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nPnM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nPnM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nPnM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nPnM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#21487;&#33021;&#26159;&#35712;&#26360;&#12289;&#20154;&#32676;&#21644;&#26032;&#32862;&#20013;&#24515;&#30340;&#22294;&#20687;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#21487;&#33021;&#26159;&#35712;&#26360;&#12289;&#20154;&#32676;&#21644;&#26032;&#32862;&#20013;&#24515;&#30340;&#22294;&#20687;" title="&#21487;&#33021;&#26159;&#35712;&#26360;&#12289;&#20154;&#32676;&#21644;&#26032;&#32862;&#20013;&#24515;&#30340;&#22294;&#20687;" srcset="https://substackcdn.com/image/fetch/$s_!nPnM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nPnM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nPnM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nPnM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a29fdd-ee37-4b44-ab26-0d3695325f86_2048x1536.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Google Antigravigy 中文化設定]]></title><description><![CDATA[&#22312; Google Antigravity &#40670;&#19979; Cmd + Shift + P, &#36664;&#20837; language, &#36984;&#25799; Configure Display Language]]></description><link>https://memo.jimmyliao.net/p/google-antigravigy</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/google-antigravigy</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Fri, 05 Dec 2025 13:30:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vjSz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>&#22312; Google Antigravity &#40670;&#19979; Cmd + Shift + P, &#36664;&#20837; language, &#36984;&#25799; Configure Display Language</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!28-V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!28-V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png 424w, https://substackcdn.com/image/fetch/$s_!28-V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png 848w, https://substackcdn.com/image/fetch/$s_!28-V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png 1272w, https://substackcdn.com/image/fetch/$s_!28-V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!28-V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png" width="1450" height="272" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:272,&quot;width&quot;:1450,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48912,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/180796205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!28-V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png 424w, https://substackcdn.com/image/fetch/$s_!28-V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png 848w, https://substackcdn.com/image/fetch/$s_!28-V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png 1272w, https://substackcdn.com/image/fetch/$s_!28-V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ece4164-4816-443d-862a-4e0d62fe88a3_1450x272.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>&#36664;&#20837; Tranditional, &#26371;&#36339;&#20986; Chinse (Tranditional) Language Pack for Visual Studio Code. &#40670;&#36984; Trust Publisher and Install.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vjSz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vjSz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png 424w, https://substackcdn.com/image/fetch/$s_!vjSz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png 848w, https://substackcdn.com/image/fetch/$s_!vjSz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png 1272w, https://substackcdn.com/image/fetch/$s_!vjSz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vjSz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png" width="1006" height="664" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:664,&quot;width&quot;:1006,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:116591,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/180796205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vjSz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png 424w, https://substackcdn.com/image/fetch/$s_!vjSz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png 848w, https://substackcdn.com/image/fetch/$s_!vjSz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png 1272w, https://substackcdn.com/image/fetch/$s_!vjSz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd72a93c6-0261-4538-9cd1-970eab45c798_1006x664.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#37325;&#38283;&#27231;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ugQV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ugQV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png 424w, https://substackcdn.com/image/fetch/$s_!ugQV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png 848w, https://substackcdn.com/image/fetch/$s_!ugQV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png 1272w, https://substackcdn.com/image/fetch/$s_!ugQV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ugQV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png" width="936" height="246" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:246,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:39577,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/180796205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ugQV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png 424w, https://substackcdn.com/image/fetch/$s_!ugQV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png 848w, https://substackcdn.com/image/fetch/$s_!ugQV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png 1272w, https://substackcdn.com/image/fetch/$s_!ugQV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11e6d5b1-2df3-4f4b-95e0-984419bf0a49_936x246.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MfCI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MfCI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png 424w, https://substackcdn.com/image/fetch/$s_!MfCI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png 848w, https://substackcdn.com/image/fetch/$s_!MfCI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!MfCI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MfCI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png" width="1456" height="968" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:968,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:251669,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/180796205?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MfCI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png 424w, https://substackcdn.com/image/fetch/$s_!MfCI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png 848w, https://substackcdn.com/image/fetch/$s_!MfCI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!MfCI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe27ce50b-1a20-4dc1-9689-504c2968db65_1736x1154.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>#Antigravaty</p><p>#AISprintH2</p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[用 Gemini 3 Pro + ADK + Google Maps 打造 AI 旅遊顧問]]></title><description><![CDATA[Repo &#24171;&#24537;&#25353;&#20491; Star, Fork, &#36319;&#36002;&#29563;&#21543;&#65281;&#36879;&#36942;&#36889;&#20491;&#36899;&#32080;&#30452;&#25509;&#22312; AI Studio &#35430;&#35430;&#21543;: https://goo.gle/try-gemini3]]></description><link>https://memo.jimmyliao.net/p/gemini-3-pro-adk-google-maps-ai</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/gemini-3-pro-adk-google-maps-ai</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Tue, 18 Nov 2025 16:22:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#26412;&#25991;&#23559;&#20171;&#32057;&#22914;&#20309;&#32080;&#21512; <strong>Gemini 3 Pro</strong>&#12289;<strong>Google Flights</strong> &#21644; <strong>Google Maps</strong>&#65292;&#36879;&#36942; ADK &#25171;&#36896;&#19968;&#20491; AI Travel Agent&#65292;&#21482;&#38656;&#19968;&#21477;&#35441;&#23601;&#33021;&#29983;&#25104;&#23436;&#25972;&#30340;&#26053;&#36938;&#35336;&#30059;&#12290;</p><ol><li><p>&#36879;&#36942;&#36889;&#20491;&#36899;&#32080;&#30452;&#25509;&#22312; AI Studio &#35430;&#35430;&#21543;: https://goo.gle/try-gemini3</p></li><li><p>&#23560;&#26696; repo =&gt; <code>https://github.com/jimmyliao/lab-gemini-3</code></p></li></ol><p>=&gt; &#24171;&#24537;&#25353;&#20491; Star, Fork, &#36319;&#36002;&#29563;&#21543;&#65281;</p><p></p><h3><strong>&#26680;&#24515;&#25216;&#34899;&#36984;&#22411;</strong></h3><pre><code><code>&#20351;&#29992;&#32773;&#36664;&#20837; (&#33258;&#28982;&#35486;&#35328;)
    &#8595;
Gemini 3 Pro Agent (&#29702;&#35299;&#24847;&#22294; + &#32232;&#25490;&#24037;&#20855;)
    &#8595;
Multi-Tool Integration
    &#9500;&#9472;&#8594; Google Flights API (fast-flights)
    &#9500;&#9472;&#8594; Google Maps MCP
    &#9492;&#9472;&#8594; Gemini Grounding (&#21363;&#26178;&#36039;&#35338;)
    &#8595;
Gemini 3 Pro (&#25972;&#21512;&#25152;&#26377;&#36039;&#35338;)
    &#8595;
&#32080;&#27083;&#21270;&#36664;&#20986; (&#23436;&#25972;&#34892;&#31243;&#35215;&#21123;)</code></code></pre><p></p><h3><strong>&#23560;&#26696;&#35373;&#32622;</strong></h3><p>&#39318;&#20808;&#21109;&#24314;&#23560;&#26696;&#32080;&#27083;&#20006;&#35373;&#32622;&#29872;&#22659;&#65306;</p><pre><code><code>git clone https://github.com/jimmyliao/lab-gemini-3

cd lab-gemini-3.0/</code></code></pre><p></p><h3><strong>&#21021;&#22987;&#21270;&#23560;&#26696;</strong></h3><pre><code>make setup</code></pre><p></p><pre><code><code># &#36914;&#20837;&#34395;&#25836;&#29872;&#22659;
source .venv/bin/activate

# &#36939;&#34892;&#26053;&#36938;&#39015;&#21839; demo
python examples/travel_advisor.py</code></code></pre><p>Demo &#26371;&#23637;&#31034;&#65306;</p><ol><li><p>&#33322;&#29677;&#25628;&#23563;&#21151;&#33021;&#65288;TPE &#8594; NRT&#65289;</p></li><li><p>&#26223;&#40670;&#25512;&#34214;&#21151;&#33021;&#65288;&#26481;&#20140;&#29105;&#38272;&#26223;&#40670;&#65289;</p></li><li><p>&#23436;&#25972; 3 &#22825; 2 &#22812;&#26053;&#36938;&#34892;&#31243;&#35215;&#21123;</p></li></ol><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jLRF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jLRF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png 424w, https://substackcdn.com/image/fetch/$s_!jLRF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png 848w, https://substackcdn.com/image/fetch/$s_!jLRF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png 1272w, https://substackcdn.com/image/fetch/$s_!jLRF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jLRF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png" width="1456" height="989" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:989,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221640,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179258725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jLRF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png 424w, https://substackcdn.com/image/fetch/$s_!jLRF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png 848w, https://substackcdn.com/image/fetch/$s_!jLRF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png 1272w, https://substackcdn.com/image/fetch/$s_!jLRF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcce09d99-e919-4e04-ae82-df429e93de8a_1882x1278.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BdCM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BdCM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png 424w, https://substackcdn.com/image/fetch/$s_!BdCM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png 848w, https://substackcdn.com/image/fetch/$s_!BdCM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png 1272w, https://substackcdn.com/image/fetch/$s_!BdCM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BdCM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png" width="1456" height="355" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:355,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:124340,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179258725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BdCM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png 424w, https://substackcdn.com/image/fetch/$s_!BdCM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png 848w, https://substackcdn.com/image/fetch/$s_!BdCM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png 1272w, https://substackcdn.com/image/fetch/$s_!BdCM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b8ef568-4e1a-421d-aa4c-2d31c6421f97_2340x570.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b9VD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b9VD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png 424w, https://substackcdn.com/image/fetch/$s_!b9VD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png 848w, https://substackcdn.com/image/fetch/$s_!b9VD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png 1272w, https://substackcdn.com/image/fetch/$s_!b9VD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b9VD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png" width="1456" height="635" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:635,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284573,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179258725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b9VD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png 424w, https://substackcdn.com/image/fetch/$s_!b9VD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png 848w, https://substackcdn.com/image/fetch/$s_!b9VD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png 1272w, https://substackcdn.com/image/fetch/$s_!b9VD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9b410d-2f37-4986-ab87-1fa87a9a77f4_2526x1102.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ct2h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ct2h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png 424w, https://substackcdn.com/image/fetch/$s_!ct2h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png 848w, https://substackcdn.com/image/fetch/$s_!ct2h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!ct2h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ct2h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png" width="1456" height="605" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:605,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:256091,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179258725?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ct2h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png 424w, https://substackcdn.com/image/fetch/$s_!ct2h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png 848w, https://substackcdn.com/image/fetch/$s_!ct2h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!ct2h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36a765be-f191-4b3e-b787-8c45933aae2c_2700x1122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3><strong>Gemini Agent</strong></h3><p><code>agent.py</code> &#25552;&#20379;&#20102; Gemini 3.0 Pro &#30340;&#23553;&#35037;&#65306;</p><pre><code>from gemini_adk_demo.agent import create_agent

# &#21109;&#24314; Agent
agent = create_agent(
    model=&#8221;gemini-3-pro-preview&#8221;,
    name=&#8221;my_assistant&#8221;
)

# &#30332;&#36865;&#26597;&#35426;
response = agent.query(&#8221;&#35299;&#37323;&#37327;&#23376;&#35336;&#31639;&#8221;)
print(response)</code></pre><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[實戰測試 Gemini 3 Pro - 使用 Gemini-CLI 探索]]></title><description><![CDATA[&#36879;&#36942;&#36889;&#20491;&#36899;&#32080;&#30452;&#25509;&#22312; AI Studio &#35430;&#35430;&#21543;: https://goo.gle/try-gemini3]]></description><link>https://memo.jimmyliao.net/p/gemini-3-pro-gemini-cli</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/gemini-3-pro-gemini-cli</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Tue, 18 Nov 2025 16:06:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KBcT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KBcT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KBcT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png 424w, https://substackcdn.com/image/fetch/$s_!KBcT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png 848w, https://substackcdn.com/image/fetch/$s_!KBcT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png 1272w, https://substackcdn.com/image/fetch/$s_!KBcT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KBcT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png" width="1184" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1694012,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KBcT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png 424w, https://substackcdn.com/image/fetch/$s_!KBcT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png 848w, https://substackcdn.com/image/fetch/$s_!KBcT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png 1272w, https://substackcdn.com/image/fetch/$s_!KBcT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bae66b1-70e4-4e7a-b48c-b6cbc6119486_1184x864.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Google &#22312;&#20170;&#22825; (2025-11-18) &#30332;&#20296;&#20102; Gemini 3 Pro&#65292;&#36889;&#26159;&#36804;&#20170;&#28858;&#27490;&#26368;&#20808;&#36914;&#30340;&#22522;&#30990;&#27169;&#22411;&#65292;&#20855;&#20633;&#21331;&#36234;&#30340;&#25512;&#29702;&#33021;&#21147;&#12289;1M tokens &#38263;&#19978;&#19979;&#25991;&#34389;&#29702;&#21644;&#21407;&#29983;&#22810;&#27169;&#24907;&#25903;&#25588;&#12290;&#26412;&#25991;&#23559;&#36879;&#36942;&#23526;&#38555;&#30340; <strong>Gemini-CLI &#28204;&#35430;</strong>&#65292;&#28145;&#20837;&#25506;&#35342; Gemini 3 Pro &#30340;&#26680;&#24515;&#33021;&#21147;&#12289;&#25216;&#34899;&#35215;&#26684;&#65292;&#20006;&#25552;&#20379;&#23436;&#25972;&#30340;&#28204;&#35430;&#33139;&#26412;&#21644;&#23526;&#25136;&#32147;&#39511;&#12290;</p><p></p><p>&#36879;&#36942;&#36889;&#20491;&#36899;&#32080;&#30452;&#25509;&#22312; AI Studio &#35430;&#35430;&#21543;: <a href="https://goo.gle/try-gemini3">https://goo.gle/try-gemini3</a></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WbTR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WbTR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png 424w, https://substackcdn.com/image/fetch/$s_!WbTR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png 848w, https://substackcdn.com/image/fetch/$s_!WbTR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png 1272w, https://substackcdn.com/image/fetch/$s_!WbTR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WbTR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png" width="1456" height="1087" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1087,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:390669,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WbTR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png 424w, https://substackcdn.com/image/fetch/$s_!WbTR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png 848w, https://substackcdn.com/image/fetch/$s_!WbTR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png 1272w, https://substackcdn.com/image/fetch/$s_!WbTR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55aeb80b-25e9-478b-adc9-93cadd1f61b9_2036x1520.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_-vC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_-vC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png 424w, https://substackcdn.com/image/fetch/$s_!_-vC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png 848w, https://substackcdn.com/image/fetch/$s_!_-vC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png 1272w, https://substackcdn.com/image/fetch/$s_!_-vC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_-vC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png" width="1456" height="345" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:345,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_-vC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png 424w, https://substackcdn.com/image/fetch/$s_!_-vC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png 848w, https://substackcdn.com/image/fetch/$s_!_-vC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png 1272w, https://substackcdn.com/image/fetch/$s_!_-vC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F976a40a6-f3e2-4eb4-9295-f6a4e8517ae2_1850x438.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p></p><p></p><p></p><p><strong>&#26680;&#24515;&#20142;&#40670;</strong>&#65306;</p><ul><li><p>&#9989; &#20351;&#29992; Gemini-CLI &#36914;&#34892;&#22810;&#32173;&#24230;&#28204;&#35430;</p></li><li><p>&#9989; &#35443;&#32048;&#30340;&#25928;&#33021;&#22522;&#28310;&#23565;&#27604;&#65288;vs Gemini 2.5 Pro, Claude Sonnet 4.5&#65289;</p></li><li><p>&#9989; &#23526;&#29992;&#30340;&#28204;&#35430;&#33139;&#26412;&#21644;&#26368;&#20339;&#23526;&#36368;</p></li><li><p>&#9989; &#27169;&#22411;&#37197;&#32622;&#21644;&#30097;&#38627;&#25490;&#35299;&#25351;&#21335;</p></li></ul><p></p><p>Gemini 3 Pro &#26159; Google DeepMind &#25512;&#20986;&#30340;<strong>&#22522;&#30990;&#27169;&#22411;</strong>&#65292;&#24190;&#20491;&#29305;&#21029;&#40670; (&#33258; Model Card &#32763;&#35695;&#25688;&#35201;)&#65306;</p><h4><strong>&#26680;&#24515;&#29305;&#24615;</strong></h4><ul><li><p>&#129504; <strong> Sparse MoE &#26550;&#27083;</strong>&#65306;&#21205;&#24907;&#28608;&#27963;&#27169;&#22411;&#21443;&#25976;&#23376;&#38598;&#65292;&#25552;&#21319;&#25928;&#29575;</p></li><li><p>&#127919; <strong>&#21407;&#29983;&#22810;&#27169;&#24907;</strong>&#65306;&#28961;&#32299;&#34389;&#29702;&#25991;&#26412;&#12289;&#22294;&#20687;&#12289;&#38899;&#38971;&#12289;&#35222;&#38971;</p></li><li><p>&#128202; <strong>&#36229;&#38263;&#19978;&#19979;&#25991;</strong>&#65306;&#25903;&#25588;&#26368;&#22810; <strong>1M tokens</strong> &#36664;&#20837;&#65292;<strong>64K tokens</strong> &#36664;&#20986;</p></li><li><p>&#128640; <strong>&#24375;&#22823;&#25512;&#29702;</strong>&#65306;&#22312;&#25976;&#23416;&#12289;&#32232;&#31243;&#12289;&#37007;&#36655;&#25512;&#29702;&#19978;&#30070;&#28982;&#21448;&#26159;&#39023;&#33879;&#36229;&#36234;</p></li></ul><p></p><h3><strong>&#28858;&#20160;&#40636;&#36984;&#25799; Gemini-CLI &#36914;&#34892;&#28204;&#35430;&#65311;</strong></h3><p>&#9989; <strong>&#20778;&#21218;</strong>&#65306;</p><ul><li><p>&#21629;&#20196;&#21015;&#20171;&#38754;&#65292;&#36969;&#21512;&#33258;&#21205;&#21270;&#28204;&#35430;</p></li><li><p>&#25903;&#25588; multimodal &#36664;&#20837;&#65288;<code>@path/to/file</code>&#65289;</p></li><li><p>&#33287; Vertex AI &#21644; Gemini API &#28961;&#32299;&#25972;&#21512;</p></li><li><p>&#35920;&#23500;&#30340;&#25844;&#23637;&#25903;&#25588;&#65288;Cloud Run, Firebase&#65289;</p></li><li><p>&#20813;&#36027;&#37197;&#38989;&#65288;1000 &#35531;&#27714;/&#22825;&#65289;</p></li></ul><p>&#9888;&#65039; <strong>&#27880;&#24847;</strong>&#65306;</p><ul><li><p>Gemini-CLI &#20351;&#29992; Vertex AI &#25110; Gemini API &#65292;&#30446;&#21069;&#20677;&#20808;&#25903;&#25588; API Key &#26041;&#24335;</p></li><li><p>&#38656;&#35201;&#27491;&#30906;&#37197;&#32622; Google Cloud &#23560;&#26696;</p></li><li><p>&#27169;&#22411;&#21517;&#31281;&#24517;&#38920;&#27491;&#30906;&#65288;<code>gemini-3-pro-preview</code>&#65289;</p></li></ul><p></p><h4><strong>&#37197;&#32622; Gemini-CLI</strong></h4><p>&#37197;&#32622;&#25991;&#20214; <code>~/.gemini/.env</code>&#65306;</p><pre><code># &#27169;&#22411;&#36984;&#25799;
#GEMINI_MODEL="gemini-2.5-pro"
GEMINI_MODEL="<strong>gemini-3-pro-preview</strong>"

# Gemini API Key &#22312; Gemini-CLI &#21855;&#21205;&#36984;&#25799; auth &#26178;&#20063;&#21487;&#20197;&#36028;&#19978;&#65292;&#24314;&#35696;
# GEMINI_API_KEY=&#8221;your-api-key&#8221; 
</code></pre><p></p><h4><strong>&#39511;&#35657;&#37197;&#32622;</strong></h4><pre><code><code># &#28204;&#35430;&#36899;&#25509;
gemini "&#28204;&#35430;&#65306;&#35531;&#22238;&#35206; OK"

# &#38928;&#26399;&#36664;&#20986;
# OK</code></code></pre><p></p><h3><strong>&#28204;&#35430; 1 &#65306;&#22810;&#27169;&#24907; - PDF &#35299;&#26512;</strong></h3><p>&#36889;&#26159; Gemini 3 Pro &#30340;&#26680;&#24515;&#20778;&#21218;&#20043;&#19968;&#65281;</p><pre><code><code># &#20351;&#29992; @ &#31526;&#34399;&#24341;&#29992;&#26412;&#22320;&#25991;&#20214;
gemini "&#35531;&#20998;&#26512; @Downloads/Gemini-3-Pro-Model-Card.pdf &#30340;&#20839;&#23481;&#65292;&#25552;&#21462;&#20197;&#19979;&#37325;&#40670;&#65306;
1. &#20027;&#35201;&#29305;&#24615;&#21644;&#33021;&#21147; 2. &#25216;&#34899;&#35215;&#26684; 3. &#25928;&#33021;&#25351;&#27161; 4. &#33287;&#21069;&#20195;&#27169;&#22411;&#30340;&#27604;&#36611; &#35531;&#29992;&#32321;&#39636;&#20013;&#25991;&#25972;&#29702;&#25104;&#32080;&#27083;&#21270;&#22577;&#21578;&#12290;"</code></code></pre><p><strong>&#28204;&#35430;&#35201;&#40670;</strong>&#65306;</p><ul><li><p>&#9989; <strong>Multimodal &#33021;&#21147;</strong>&#65306;&#25104;&#21151;&#35299;&#26512; PDF &#25991;&#27284;</p></li><li><p>&#9989; <strong>&#32080;&#27083;&#21270;&#36664;&#20986;</strong>&#65306;&#25353;&#35201;&#27714;&#32068;&#32340;&#36039;&#35338;</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VQFh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VQFh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png 424w, https://substackcdn.com/image/fetch/$s_!VQFh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png 848w, https://substackcdn.com/image/fetch/$s_!VQFh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png 1272w, https://substackcdn.com/image/fetch/$s_!VQFh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VQFh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png" width="1456" height="394" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:394,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:156805,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VQFh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png 424w, https://substackcdn.com/image/fetch/$s_!VQFh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png 848w, https://substackcdn.com/image/fetch/$s_!VQFh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png 1272w, https://substackcdn.com/image/fetch/$s_!VQFh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff330995a-9e68-4ac6-9650-ec5b4e06e0cd_1506x408.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dKAW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dKAW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png 424w, https://substackcdn.com/image/fetch/$s_!dKAW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png 848w, https://substackcdn.com/image/fetch/$s_!dKAW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png 1272w, https://substackcdn.com/image/fetch/$s_!dKAW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dKAW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png" width="1456" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:258987,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dKAW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png 424w, https://substackcdn.com/image/fetch/$s_!dKAW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png 848w, https://substackcdn.com/image/fetch/$s_!dKAW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png 1272w, https://substackcdn.com/image/fetch/$s_!dKAW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdefb87d-2e5a-4b94-ae26-2fdd0d0abfa9_1506x756.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!laD9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!laD9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png 424w, https://substackcdn.com/image/fetch/$s_!laD9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png 848w, https://substackcdn.com/image/fetch/$s_!laD9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png 1272w, https://substackcdn.com/image/fetch/$s_!laD9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!laD9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png" width="1456" height="742" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df84530a-6527-47c2-92f7-437bab143032_1492x760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:742,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:243287,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!laD9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png 424w, https://substackcdn.com/image/fetch/$s_!laD9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png 848w, https://substackcdn.com/image/fetch/$s_!laD9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png 1272w, https://substackcdn.com/image/fetch/$s_!laD9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf84530a-6527-47c2-92f7-437bab143032_1492x760.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZXEy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZXEy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png 424w, https://substackcdn.com/image/fetch/$s_!ZXEy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png 848w, https://substackcdn.com/image/fetch/$s_!ZXEy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png 1272w, https://substackcdn.com/image/fetch/$s_!ZXEy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZXEy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png" width="1456" height="620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:219702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZXEy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png 424w, https://substackcdn.com/image/fetch/$s_!ZXEy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png 848w, https://substackcdn.com/image/fetch/$s_!ZXEy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png 1272w, https://substackcdn.com/image/fetch/$s_!ZXEy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2616f5a5-8ecd-4e06-b4c1-96115f8709fd_1480x630.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ekab!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ekab!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png 424w, https://substackcdn.com/image/fetch/$s_!Ekab!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png 848w, https://substackcdn.com/image/fetch/$s_!Ekab!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png 1272w, https://substackcdn.com/image/fetch/$s_!Ekab!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ekab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png" width="1456" height="729" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:297266,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ekab!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png 424w, https://substackcdn.com/image/fetch/$s_!Ekab!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png 848w, https://substackcdn.com/image/fetch/$s_!Ekab!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png 1272w, https://substackcdn.com/image/fetch/$s_!Ekab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F605b88f3-6b8c-4700-a01f-0d58092d1c72_1490x746.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p></p><h3><strong>&#28204;&#35430; 2&#65306;&#25976;&#23416;&#25512;&#29702;</strong></h3><pre><code><code>gemini "&#35531;&#35299;&#27770;&#20197;&#19979;&#21839;&#38988;&#65306;&#19968;&#20491;&#27491;&#25972;&#25976; n&#65292;&#22914;&#26524; n&#178; + 5 &#26159;&#36074;&#25976;&#65292;&#19988; n &lt; 10&#65292;&#27714;&#25152;&#26377;&#21487;&#33021;&#30340; n &#20540;&#12290;&#35531;&#35498;&#26126;&#25512;&#29702;&#36942;&#31243;&#12290;"</code></code></pre><p><strong>&#35413;&#20272;&#32173;&#24230;</strong>&#65306;</p><ul><li><p>&#37007;&#36655;&#25512;&#29702;&#33021;&#21147;</p></li><li><p>&#25976;&#23416;&#35336;&#31639;&#28310;&#30906;&#24615;</p></li><li><p>&#35299;&#37323;&#28165;&#26224;&#24230;</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SMv6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SMv6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png 424w, https://substackcdn.com/image/fetch/$s_!SMv6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png 848w, https://substackcdn.com/image/fetch/$s_!SMv6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png 1272w, https://substackcdn.com/image/fetch/$s_!SMv6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SMv6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png" width="1456" height="341" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:341,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96139,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SMv6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png 424w, https://substackcdn.com/image/fetch/$s_!SMv6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png 848w, https://substackcdn.com/image/fetch/$s_!SMv6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png 1272w, https://substackcdn.com/image/fetch/$s_!SMv6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3422010e-9b4d-429e-8f01-c8e4cf10ea94_1470x344.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hxGx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hxGx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png 424w, https://substackcdn.com/image/fetch/$s_!hxGx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png 848w, https://substackcdn.com/image/fetch/$s_!hxGx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png 1272w, https://substackcdn.com/image/fetch/$s_!hxGx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hxGx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png" width="1456" height="1028" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1028,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:184503,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hxGx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png 424w, https://substackcdn.com/image/fetch/$s_!hxGx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png 848w, https://substackcdn.com/image/fetch/$s_!hxGx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png 1272w, https://substackcdn.com/image/fetch/$s_!hxGx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F959e9579-c745-4908-87dd-5c572d757fa7_1476x1042.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ek0Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ek0Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png 424w, https://substackcdn.com/image/fetch/$s_!ek0Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png 848w, https://substackcdn.com/image/fetch/$s_!ek0Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png 1272w, https://substackcdn.com/image/fetch/$s_!ek0Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ek0Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png" width="1456" height="248" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:248,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51029,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/179249021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ek0Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png 424w, https://substackcdn.com/image/fetch/$s_!ek0Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png 848w, https://substackcdn.com/image/fetch/$s_!ek0Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png 1272w, https://substackcdn.com/image/fetch/$s_!ek0Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F020d5da7-d046-4cb4-bae1-86ab6a5f6017_1490x254.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p></p><h3><strong>&#28204;&#35430; 3&#65306;Agentic &#33021;&#21147;</strong></h3><p></p><pre><code><code>gemini "&#20551;&#35373;&#20320;&#26159;&#19968;&#20491;&#23560;&#26696;&#31649;&#29702; AI Agent&#65292;&#38656;&#35201;&#21332;&#21161;&#22296;&#38538;&#38283;&#30332;&#19968;&#20491; Web &#25033;&#29992;&#31243;&#24335;&#12290;&#35531;&#21046;&#23450;&#19968;&#20491; 3 &#36913;&#30340;&#38283;&#30332;&#35336;&#30059;&#65292;&#21253;&#21547;&#38364;&#37749;&#37324;&#31243;&#30865;&#21644;&#39080;&#38570;&#35413;&#20272;&#12290;"</code></code></pre><p><strong>&#35413;&#20272;&#32173;&#24230;</strong>&#65306;</p><ul><li><p>&#127919; &#30446;&#27161;&#29702;&#35299;&#33021;&#21147;</p></li><li><p>&#128203; &#35336;&#21123;&#21046;&#23450;&#21512;&#29702;&#24615;</p></li><li><p>&#9888;&#65039; &#39080;&#38570;&#35672;&#21029;&#33021;&#21147;</p></li><li><p>&#128260; &#36969;&#25033;&#24615;&#21644;&#24392;&#24615;</p></li></ul><p></p><p>&#36879;&#36942;&#36889;&#20491;&#36899;&#32080;&#20358;&#35430;&#35430;&#21543;: <a href="https://goo.gle/try-gemini3">https://goo.gle/try-gemini3</a></p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[🚀 Pre-flight Check: Gemini-CLI on Jetson Orin Nano 💪]]></title><description><![CDATA[Prerequisite]]></description><link>https://memo.jimmyliao.net/p/pre-flight-check-gemini-cli-on-jetson</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/pre-flight-check-gemini-cli-on-jetson</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Thu, 11 Sep 2025 16:12:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!B3L5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h3>Prerequisite</h3><ul><li><p>Install NVM</p></li></ul><ul><li><p>Install gcloud cli</p></li><li><p>Install Gemini-CLI with npm</p><p></p></li></ul><h3>First launch to create ~/.gemini</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B3L5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B3L5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png 424w, https://substackcdn.com/image/fetch/$s_!B3L5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png 848w, https://substackcdn.com/image/fetch/$s_!B3L5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!B3L5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B3L5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png" width="1456" height="1189" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1189,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:238052,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173368104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B3L5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png 424w, https://substackcdn.com/image/fetch/$s_!B3L5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png 848w, https://substackcdn.com/image/fetch/$s_!B3L5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!B3L5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F640c6b68-e1b9-4112-b4d1-5fe1fe92c8af_1670x1364.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You will got this though did `gcloud init or gcloud login`</p><p>Prepare some key-values on ~/.gemini/.env </p><p>ex.</p><pre><code>GOOGLE_GENAI_USE_VERTEXAI=true
GOOGLE_CLOUD_PROJECT="&lt;YOUR_GCP_PROJECT_ID&gt;"
GEMINI_MODEL="gemini-2.0-flash-001"
GOOGLE_CLOUD_LOCATION="global"</code></pre><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IIBL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IIBL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png 424w, https://substackcdn.com/image/fetch/$s_!IIBL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png 848w, https://substackcdn.com/image/fetch/$s_!IIBL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png 1272w, https://substackcdn.com/image/fetch/$s_!IIBL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IIBL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png" width="1456" height="636" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:636,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:273866,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173368104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IIBL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png 424w, https://substackcdn.com/image/fetch/$s_!IIBL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png 848w, https://substackcdn.com/image/fetch/$s_!IIBL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png 1272w, https://substackcdn.com/image/fetch/$s_!IIBL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dda3d08-bc0d-4e59-a6cb-6715e129fb53_2988x1306.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>Solution: set application-default login</h3><pre><code>gcloud auth application-default login</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XBpd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XBpd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png 424w, https://substackcdn.com/image/fetch/$s_!XBpd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png 848w, https://substackcdn.com/image/fetch/$s_!XBpd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png 1272w, https://substackcdn.com/image/fetch/$s_!XBpd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XBpd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125410,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173368104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XBpd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png 424w, https://substackcdn.com/image/fetch/$s_!XBpd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png 848w, https://substackcdn.com/image/fetch/$s_!XBpd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png 1272w, https://substackcdn.com/image/fetch/$s_!XBpd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6262cb47-0461-454d-a91c-9618d84e5551_1690x966.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Now works!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8O4h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8O4h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png 424w, https://substackcdn.com/image/fetch/$s_!8O4h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png 848w, https://substackcdn.com/image/fetch/$s_!8O4h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png 1272w, https://substackcdn.com/image/fetch/$s_!8O4h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8O4h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png" width="1456" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:161541,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173368104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8O4h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png 424w, https://substackcdn.com/image/fetch/$s_!8O4h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png 848w, https://substackcdn.com/image/fetch/$s_!8O4h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png 1272w, https://substackcdn.com/image/fetch/$s_!8O4h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a7c1c24-4270-48a9-be31-d3f2d99a3332_1604x1102.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KJqB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KJqB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png 424w, https://substackcdn.com/image/fetch/$s_!KJqB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png 848w, https://substackcdn.com/image/fetch/$s_!KJqB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!KJqB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KJqB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png" width="1456" height="1046" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1046,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:190411,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173368104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KJqB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png 424w, https://substackcdn.com/image/fetch/$s_!KJqB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png 848w, https://substackcdn.com/image/fetch/$s_!KJqB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!KJqB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F716aa99d-4ae7-4986-961c-28dacbd8efda_1606x1154.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let&#8217;s try get current JetPack version (NOT Android Jetpack &#128527; &#8230;)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lGz9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lGz9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png 424w, https://substackcdn.com/image/fetch/$s_!lGz9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png 848w, https://substackcdn.com/image/fetch/$s_!lGz9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png 1272w, https://substackcdn.com/image/fetch/$s_!lGz9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lGz9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png" width="1456" height="1175" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1175,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:253637,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173368104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lGz9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png 424w, https://substackcdn.com/image/fetch/$s_!lGz9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png 848w, https://substackcdn.com/image/fetch/$s_!lGz9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png 1272w, https://substackcdn.com/image/fetch/$s_!lGz9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e801b4-b3e5-4b27-8dbd-85a41add2190_1534x1238.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-vHj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-vHj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png 424w, https://substackcdn.com/image/fetch/$s_!-vHj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png 848w, https://substackcdn.com/image/fetch/$s_!-vHj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png 1272w, https://substackcdn.com/image/fetch/$s_!-vHj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-vHj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png" width="1456" height="1539" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1539,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:402104,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173368104?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-vHj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png 424w, https://substackcdn.com/image/fetch/$s_!-vHj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png 848w, https://substackcdn.com/image/fetch/$s_!-vHj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png 1272w, https://substackcdn.com/image/fetch/$s_!-vHj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff373095a-07ec-4cc8-8212-45305d6a8447_1570x1660.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[[Jetson Orin Nano] 透過 snap 安裝套件後遇到 failed to verify SELinux 錯誤排解方式]]></title><description><![CDATA[Sympotom:]]></description><link>https://memo.jimmyliao.net/p/jetson-orin-nano-snap-failed-to-verify</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/jetson-orin-nano-snap-failed-to-verify</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Thu, 11 Sep 2025 14:40:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7wBf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9d33965-c32e-4013-8776-a5fdea2b0985_1080x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>Sympotom:</p><pre><code><strong>jetson@ubuntu</strong>:<strong>~</strong>$ tmux -V                                                                                                                                                                        </code></pre><p>2025/09/11 22:22:44.540624 cmd_run.go:1276: WARNING: cannot create user data directory: failed to verify SELinux context of /home/jetson/snap: exec: "matchpathcon": executable file not found in $PATH</p><p>tmux 3.5a</p><p></p><p>&#21407;&#22240;&#26159; jetson &#38928;&#35373;&#23578;&#26410;&#23433;&#35037; selinux-utils</p><pre><code>sudo apt update
sudo apt install selinux-utils

sudo apt install apparmor apparmor-utils
sudo systemctl enable --now apparmor</code></pre><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[AI Edge Gallery App 初體驗 on Pixel...]]></title><description><![CDATA[&#26159; Pixel 3 $_$]]></description><link>https://memo.jimmyliao.net/p/ai-edge-gallery-app-on-pixel</link><guid isPermaLink="false">https://memo.jimmyliao.net/p/ai-edge-gallery-app-on-pixel</guid><dc:creator><![CDATA[JimmyLiao(NET)]]></dc:creator><pubDate>Wed, 10 Sep 2025 15:02:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!f1qd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>&#20294;&#25105;&#20063;&#22909;&#24819;&#36023;&#21488; Pixel 10 Pro &#21834; (&#36523;&#28858;&#20729;&#26684;&#25935;&#24863;&#32773;&#30340;&#21558;&#21898;)</p><p></p><p>&#25165;&#30332;&#29694;&#20854;&#23526;<a href="https://www.ithome.com.tw/news/169286">&#20845;&#26376;</a>&#23601;&#20986;&#20102; APK &#21487;&#20197;&#33258;&#24049;&#19979;&#36617;&#25110;&#26159;&#24478; <a href="https://github.com/google-ai-edge/gallery">GitHub</a> &#24819;&#36774;&#27861;&#33258;&#24049; Compile &amp; Run&#65292; &#19981;&#36942;&#21448;&#24478; <a href="https://x.com/_philschmid">Philipp Schmid</a> &#30340;<a href="https://x.com/_philschmid/status/1965742109157188031">&#36028;&#25991;</a>&#30693;&#36947; &#21487;&#20197;&#24478; Play Store &#19978;&#30452;&#25509;&#23433;&#35037;&#65292;&#40670;&#20102;&#19968;&#19979;&#30332;&#29694;&#23621;&#28982;&#21487;&#20197;&#23433;&#35037;&#21040; Pixel 3 (?_?)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f1qd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f1qd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png 424w, https://substackcdn.com/image/fetch/$s_!f1qd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png 848w, https://substackcdn.com/image/fetch/$s_!f1qd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!f1qd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f1qd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png" width="1456" height="1153" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1153,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:292691,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f1qd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png 424w, https://substackcdn.com/image/fetch/$s_!f1qd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png 848w, https://substackcdn.com/image/fetch/$s_!f1qd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png 1272w, https://substackcdn.com/image/fetch/$s_!f1qd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F987c9f88-420f-48c4-9c7c-37b80622e425_1756x1390.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#24590;&#40636;&#21487;&#33021;&#19981;&#35430;&#35430;&#30475;&#26159;&#19981;&#26159;&#39449;&#20154;&#30340;&#65292;&#40670;&#19979;&#21435;&#21543;&#12290;</p><p>&#30070;&#28982;&#20808;&#35430;&#35430;&#31777;&#21934;&#30340; AI Chat&#65292;&#30475;&#20358;&#8230;1B &#36996;&#34892;&#65311;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UsaV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UsaV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png 424w, https://substackcdn.com/image/fetch/$s_!UsaV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png 848w, https://substackcdn.com/image/fetch/$s_!UsaV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png 1272w, https://substackcdn.com/image/fetch/$s_!UsaV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UsaV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png" width="1080" height="2044" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2044,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:363285,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UsaV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png 424w, https://substackcdn.com/image/fetch/$s_!UsaV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png 848w, https://substackcdn.com/image/fetch/$s_!UsaV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png 1272w, https://substackcdn.com/image/fetch/$s_!UsaV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d90087b-e604-4457-852c-580daaa9f82d_1080x2044.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>&#20877;&#22810;&#19968;&#20491;&#25351;&#20196;&#23601;&#32102;&#25105;&#20572;&#20303;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XHzc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XHzc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png 424w, https://substackcdn.com/image/fetch/$s_!XHzc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png 848w, https://substackcdn.com/image/fetch/$s_!XHzc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png 1272w, https://substackcdn.com/image/fetch/$s_!XHzc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XHzc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png" width="1080" height="836" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:836,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:220123,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XHzc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png 424w, https://substackcdn.com/image/fetch/$s_!XHzc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png 848w, https://substackcdn.com/image/fetch/$s_!XHzc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png 1272w, https://substackcdn.com/image/fetch/$s_!XHzc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2f7cb86-6dcb-46d7-b774-cd9c625455c3_1080x836.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>&#20358;&#35430;&#35430; Ask Image (Gemma-3n-E2B-it)</p><p>Pixel 3 &#21482;&#26377; <a href="https://zh.wikipedia.org/zh-tw/Pixel_3">4G RAM</a>&#65292;&#30495;&#30340;&#36305;&#24471;&#21205;&#21966;&#65311; &#128527;</p><p>&#36305;&#20986;&#36889;&#20491;&#35686;&#21578;&#65292;&#20854;&#23526;&#27794;&#22312;&#29702;&#30340;&#65292;&#21704;&#12290;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4_wu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4_wu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png 424w, https://substackcdn.com/image/fetch/$s_!4_wu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png 848w, https://substackcdn.com/image/fetch/$s_!4_wu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png 1272w, https://substackcdn.com/image/fetch/$s_!4_wu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4_wu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png" width="1080" height="916" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:916,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:153466,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4_wu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png 424w, https://substackcdn.com/image/fetch/$s_!4_wu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png 848w, https://substackcdn.com/image/fetch/$s_!4_wu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png 1272w, https://substackcdn.com/image/fetch/$s_!4_wu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554ddbc9-48a8-45a6-8340-e6decfcb8a2b_1080x916.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#36996;&#26159;&#35201;&#36879;&#36942; HuggingFace &#24115;&#34399;&#19979;&#36617;&#65292;&#36895;&#24230;&#26377;&#37782;&#24863;&#35258;&#34875;&#24930;&#30340;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dNIW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dNIW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png 424w, https://substackcdn.com/image/fetch/$s_!dNIW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png 848w, https://substackcdn.com/image/fetch/$s_!dNIW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png 1272w, https://substackcdn.com/image/fetch/$s_!dNIW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dNIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png" width="1080" height="1540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1540,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:208241,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dNIW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png 424w, https://substackcdn.com/image/fetch/$s_!dNIW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png 848w, https://substackcdn.com/image/fetch/$s_!dNIW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png 1272w, https://substackcdn.com/image/fetch/$s_!dNIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab51dfb-3937-480e-bf4a-d19fce979acd_1080x1540.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s0XX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s0XX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png 424w, https://substackcdn.com/image/fetch/$s_!s0XX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png 848w, https://substackcdn.com/image/fetch/$s_!s0XX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png 1272w, https://substackcdn.com/image/fetch/$s_!s0XX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s0XX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png" width="1080" height="1004" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1004,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:142144,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!s0XX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png 424w, https://substackcdn.com/image/fetch/$s_!s0XX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png 848w, https://substackcdn.com/image/fetch/$s_!s0XX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png 1272w, https://substackcdn.com/image/fetch/$s_!s0XX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bf9fe14-fda2-485a-9279-a6e9b0104cfb_1080x1004.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>&#20358;&#35430;&#35430; Vision&#65292;&#25928;&#26524;&#36996;&#21487;&#20197;&#65311;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DRbV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DRbV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png 424w, https://substackcdn.com/image/fetch/$s_!DRbV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png 848w, https://substackcdn.com/image/fetch/$s_!DRbV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png 1272w, https://substackcdn.com/image/fetch/$s_!DRbV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DRbV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png" width="1080" height="1885" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1885,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:540798,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DRbV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png 424w, https://substackcdn.com/image/fetch/$s_!DRbV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png 848w, https://substackcdn.com/image/fetch/$s_!DRbV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png 1272w, https://substackcdn.com/image/fetch/$s_!DRbV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54f9e755-d422-4bf8-be48-2a8cbe21488c_1080x1885.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>&#35613;&#35613;&#40769;&#65292;&#24773;&#32210;&#20729;&#20540;&#24456;&#22816;&#21908;&#65292;&#20294;&#26159;&#36889;&#19981;&#26159;&#36305;&#27493;&#32822;&#12290;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GBbn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GBbn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png 424w, https://substackcdn.com/image/fetch/$s_!GBbn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png 848w, https://substackcdn.com/image/fetch/$s_!GBbn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png 1272w, https://substackcdn.com/image/fetch/$s_!GBbn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GBbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png" width="1080" height="1054" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1054,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:213634,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GBbn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png 424w, https://substackcdn.com/image/fetch/$s_!GBbn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png 848w, https://substackcdn.com/image/fetch/$s_!GBbn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png 1272w, https://substackcdn.com/image/fetch/$s_!GBbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f003c0c-a248-40b9-b2b2-903021095bbf_1080x1054.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#24773;&#32210;&#20729;&#20540;&#32102;&#24456;&#22816;&#21908;&#65281;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y-y3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y-y3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png 424w, https://substackcdn.com/image/fetch/$s_!Y-y3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png 848w, https://substackcdn.com/image/fetch/$s_!Y-y3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png 1272w, https://substackcdn.com/image/fetch/$s_!Y-y3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y-y3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png" width="1080" height="859" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:859,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:241873,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://memo.jimmyliao.net/i/173273621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Y-y3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png 424w, https://substackcdn.com/image/fetch/$s_!Y-y3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png 848w, https://substackcdn.com/image/fetch/$s_!Y-y3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png 1272w, https://substackcdn.com/image/fetch/$s_!Y-y3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F568f7d67-6197-4e38-b154-2ce1fbce27fe_1080x859.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>&#24515;&#24471;&#65292;&#23621;&#28982;&#36899; CPU mode, 4G RAM &#37117;&#36305;&#24471;&#21205;&#65292;&#36523;&#28858;&#22856;&#31859;&#32929;&#26481;&#34920;&#31034;&#27427;&#24944;&#65292;&#19981;&#36942;&#22238;&#25033;&#26178;&#38291;&#21463;&#38480;&#30828;&#39636;&#23526;&#22312;&#22826;&#24930;&#65292;&#25105;&#36996;&#26159;&#32771;&#24942;&#36023;&#19968;&#38587;&#26032;&#19968;&#40670;&#30340; Android &#25163;&#27231;&#22909;&#20102;&#12290;</p><p></p><p></p><p></p><p></p><p></p>]]></content:encoded></item></channel></rss>