<?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[omo-y: AI Overview Diagnostic Tool]]></title><description><![CDATA[AI Overview Diagnostic Toolのセクションごとの完成コードを紹介]]></description><link>https://omoy1.substack.com/s/ai-overview-diagnostic-tool</link><image><url>https://substackcdn.com/image/fetch/$s_!JcBu!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82940cef-22ee-42f6-8401-13f4eeb4384a_545x545.webp</url><title>omo-y: AI Overview Diagnostic Tool</title><link>https://omoy1.substack.com/s/ai-overview-diagnostic-tool</link></image><generator>Substack</generator><lastBuildDate>Mon, 01 Jun 2026 14:53:43 GMT</lastBuildDate><atom:link href="https://omoy1.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[omo-y]]></copyright><language><![CDATA[ja]]></language><webMaster><![CDATA[omoy1@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[omoy1@substack.com]]></itunes:email><itunes:name><![CDATA[omo-y]]></itunes:name></itunes:owner><itunes:author><![CDATA[omo-y]]></itunes:author><googleplay:owner><![CDATA[omoy1@substack.com]]></googleplay:owner><googleplay:email><![CDATA[omoy1@substack.com]]></googleplay:email><googleplay:author><![CDATA[omo-y]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[ローカルLLM対応AI Overview診断ツールDB保存機能（Supabase）ユーザー認証・SSRF対策版完成コード]]></title><description><![CDATA[&#12525;&#12540;&#12459;&#12523;LLM&#23550;&#24540;AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;DB&#20445;&#23384;&#27231;&#33021;&#65288;Supabase&#65289;&#12518;&#12540;&#12470;&#12540;&#35469;&#35388;&#12539;SSRF&#23550;&#31574;&#29256;&#23436;&#25104;&#12467;&#12540;&#12489;&#12392;&#35443;&#12375;&#12356;&#23455;&#35013;&#25163;&#38918;&#12434;&#20844;&#38283;]]></description><link>https://omoy1.substack.com/p/llmai-overviewdbsupabasessrf</link><guid isPermaLink="false">https://omoy1.substack.com/p/llmai-overviewdbsupabasessrf</guid><dc:creator><![CDATA[omo-y]]></dc:creator><pubDate>Sat, 16 May 2026 21:21:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0f7f6384-e633-44b1-bf8e-7d9ea75837d2_1000x563.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>&#23436;&#25104;&#12467;&#12540;&#12489;&#12398;&#12522;&#12531;&#12463;</strong></h2><p>&#23436;&#25104;&#12467;&#12540;&#12489;&#12399;&#12371;&#12385;&#12425;&#12391;&#12377;&#12290;</p><p>GitHub&#65306;<br><a href="https://github.com/omo-y/AI-Overview/tree/distribution-v3">https://github.com/omo-y/AI-Overview/tree/distribution-v3</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://omoy1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;&#30331;&#37682;&quot;,&quot;language&quot;:&quot;ja&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">&#35501;&#12435;&#12391;&#12367;&#12384;&#12373;&#12426;&#12354;&#12426;&#12364;&#12392;&#12358;&#12372;&#12374;&#12356;&#12414;&#12377;&#65281;&#26032;&#12375;&#12356;&#12509;&#12473;&#12488;&#12434;&#21463;&#12369;&#21462;&#12426;&#12289;&#31169;&#12398;&#27963;&#21205;&#12434;&#24540;&#25588;&#12375;&#12390;&#12356;&#12383;&#12384;&#12367;&#12383;&#12417;&#12395;&#12289;&#12380;&#12402;&#28961;&#26009;&#12391;&#36092;&#35501;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="&#12513;&#12540;&#12523;&#12450;&#12489;&#12524;&#12473;&#12434;&#20837;&#21147;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;&#8230;" tabindex="-1"><input type="submit" class="button primary" value="&#30331;&#37682;"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>&#12371;&#12398;&#12522;&#12509;&#12472;&#12488;&#12522;&#12391;&#12399;&#12289;<strong><a href="https://luckywhite.xyz/ai-overview-diagnostictool-ssrf/">WordPress&#12398;&#35352;&#20107;</a></strong>&#12391;&#35299;&#35500;&#12375;&#12383;DB&#20445;&#23384;&#27231;&#33021;&#65288;<strong>Supabase</strong>&#65289;&#12392;<strong>&#12518;&#12540;&#12470;&#12540;&#35469;&#35388;&#65288;Supabase Auth&#65289;&#12289;SSRF&#23550;&#31574;</strong>&#12434;&#36861;&#21152;&#12375;&#12383;&#12300;AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#12301;&#12434;&#20844;&#38283;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;<strong><a href="https://luckywhite.xyz/aioverviews-supabase-auth/">&#12371;&#12385;&#12425;&#12398;WordPress&#35352;&#20107;</a></strong>&#12418;&#21442;&#32771;&#12395;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;</p><p>&#21033;&#29992;&#12377;&#12427;&#22580;&#21512;&#12399;&#12289;&#19978;&#35352;&#12522;&#12531;&#12463;&#20808;&#12398;GitHub&#12506;&#12540;&#12472;&#12434;&#38283;&#12365;&#12289;&#32209;&#33394;&#12398; Code &#12508;&#12479;&#12531;&#12434;&#12463;&#12522;&#12483;&#12463;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;</p><p>&#34920;&#31034;&#12373;&#12428;&#12383;&#12513;&#12491;&#12517;&#12540;&#12363;&#12425; Download ZIP &#12434;&#36984;&#25246;&#12377;&#12427;&#12392;&#12289;&#12501;&#12449;&#12452;&#12523;&#19968;&#24335;&#12434;PC&#12395;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12391;&#12365;&#12414;&#12377;&#12290;</p><p>&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#24460;&#12399;ZIP&#12501;&#12449;&#12452;&#12523;&#12434;&#35299;&#20941;&#12375;&#12289;&#23637;&#38283;&#12375;&#12383;&#12501;&#12457;&#12523;&#12480;&#20869;&#12395;&#12354;&#12427; README.md &#12398;&#25163;&#38918;&#12395;&#27839;&#12387;&#12390;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12434;&#36914;&#12417;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;</p><p>&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12364;&#23436;&#20102;&#12377;&#12427;&#12392;&#12289;AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#12434;&#20351;&#12387;&#12390;&#12486;&#12473;&#12488;&#12434;&#35430;&#12377;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12377;&#12290;</p><h2>&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#25163;&#38918;&#12398;&#27010;&#35201;</h2><p>AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#12434;&#21033;&#29992;&#12377;&#12427;&#12383;&#12417;&#12398;&#20027;&#12394;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#25163;&#38918;&#12399;&#12289;&#20197;&#19979;&#12398;&#36890;&#12426;&#12391;&#12377;&#12290;</p><p>&#12414;&#12378;&#12289;&#12525;&#12540;&#12459;&#12523;LLM&#12434;&#21205;&#12363;&#12377;&#12383;&#12417;&#12395; Ollama &#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12289;&#20351;&#29992;&#12377;&#12427;&#12514;&#12487;&#12523;&#12391;&#12354;&#12427; qwen3:latest &#12434;&#12525;&#12540;&#12489;&#12375;&#12414;&#12377;&#12290;</p><p>&#12381;&#12398;&#24460;&#12289;Ollama&#12395;&#12514;&#12487;&#12523;&#12364;&#27491;&#12375;&#12367;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12373;&#12428;&#12390;&#12356;&#12427;&#12363;&#12434;&#30906;&#35469;&#12375;&#12289;Ollama API&#12364;&#27491;&#24120;&#12395;&#24540;&#31572;&#12377;&#12427;&#12363;&#12434;&#12481;&#12455;&#12483;&#12463;&#12375;&#12414;&#12377;&#12290;</p><p>&#27425;&#12395;&#12289;Next.js&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12398;&#38283;&#30330;&#29872;&#22659;&#12434;&#28310;&#20633;&#12375;&#12414;&#12377;&#12290;</p><p>&#24517;&#35201;&#12394;&#12497;&#12483;&#12465;&#12540;&#12472;&#12434; npm install &#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12289;&#29872;&#22659;&#22793;&#25968;&#12501;&#12449;&#12452;&#12523;&#12391;&#12354;&#12427; .env.local &#12434;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;</p><p>&#12373;&#12425;&#12395;&#12289;&#35386;&#26029;&#23653;&#27508;&#12434;DB&#12395;&#20445;&#23384;&#12375;&#12518;&#12540;&#12470;&#12540;&#35469;&#35388;&#12434;&#26377;&#21177;&#21270;&#12377;&#12427;&#12383;&#12417;&#12289;Supabase&#12398;&#28310;&#20633;&#12434;&#34892;&#12356;&#12414;&#12377;&#12290;</p><p>&#26368;&#24460;&#12395;&#12289;npm run dev &#12391;&#38283;&#30330;&#12469;&#12540;&#12496;&#12540;&#12434;&#36215;&#21205;&#12375;&#12289;&#12502;&#12521;&#12454;&#12470;&#12391; <strong><a href="http://localhost:3000">http://localhost:3000</a></strong> &#12395;&#12450;&#12463;&#12475;&#12473;&#12375;&#12414;&#12377;&#12290;</p><p>&#30011;&#38754;&#12364;&#34920;&#31034;&#12373;&#12428;&#12428;&#12400;&#12289;&#12300;AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#12301;&#12398;&#21205;&#20316;&#30906;&#35469;&#12434;&#34892;&#12358;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12377;&#12290;</p><h2>&#35036;&#36275;&#20107;&#38917;</h2><h3><strong>Supabase&#12450;&#12459;&#12454;&#12531;&#12488;&#12398;&#20316;&#25104;</strong></h3><p>Supabase&#12398;&#12450;&#12459;&#12454;&#12531;&#12488;&#12364;&#12394;&#12356;&#22580;&#21512;&#12399;&#12289;<strong><a href="https://supabase.com">Supabase&#12507;&#12540;&#12512;&#12506;&#12540;&#12472;</a></strong>&#12363;&#12425;&#12518;&#12540;&#12470;&#12540;&#30331;&#37682;&#12375;&#12390;&#12362;&#12365;&#12414;&#12377;&#12290;</p><h3><strong>.env.local&#12398;&#35373;&#23450;</strong></h3><ul><li><p><strong>NEXT_PUBLIC_SUPABASE_URL=</strong>Project Overview&#30011;&#38754;&#12398;&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#21517;&#12398;&#19979;&#12395;&#34920;&#31034;&#12373;&#12428;&#12390;&#12356;&#12427;url&#12434;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;</p></li><li><p><strong>NEXT_PUBLIC_SUPABASE_ANON_KEY=</strong>API Keys&#30011;&#38754;&#12398;Publishable key&#12434;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;<br>&#65288;NEXT_PUBLIC_SUPABASE_ANON_KEY &#12399;&#12502;&#12521;&#12454;&#12470;&#20596;&#12525;&#12464;&#12452;&#12531;&#12391;&#20351;&#12358;&#20844;&#38283;&#21487;&#33021;&#12394;&#12461;&#12540;&#12391;&#12377;&#65289;</p></li><li><p><strong>SUPABASE_SERVICE_ROLE_KEY=</strong>API Keys&#30011;&#38754;&#12398;Secret keys&#12434;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;<br>&#65288;SUPABASE_SERVICE_ROLE_KEY &#12399;&#12469;&#12540;&#12496;&#12540;&#20596;&#12384;&#12369;&#12391;&#20351;&#12358;&#24375;&#12356;&#27177;&#38480;&#12398;&#12461;&#12540;&#12391;&#12377;&#12290;&#20844;&#38283;&#12375;&#12394;&#12356;&#12391;&#12367;&#12384;&#12373;&#12356;&#12290;&#65289;</p></li></ul><h3><strong>&#36861;&#21152;&#27231;&#33021;&#12395;&#12388;&#12356;&#12390;</strong></h3><p>&#21033;&#20415;&#24615;&#12398;&#21521;&#19978;&#12392;&#12475;&#12461;&#12517;&#12522;&#12486;&#12451;&#23550;&#31574;&#12398;&#12383;&#12417;&#20197;&#19979;&#12398;&#27231;&#33021;&#12434;&#36861;&#21152;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;</p><ul><li><p>&#31649;&#29702;&#32773;&#27231;&#33021;</p></li><li><p>&#35386;&#26029;&#23653;&#27508;&#34920;&#31034;</p></li><li><p>&#21033;&#29992;&#22238;&#25968;&#21046;&#38480;</p></li><li><p>URL&#35386;&#26029;&#12398;SSRF&#23550;&#31574;</p></li><li><p>&#12490;&#12499;&#12466;&#12540;&#12471;&#12519;&#12531;&#27231;&#33021;</p></li><li><p>&#23455;&#28204;&#12481;&#12455;&#12483;&#12463;<br><strong><a href="https://serpapi.com/">SerpAPI</a></strong>&#12391;&#12450;&#12459;&#12454;&#12531;&#12488;&#12434;&#20316;&#25104;&#24460;&#12395;&#12289;API&#12461;&#12540;&#12434;&#21462;&#24471;&#12375;&#12390;&#12289;<strong>SERPAPI_API_KEY=</strong>&#12395;&#35373;&#23450;&#12377;&#12427;&#12392;&#12289;AI Overview&#12398;&#20986;&#29694;&#20214;&#25968;&#12420;&#35386;&#26029;&#23550;&#35937;URL&#12398;&#24341;&#29992;&#12539;&#21442;&#29031;&#12373;&#12428;&#12383;&#21106;&#21512;&#12434;&#30906;&#35469;&#12391;&#12365;&#12414;&#12377;&#12290;</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_!0ypg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0ypg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp 424w, https://substackcdn.com/image/fetch/$s_!0ypg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp 848w, https://substackcdn.com/image/fetch/$s_!0ypg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp 1272w, https://substackcdn.com/image/fetch/$s_!0ypg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0ypg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp" width="1000" height="918" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:918,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:39704,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://omoy1.substack.com/i/198043273?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0ypg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp 424w, https://substackcdn.com/image/fetch/$s_!0ypg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp 848w, https://substackcdn.com/image/fetch/$s_!0ypg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp 1272w, https://substackcdn.com/image/fetch/$s_!0ypg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a6294c-ad7e-4e1b-96c2-e5860083618f_1000x918.webp 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="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://omoy1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;&#30331;&#37682;&quot;,&quot;language&quot;:&quot;ja&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">&#35501;&#12435;&#12391;&#12367;&#12384;&#12373;&#12426;&#12354;&#12426;&#12364;&#12392;&#12358;&#12372;&#12374;&#12356;&#12414;&#12377;&#65281;&#26032;&#12375;&#12356;&#12509;&#12473;&#12488;&#12434;&#21463;&#12369;&#21462;&#12426;&#12289;&#31169;&#12398;&#27963;&#21205;&#12434;&#24540;&#25588;&#12375;&#12390;&#12356;&#12383;&#12384;&#12367;&#12383;&#12417;&#12395;&#12289;&#12380;&#12402;&#28961;&#26009;&#12391;&#36092;&#35501;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="&#12513;&#12540;&#12523;&#12450;&#12489;&#12524;&#12473;&#12434;&#20837;&#21147;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;&#8230;" tabindex="-1"><input type="submit" class="button primary" value="&#30331;&#37682;"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[ローカルLLM対応AI Overview診断ツールDB保存機能（SQLite + Prisma）追加版 完成コード]]></title><description><![CDATA[&#23436;&#25104;&#12467;&#12540;&#12489;&#12392;&#35443;&#12375;&#12356;&#23455;&#35013;&#25163;&#38918;&#12434;&#20844;&#38283;]]></description><link>https://omoy1.substack.com/p/llmai-overviewdbsqlite-prisma</link><guid isPermaLink="false">https://omoy1.substack.com/p/llmai-overviewdbsqlite-prisma</guid><dc:creator><![CDATA[omo-y]]></dc:creator><pubDate>Sat, 16 May 2026 02:08:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/46d9cb31-61ea-45f3-9951-7d4fe52955c4_1000x563.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>&#23436;&#25104;&#12467;&#12540;&#12489;&#12398;&#12522;&#12531;&#12463;</h2><p>&#23436;&#25104;&#12467;&#12540;&#12489;&#12399;&#12371;&#12385;&#12425;&#12391;&#12377;&#12290;<br><br>GitHub&#65306;<br><a href="https://github.com/omo-y/AI-Overview/tree/distribution-v1">https://github.com/omo-y/AI-Overview/tree/distribution-v1</a></p><p>&#12371;&#12398;&#12522;&#12509;&#12472;&#12488;&#12522;&#12391;&#12399;&#12289;<strong><a href="https://luckywhite.xyz/sqlite-prisma-new-features/">WordPress&#12398;&#35352;&#20107;</a></strong>&#12391;&#35299;&#35500;&#12375;&#12383;DB&#20445;&#23384;&#27231;&#33021;&#65288;SQLite + Prisma&#65289;&#12434;&#36861;&#21152;&#12375;&#12383;&#12300;AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#12301;&#12398;MVP&#29256;&#12434;&#20844;&#38283;&#12375;&#12390;&#12356;&#12414;&#12377;&#12290;</p><p>&#21033;&#29992;&#12377;&#12427;&#22580;&#21512;&#12399;&#12289;&#19978;&#35352;&#12522;&#12531;&#12463;&#20808;&#12398;GitHub&#12506;&#12540;&#12472;&#12434;&#38283;&#12365;&#12289;&#32209;&#33394;&#12398; <strong>Code</strong> &#12508;&#12479;&#12531;&#12434;&#12463;&#12522;&#12483;&#12463;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;<br>&#34920;&#31034;&#12373;&#12428;&#12383;&#12513;&#12491;&#12517;&#12540;&#12363;&#12425; <strong>Download ZIP</strong> &#12434;&#36984;&#25246;&#12377;&#12427;&#12392;&#12289;&#12501;&#12449;&#12452;&#12523;&#19968;&#24335;&#12434;PC&#12395;&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#12391;&#12365;&#12414;&#12377;&#12290;</p><p>&#12480;&#12454;&#12531;&#12525;&#12540;&#12489;&#24460;&#12399;ZIP&#12501;&#12449;&#12452;&#12523;&#12434;&#35299;&#20941;&#12375;&#12289;&#23637;&#38283;&#12375;&#12383;&#12501;&#12457;&#12523;&#12480;&#20869;&#12395;&#12354;&#12427; <strong>README.md</strong> &#12398;&#25163;&#38918;&#12395;&#27839;&#12387;&#12390;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12434;&#36914;&#12417;&#12390;&#12367;&#12384;&#12373;&#12356;&#12290;<br>&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#12364;&#23436;&#20102;&#12377;&#12427;&#12392;&#12289;AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#12434;&#20351;&#12387;&#12390;&#12486;&#12473;&#12488;&#12434;&#35430;&#12377;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12377;&#12290;</p><h2>&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#25163;&#38918;&#12398;&#27010;&#35201;</h2><p>AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#12434;&#21033;&#29992;&#12377;&#12427;&#12383;&#12417;&#12398;&#20027;&#12394;&#12475;&#12483;&#12488;&#12450;&#12483;&#12503;&#25163;&#38918;&#12399;&#12289;&#20197;&#19979;&#12398;&#36890;&#12426;&#12391;&#12377;&#12290;</p><p>&#12414;&#12378;&#12289;&#12525;&#12540;&#12459;&#12523;LLM&#12434;&#21205;&#12363;&#12377;&#12383;&#12417;&#12395; <strong>Ollama</strong> &#12434;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12289;&#20351;&#29992;&#12377;&#12427;&#12514;&#12487;&#12523;&#12391;&#12354;&#12427; <strong>qwen3:latest</strong> &#12434;&#12525;&#12540;&#12489;&#12375;&#12414;&#12377;&#12290;<br>&#12381;&#12398;&#24460;&#12289;Ollama&#12395;&#12514;&#12487;&#12523;&#12364;&#27491;&#12375;&#12367;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12373;&#12428;&#12390;&#12356;&#12427;&#12363;&#12434;&#30906;&#35469;&#12375;&#12289;Ollama API&#12364;&#27491;&#24120;&#12395;&#24540;&#31572;&#12377;&#12427;&#12363;&#12434;&#12481;&#12455;&#12483;&#12463;&#12375;&#12414;&#12377;&#12290;</p><p>&#27425;&#12395;&#12289;Next.js&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12398;&#38283;&#30330;&#29872;&#22659;&#12434;&#28310;&#20633;&#12375;&#12414;&#12377;&#12290;<br>&#24517;&#35201;&#12394;&#12497;&#12483;&#12465;&#12540;&#12472;&#12434; <strong>npm install</strong> &#12391;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12375;&#12289;&#29872;&#22659;&#22793;&#25968;&#12501;&#12449;&#12452;&#12523;&#12391;&#12354;&#12427; <strong>.env.local</strong> &#12434;&#35373;&#23450;&#12375;&#12414;&#12377;&#12290;</p><p>&#12373;&#12425;&#12395;&#12289;&#35386;&#26029;&#23653;&#27508;&#12434;DB&#12395;&#20445;&#23384;&#12377;&#12427;&#12383;&#12417;&#12289;SQLite + Prisma&#12398;&#28310;&#20633;&#12434;&#34892;&#12356;&#12414;&#12377;&#12290;<br>Prisma&#38306;&#36899;&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#12452;&#12531;&#12473;&#12488;&#12540;&#12523;&#12289;Prisma&#12398;&#21021;&#26399;&#21270;&#12289;&#12510;&#12452;&#12464;&#12524;&#12540;&#12471;&#12519;&#12531;&#12398;&#23455;&#34892;&#12289;Prisma Client&#12398;&#29983;&#25104;&#12434;&#38918;&#30058;&#12395;&#34892;&#12356;&#12414;&#12377;&#12290;<br>&#24517;&#35201;&#12395;&#24540;&#12376;&#12390;&#12289;<strong>npx prisma studio</strong> &#12434;&#20351;&#12356;&#12289;Web&#30011;&#38754;&#12363;&#12425;DB&#12398;&#20869;&#23481;&#12434;&#30906;&#35469;&#12391;&#12365;&#12414;&#12377;&#12290;</p><p>&#26368;&#24460;&#12395;&#12289;<strong>npm run dev</strong> &#12391;&#38283;&#30330;&#12469;&#12540;&#12496;&#12540;&#12434;&#36215;&#21205;&#12375;&#12289;&#12502;&#12521;&#12454;&#12470;&#12391; <a href="http://localhost:3000">http://localhost:3000 </a>&#12395;&#12450;&#12463;&#12475;&#12473;&#12375;&#12414;&#12377;&#12290;<br>&#30011;&#38754;&#12364;&#34920;&#31034;&#12373;&#12428;&#12428;&#12400;&#12289;&#12300;AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#12301;&#12398;&#21205;&#20316;&#30906;&#35469;&#12434;&#34892;&#12358;&#12371;&#12392;&#12364;&#12391;&#12365;&#12414;&#12377;&#12290;</p><h2>AI Overview&#35386;&#26029;&#12484;&#12540;&#12523;&#23455;&#34892;&#20363;</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QKcw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QKcw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp 424w, https://substackcdn.com/image/fetch/$s_!QKcw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp 848w, https://substackcdn.com/image/fetch/$s_!QKcw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp 1272w, https://substackcdn.com/image/fetch/$s_!QKcw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QKcw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp" width="1000" height="683" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:683,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29356,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://omoy1.substack.com/i/197935913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QKcw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp 424w, https://substackcdn.com/image/fetch/$s_!QKcw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp 848w, https://substackcdn.com/image/fetch/$s_!QKcw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp 1272w, https://substackcdn.com/image/fetch/$s_!QKcw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5623f7a-bc94-4fb1-872e-30023de7183a_1000x683.webp 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="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://omoy1.substack.com/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! 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>]]></content:encoded></item></channel></rss>