<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>テクノロジー - Uranos8685のおもちゃ箱</title>
	<atom:link href="https://toybox.uranos8685.mydns.jp/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>https://toybox.uranos8685.mydns.jp</link>
	<description>個人的な備忘録やゲームレビュー等のブログです</description>
	<lastBuildDate>Mon, 31 Aug 2026 22:22:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>

<image>
	<url>https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/04/cropped-AE86-2-32x32.png</url>
	<title>テクノロジー - Uranos8685のおもちゃ箱</title>
	<link>https://toybox.uranos8685.mydns.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<atom:link rel='hub' href='https://toybox.uranos8685.mydns.jp/?pushpress=hub'/>
<site xmlns="com-wordpress:feed-additions:1">252152419</site>	<item>
		<title>デジタル庁が公開した⾏政⼿続等調査データを試してみる</title>
		<link>https://toybox.uranos8685.mydns.jp/2026/08/19/%e3%83%87%e3%82%b8%e3%82%bf%e3%83%ab%e5%ba%81%e3%81%8c%e5%85%ac%e9%96%8b%e3%81%97%e3%81%9f%e2%be%8f%e6%94%bf%e2%bc%bf%e7%b6%9a%e7%ad%89%e8%aa%bf%e6%9f%bb%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e8%a9%a6/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2026/08/19/%e3%83%87%e3%82%b8%e3%82%bf%e3%83%ab%e5%ba%81%e3%81%8c%e5%85%ac%e9%96%8b%e3%81%97%e3%81%9f%e2%be%8f%e6%94%bf%e2%bc%bf%e7%b6%9a%e7%ad%89%e8%aa%bf%e6%9f%bb%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e8%a9%a6/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Wed, 19 Aug 2026 11:24:45 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=717</guid>

					<description><![CDATA[<p>デジ庁が公開したページなど 環境構築 　デジ庁のGitHubのReadMeに従って、Git Cloneする。 　仮想環境も新規で作成して、uvのみpipインストールする（Python3.14）。 　Git Cloneした [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/08/19/%e3%83%87%e3%82%b8%e3%82%bf%e3%83%ab%e5%ba%81%e3%81%8c%e5%85%ac%e9%96%8b%e3%81%97%e3%81%9f%e2%be%8f%e6%94%bf%e2%bc%bf%e7%b6%9a%e7%ad%89%e8%aa%bf%e6%9f%bb%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e8%a9%a6/">デジタル庁が公開した⾏政⼿続等調査データを試してみる</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">デジ庁が公開したページなど</h2>


<a rel="noopener" href="https://digital-gov.note.jp/n/n56aaf580bfb6#458dd2a9-15d9-48a0-abaf-4022dc72f08d" title="⾏政⼿続等調査データ（約75,000件）をMCPで⾃然⾔語分析可能に｜デジタル庁" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/cocoon-resources/blog-card-cache/665e227852cf933b6da012cf82c23481.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">⾏政⼿続等調査データ（約75,000件）をMCPで⾃然⾔語分析可能に｜デジタル庁</div><div class="blogcard-snippet external-blogcard-snippet">はじめに デジタル庁プロダクトマネージャーの土岐竜一です。事業者向けシステムや自治体窓口DX SaaS等を担当しています。 本記事では、デジタル庁が公表する行政手続等の調査（令和6年度悉皆調査）の結果データ約75,000件を対象に、対話形式&#8230;</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://digital-gov.note.jp/n/n56aaf580bfb6" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">digital-gov.note.jp</div></div></div></div></a>

<a rel="noopener" href="https://github.com/digital-go-jp/administrative-procedures-mcp#readme" title="GitHub - digital-go-jp/administrative-procedures-mcp: 行政手続データ分析 MCP Server — 棚卸調査結果を自然言語で検索・集計 / MCP server for Japan&#039;s administrative procedures survey data" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/cocoon-resources/blog-card-cache/ce30c6ca98b72e10b70da0cd2d100179.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHub &#8211; digital-go-jp/administrative-procedures-mcp: 行政手続データ分析 MCP Server — 棚卸調査結果を自然言語で検索・集計 / MCP server for Japan&#8217;s administrative procedures survey data</div><div class="blogcard-snippet external-blogcard-snippet">行政手続データ分析 MCP Server — 棚卸調査結果を自然言語で検索・集計 / MCP server for Japan&#039;s administrative procedures survey data &#8211; digital-go-jp/&#8230;</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://github.com/digital-go-jp/administrative-procedures-mcp" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">github.com</div></div></div></div></a>


<h2 class="wp-block-heading">環境構築</h2>



<p class="wp-block-paragraph">　デジ庁のGitHubのReadMeに従って、Git Cloneする。</p>



<p class="wp-block-paragraph">　仮想環境も新規で作成して、uvのみpipインストールする（Python3.14）。</p>



<p class="wp-block-paragraph">　Git Cloneしたフォルダで以下のコマンドを実行する。すると依存ライブラリとデータがセットアップされる。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd administrative-procedures-mcp
uv sync --extra excel
uv run apcli fetch procedures-survey-r6</code></pre></div>



<h2 class="wp-block-heading">MCPなしで実行してみる</h2>



<p class="wp-block-paragraph">　まずはデータの形を見てみる。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>uv run apcli query procedures-survey-r6 -q 申請等 -s 手続名 -s 所管府省庁 -s オンライン化の実施状況 -s 総手続件数 --limit 5</code></pre></div>



<div data-wp-context="{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }" data-wp-interactive="core/accordion" role="group" class="wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow">
<div data-wp-class--is-open="state.isOpen" data-wp-context="{ &quot;id&quot;: &quot;accordion-item-1&quot;, &quot;openByDefault&quot;: false }" data-wp-init="callbacks.initAccordionItems" data-wp-on-window--hashchange="callbacks.hashChange" class="wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow">
<h3 class="wp-block-accordion-heading"><button aria-expanded="false" aria-controls="accordion-item-1-panel" data-wp-bind--aria-expanded="state.isOpen" data-wp-on--click="actions.toggle" id="accordion-item-1" type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title">実行結果</span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3>



<div aria-labelledby="accordion-item-1" data-wp-bind--hidden="state.isHidden" data-wp-on--beforematch="actions.handleBeforeMatch" id="accordion-item-1-panel" role="region" class="wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow">
<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>{
  &quot;total&quot;: 64629,
  &quot;next_cursor&quot;: &quot;eyJvIjo1LCJ2IjoicHJvY2VkdXJlcy1zdXJ2ZXktcjYifQ&quot;,
  &quot;field_metadata&quot;: {
    &quot;手続ID&quot;: {
      &quot;role&quot;: &quot;identifier&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続を一意に識別するID。&quot;
    },
    &quot;所管府省庁&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続が規定されている法令（の条文）を所管する府省庁。&quot;
    },
    &quot;手続名&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続の名称。&quot;
    },
    &quot;法令名&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続の根拠法令の正式名称。&quot;
    },
    &quot;法令番号&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続の根拠法令の法令番号。&quot;
    },
    &quot;根拠条項号&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続が規定されている条、項、号の番号。複数ある場合は主となる条項号番号のみ。&quot;
    },
    &quot;手続類型&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続の類型。申請等、処分通知等（申請に基づく/基づかない）、交付等（民間手続）、縦覧等、作成・保存等に分類。&quot;
    },
    &quot;手続主体&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続を行う主体。国、独立行政法人等、地方等、国民等、民間事業者等、及びその組合せから選択。&quot;
    },
    &quot;手続の受け手&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;最終的に手続を受ける者。手続類型が「1 申請等」「2-1〜2-3」の手続が対象。国、独立行政法人等、地方等、国民等、民間事業者等、及びその組合せから選択。&quot;
    },
    &quot;経由機関&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続実施に際し、法令の規定に基づき特定の機関を経由する必要がある場合の経由機関の種別。&quot;
    },
    &quot;独立行政法人等の名称&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;独立行政法人等の名称。手続主体・受け手・経由機関に独立行政法人等が含まれる場合に記載。全ての独立行政法人等が対象の場合は「全独立行政法人等」。&quot;
    },
    &quot;事務区分&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続を地方公共団体が行う場合の事務の区分。手続主体または受け手が「地方等」を含む手続が対象。&quot;
    },
    &quot;府省共通手続&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;府省共通手続かどうか。○＝全府省共通、●＝一部の府省で共通、×＝非共通。&quot;
    },
    &quot;実施府省庁&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;手続を実施する府省。府省共通手続の場合、回答のあった実施府省庁を全て記載。フェーズ2調査項目。&quot;
    },
    &quot;オンライン化の実施状況&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続のオンライン実施状況。府省共通手続において一部の実施府省庁がオンライン化実施済の場合「5 一部実施済」。フェーズ2調査項目。&quot;
    },
    &quot;オンライン化の実施予定及び検討時の懸念点&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;オンライン化の実施予定及び検討時の懸念点。フェーズ2調査項目。府省共通手続の場合、実施府省庁の回答を全て並べている。&quot;
    },
    &quot;オンライン化実施時期&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;オンライン化の実施予定年度。懸念点が「0 オンライン化実施予定」の手続が対象。府省共通手続で実施時期が異なる場合、最も近い年度を選択の上「以降」を追記。&quot;
    },
    &quot;申請等における本人確認手法&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;申請等における本人確認手法（複数選択可）。手続類型が「1 申請等」かつオンライン化が「2 未実施」「3 適用除外」「4 その他」の手続が対象。&quot;
    },
    &quot;手数料等の納付有無&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続実施に必要な手数料等の有無。手続類型が「1 申請等」の手続が対象。&quot;
    },
    &quot;手数料等の納付方法&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;手数料等の納付方法（オフライン5種・オンライン6種から全て選択）。手続類型が「1 申請等」かつ「2 手数料等有り」の手続が対象。&quot;
    },
    &quot;手数料等のオンライン納付時の優遇措置&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;オンラインで手続を行う場合の手数料等の減免措置の有無。手数料等有りかつオンラインでの納付方法を選択した手続が対象。&quot;
    },
    &quot;処理期間(オンライン)&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;オンラインで行う場合の標準的な処理期間。手続類型が「1 申請等」かつオンライン化が「1 実施済」の手続が対象。府省共通手続の場合、実施府省庁の回答範囲を記載。&quot;
    },
    &quot;処理期間(非オンライン)&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;非オンラインで行う場合の標準的な処理期間。手続類型が「1 申請等」の手続が対象。府省共通手続の場合、実施府省庁の回答範囲を記載。&quot;
    },
    &quot;情報システム(申請)&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続主体から受け手に対する申請等に係るシステム名（申請システム、受付システム等）。手続類型が「1 申請等」かつオンライン化が「1 実施済」もしくは懸念点が「0 オンライン化実施予定」の手続が対象。&quot;
    },
    &quot;情報システム(事務処理)&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;申請等を受けた後の事務処理に係るシステム名。府省共通手続の場合、実施府省庁の回答を全て並べている。&quot;
    },
    &quot;総手続件数&quot;: {
      &quot;role&quot;: &quot;measure&quot;,
      &quot;type&quot;: &quot;integer&quot;,
      &quot;desc&quot;: &quot;令和5年度の年間の全手続件数。原則有効数字2桁以上、一部試算値を含む。地方等が実施する手続はサンプル自治体からの試算値。&quot;
    },
    &quot;オンライン手続件数&quot;: {
      &quot;role&quot;: &quot;measure&quot;,
      &quot;type&quot;: &quot;integer&quot;,
      &quot;desc&quot;: &quot;令和5年度のオンラインで手続を実施した件数。オンライン化が「1 実施済」の手続が対象。件数は原則有効数字2桁以上、一部試算値を含む。&quot;
    },
    &quot;非オンライン手続件数&quot;: {
      &quot;role&quot;: &quot;measure&quot;,
      &quot;type&quot;: &quot;integer&quot;,
      &quot;desc&quot;: &quot;令和5年度のオンライン以外の方法で手続を行った件数。件数は原則有効数字2桁以上、一部試算値を含む。&quot;
    },
    &quot;申請書等に記載させる情報&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;申請書等の記入に際し、入力が必須となる典型的な項目（複数選択可）。マイナンバー、法人番号、各種保険番号、住所、資本金等。手続類型が「1 申請等」の手続が対象。&quot;
    },
    &quot;申請時に添付させる書類&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;申請時に提出が必須となる典型的な書類（複数選択可）。住民票、戸籍、登記事項証明書、印鑑登録証明書、所得証明書等。手続類型が「1 申請等」の手続が対象。&quot;
    },
    &quot;添付書類等提出の撤廃/省略状況&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;添付書類等の提出に係る撤廃/省略の状況。手続類型が「1 申請等」かつ添付書類の選択がある手続が対象。&quot;
    },
    &quot;添付書類等の提出方法&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;添付書類等の提出方法（電子のみ、原紙のみ、選択可能等）。撤廃/省略状況が「2〜4」の手続が対象。&quot;
    },
    &quot;添付書類等への電子署名&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;添付書類等の提出に際し電子署名が必要かどうか。提出方法が「1 電子での提出のみ」の手続が対象。&quot;
    },
    &quot;添付形式等が定められた規定&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;添付書類等の提出方法及び添付形式等が規定されている文書の種類。撤廃/省略状況が「2〜4」の手続が対象。&quot;
    },
    &quot;手続が行われるイベント(個人)&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;個人のライフイベント（複数選択可）。妊娠、出生・こども、引越し、就職・転職、結婚・離婚、医療・健康、税金、年金の受給、死亡・相続等。&quot;
    },
    &quot;手続が行われるイベント(法人)&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;法人のライフイベント（複数選択可）。法人の設立、情報変更・役員変更、職員の採用・退職、入札・契約、事務所の新設・移転、法人の合併・分割等。&quot;
    },
    &quot;申請に関連する士業&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;代理で申請等が可能な士業（複数選択可）。弁護士、司法書士、行政書士、税理士、社会保険労務士等。手続類型が「1 申請等」の手続が対象。&quot;
    },
    &quot;申請を提出する機関&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;申請の提出先機関。手続類型が「1 申請等」かつ受け手が「1 国」〜「4-4 国、独立行政法人等又は地方等」の手続が対象。（受け手が独立行政法人等の場合は対象外）&quot;
    },
    &quot;オンライン率&quot;: {
      &quot;role&quot;: &quot;measure&quot;,
      &quot;type&quot;: &quot;float&quot;,
      &quot;desc&quot;: &quot;オンライン化実施済の手続種類数 / 全手続種類数&quot;
    }
  },
  &quot;provenance&quot;: {
    &quot;dataset_title&quot;: &quot;行政手続等の棚卸調査結果&quot;,
    &quot;published_at&quot;: &quot;2025-07-24&quot;,
    &quot;fetched_at&quot;: &quot;2026-08-19&quot;,
    &quot;source_url&quot;: &quot;https://www.digital.go.jp/resources/procedures-survey-results&quot;,
    &quot;publisher&quot;: &quot;デジタル庁 (Digital Agency of Japan)&quot;
  },
  &quot;query_params&quot;: {
    &quot;q&quot;: &quot;申請等&quot;,
    &quot;select&quot;: [
      &quot;手続名&quot;,
      &quot;所管府省庁&quot;,
      &quot;オンライン化の実施状況&quot;,
      &quot;総手続件数&quot;
    ],
    &quot;limit&quot;: 5
  },
  &quot;notes&quot;: {
    &quot;総手続件数&quot;: [
      &quot;件数は有効数字2桁以上の概数であり、一部試算値を含む。&quot;,
      &quot;地方等が実施する手続はサンプル自治体からの試算値を含む。&quot;
    ]
  },
  &quot;columns&quot;: [
    &quot;手続名&quot;,
    &quot;所管府省庁&quot;,
    &quot;オンライン化の実施状況&quot;,
    &quot;総手続件数&quot;
  ],
  &quot;rows&quot;: [
    [
      &quot;内閣総理大臣への届出&quot;,
      &quot;内閣官房&quot;,
      &quot;1 実施済&quot;,
      1496
    ],
    [
      &quot;内閣総理大臣への通知&quot;,
      &quot;内閣官房&quot;,
      &quot;1 実施済&quot;,
      246
    ],
    [
      &quot;交流基準に関する意見の提出&quot;,
      &quot;内閣官房&quot;,
      &quot;1 実施済&quot;,
      0
    ],
    [
      &quot;警察職員の服務の宣誓に関する内閣総理大臣の承認を求める申請&quot;,
      &quot;内閣官房&quot;,
      &quot;1 実施済&quot;,
      1
    ],
    [
      &quot;執務時間の変更等に関する内閣総理大臣の許可を求める申請&quot;,
      &quot;内閣官房&quot;,
      &quot;1 実施済&quot;,
      0
    ]
  ]
}</code></pre></div>
</div>
</div>
</div>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>uv run apcli summarize procedures-survey-r6 -g &quot;手続が行われるイベント(法人)&quot; -m count --explode &quot;手続が行われるイベント(法人)&quot;</code></pre></div>



<div data-wp-context="{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }" data-wp-interactive="core/accordion" role="group" class="wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow">
<div data-wp-class--is-open="state.isOpen" data-wp-context="{ &quot;id&quot;: &quot;accordion-item-2&quot;, &quot;openByDefault&quot;: false }" data-wp-init="callbacks.initAccordionItems" data-wp-on-window--hashchange="callbacks.hashChange" class="wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow">
<h3 class="wp-block-accordion-heading"><button aria-expanded="false" aria-controls="accordion-item-2-panel" data-wp-bind--aria-expanded="state.isOpen" data-wp-on--click="actions.toggle" id="accordion-item-2" type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title">実行結果</span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3>



<div aria-labelledby="accordion-item-2" data-wp-bind--hidden="state.isHidden" data-wp-on--beforematch="actions.handleBeforeMatch" id="accordion-item-2-panel" role="region" class="wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow">
<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>{
  &quot;total_group_count&quot;: 12,
  &quot;field_metadata&quot;: {
    &quot;手続ID&quot;: {
      &quot;role&quot;: &quot;identifier&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続を一意に識別するID。&quot;
    },
    &quot;所管府省庁&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続が規定されている法令（の条文）を所管する府省庁。&quot;
    },
    &quot;手続名&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続の名称。&quot;
    },
    &quot;法令名&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続の根拠法令の正式名称。&quot;
    },
    &quot;法令番号&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続の根拠法令の法令番号。&quot;
    },
    &quot;根拠条項号&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続が規定されている条、項、号の番号。複数ある場合は主となる条項号番号のみ。&quot;
    },
    &quot;手続類型&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続の類型。申請等、処分通知等（申請に基づく/基づかない）、交付等（民間手続）、縦覧等、作成・保存等に分類。&quot;
    },
    &quot;手続主体&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続を行う主体。国、独立行政法人等、地方等、国民等、民間事業者等、及びその組合せから選択。&quot;
    },
    &quot;手続の受け手&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;最終的に手続を受ける者。手続類型が「1 申請等」「2-1〜2-3」の手続が対象。国、独立行政法人等、地方等、国民等、民間事業者等、及びその組合せから選択。&quot;
    },
    &quot;経由機関&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続実施に際し、法令の規定に基づき特定の機関を経由する必要がある場合の経由機関の種別。&quot;
    },
    &quot;独立行政法人等の名称&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;独立行政法人等の名称。手続主体・受け手・経由機関に独立行政法人等が含まれる場合に記載。全ての独立行政法人等が対象の場合は「全独立行政法人等」。&quot;
    },
    &quot;事務区分&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続を地方公共団体が行う場合の事務の区分。手続主体または受け手が「地方等」を含む手続が対象。&quot;
    },
    &quot;府省共通手続&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;府省共通手続かどうか。○＝全府省共通、●＝一部の府省で共通、×＝非共通。&quot;
    },
    &quot;実施府省庁&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;手続を実施する府省。府省共通手続の場合、回答のあった実施府省庁を全て記載。フェーズ2調査項目。&quot;
    },
    &quot;オンライン化の実施状況&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続のオンライン実施状況。府省共通手続において一部の実施府省庁がオンライン化実施済の場合「5 一部実施済」。フェーズ2調査項目。&quot;
    },
    &quot;オンライン化の実施予定及び検討時の懸念点&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;オンライン化の実施予定及び検討時の懸念点。フェーズ2調査項目。府省共通手続の場合、実施府省庁の回答を全て並べている。&quot;
    },
    &quot;オンライン化実施時期&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;オンライン化の実施予定年度。懸念点が「0 オンライン化実施予定」の手続が対象。府省共通手続で実施時期が異なる場合、最も近い年度を選択の上「以降」を追記。&quot;
    },
    &quot;申請等における本人確認手法&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;申請等における本人確認手法（複数選択可）。手続類型が「1 申請等」かつオンライン化が「2 未実施」「3 適用除外」「4 その他」の手続が対象。&quot;
    },
    &quot;手数料等の納付有無&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続実施に必要な手数料等の有無。手続類型が「1 申請等」の手続が対象。&quot;
    },
    &quot;手数料等の納付方法&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;手数料等の納付方法（オフライン5種・オンライン6種から全て選択）。手続類型が「1 申請等」かつ「2 手数料等有り」の手続が対象。&quot;
    },
    &quot;手数料等のオンライン納付時の優遇措置&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;オンラインで手続を行う場合の手数料等の減免措置の有無。手数料等有りかつオンラインでの納付方法を選択した手続が対象。&quot;
    },
    &quot;処理期間(オンライン)&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;オンラインで行う場合の標準的な処理期間。手続類型が「1 申請等」かつオンライン化が「1 実施済」の手続が対象。府省共通手続の場合、実施府省庁の回答範囲を記載。&quot;
    },
    &quot;処理期間(非オンライン)&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;非オンラインで行う場合の標準的な処理期間。手続類型が「1 申請等」の手続が対象。府省共通手続の場合、実施府省庁の回答範囲を記載。&quot;
    },
    &quot;情報システム(申請)&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;手続主体から受け手に対する申請等に係るシステム名（申請システム、受付システム等）。手続類型が「1 申請等」かつオンライン化が「1 実施済」もしくは懸念点が「0 オンライン化実施予定」の手続が対象。&quot;
    },
    &quot;情報システム(事務処理)&quot;: {
      &quot;role&quot;: &quot;dimension&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;申請等を受けた後の事務処理に係るシステム名。府省共通手続の場合、実施府省庁の回答を全て並べている。&quot;
    },
    &quot;総手続件数&quot;: {
      &quot;role&quot;: &quot;measure&quot;,
      &quot;type&quot;: &quot;integer&quot;,
      &quot;desc&quot;: &quot;令和5年度の年間の全手続件数。原則有効数字2桁以上、一部試算値を含む。地方等が実施する手続はサンプル自治体からの試算値。&quot;
    },
    &quot;オンライン手続件数&quot;: {
      &quot;role&quot;: &quot;measure&quot;,
      &quot;type&quot;: &quot;integer&quot;,
      &quot;desc&quot;: &quot;令和5年度のオンラインで手続を実施した件数。オンライン化が「1 実施済」の手続が対象。件数は原則有効数字2桁以上、一部試算値を含む。&quot;
    },
    &quot;非オンライン手続件数&quot;: {
      &quot;role&quot;: &quot;measure&quot;,
      &quot;type&quot;: &quot;integer&quot;,
      &quot;desc&quot;: &quot;令和5年度のオンライン以外の方法で手続を行った件数。件数は原則有効数字2桁以上、一部試算値を含む。&quot;
    },
    &quot;申請書等に記載させる情報&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;申請書等の記入に際し、入力が必須となる典型的な項目（複数選択可）。マイナンバー、法人番号、各種保険番号、住所、資本金等。手続類型が「1 申請等」の手続が対象。&quot;
    },
    &quot;申請時に添付させる書類&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;申請時に提出が必須となる典型的な書類（複数選択可）。住民票、戸籍、登記事項証明書、印鑑登録証明書、所得証明書等。手続類型が「1 申請等」の手続が対象。&quot;
    },
    &quot;添付書類等提出の撤廃/省略状況&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;添付書類等の提出に係る撤廃/省略の状況。手続類型が「1 申請等」かつ添付書類の選択がある手続が対象。&quot;
    },
    &quot;添付書類等の提出方法&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;添付書類等の提出方法（電子のみ、原紙のみ、選択可能等）。撤廃/省略状況が「2〜4」の手続が対象。&quot;
    },
    &quot;添付書類等への電子署名&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;添付書類等の提出に際し電子署名が必要かどうか。提出方法が「1 電子での提出のみ」の手続が対象。&quot;
    },
    &quot;添付形式等が定められた規定&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;desc&quot;: &quot;添付書類等の提出方法及び添付形式等が規定されている文書の種類。撤廃/省略状況が「2〜4」の手続が対象。&quot;
    },
    &quot;手続が行われるイベント(個人)&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;個人のライフイベント（複数選択可）。妊娠、出生・こども、引越し、就職・転職、結婚・離婚、医療・健康、税金、年金の受給、死亡・相続等。&quot;
    },
    &quot;手続が行われるイベント(法人)&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;法人のライフイベント（複数選択可）。法人の設立、情報変更・役員変更、職員の採用・退職、入札・契約、事務所の新設・移転、法人の合併・分割等。&quot;
    },
    &quot;申請に関連する士業&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;代理で申請等が可能な士業（複数選択可）。弁護士、司法書士、行政書士、税理士、社会保険労務士等。手続類型が「1 申請等」の手続が対象。&quot;
    },
    &quot;申請を提出する機関&quot;: {
      &quot;role&quot;: &quot;attribute&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;multi_value&quot;: true,
      &quot;desc&quot;: &quot;申請の提出先機関。手続類型が「1 申請等」かつ受け手が「1 国」〜「4-4 国、独立行政法人等又は地方等」の手続が対象。（受け手が独立行政法人等の場合は対象外）&quot;
    },
    &quot;オンライン率&quot;: {
      &quot;role&quot;: &quot;measure&quot;,
      &quot;type&quot;: &quot;float&quot;,
      &quot;desc&quot;: &quot;オンライン化実施済の手続種類数 / 全手続種類数&quot;
    }
  },
  &quot;provenance&quot;: {
    &quot;dataset_title&quot;: &quot;行政手続等の棚卸調査結果&quot;,
    &quot;published_at&quot;: &quot;2025-07-24&quot;,
    &quot;fetched_at&quot;: &quot;2026-08-19&quot;,
    &quot;source_url&quot;: &quot;https://www.digital.go.jp/resources/procedures-survey-results&quot;,
    &quot;publisher&quot;: &quot;デジタル庁 (Digital Agency of Japan)&quot;
  },
  &quot;query_params&quot;: {
    &quot;group_by&quot;: [
      &quot;手続が行われるイベント(法人)&quot;
    ],
    &quot;explode&quot;: &quot;手続が行われるイベント(法人)&quot;
  },
  &quot;exploded_field&quot;: &quot;手続が行われるイベント(法人)&quot;,
  &quot;pre_explode_records&quot;: 75071,
  &quot;columns&quot;: [
    &quot;手続が行われるイベント(法人)&quot;,
    &quot;count&quot;
  ],
  &quot;rows&quot;: [
    [
      &quot;その他(個人も法人にもあてはまらない)&quot;,
      19360
    ],
    [
      &quot;その他イベント(法人)&quot;,
      17812
    ],
    [
      &quot;作業ごとの報告等&quot;,
      11847
    ],
    [
      &quot;定期的な報告等&quot;,
      7099
    ],
    [
      &quot;新しい事業の開始&quot;,
      5124
    ],
    [
      &quot;法人の情報変更・役員変更&quot;,
      4029
    ],
    [
      &quot;法人の承継・廃業&quot;,
      2958
    ],
    [
      &quot;法人の合併・分割&quot;,
      1893
    ],
    [
      &quot;事務所の新設・移転&quot;,
      1402
    ],
    [
      &quot;法人の設立&quot;,
      1280
    ],
    [
      &quot;職員の採用・退職&quot;,
      955
    ],
    [
      &quot;入札・契約&quot;,
      466
    ]
  ]
}</code></pre></div>
</div>
</div>
</div>



<p class="wp-block-paragraph">　「<code>--html -o out.html</code>」をコマンドに追加すると、html形式で実行結果が保存される。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>uv run apcli summarize procedures-survey-r6 -g &quot;手続が行われるイベント(法人)&quot; -m count --explode &quot;手続が行われるイベント(法人)&quot; --html -o out.html</code></pre></div>



<div class="wp-block-file"><a id="wp-block-file--media-eab8cc9f-69a5-451e-9418-4857488d69f5" href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/out.html">out.html</a><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/out.html" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-eab8cc9f-69a5-451e-9418-4857488d69f5">ダウンロード</a></div>



<h2 class="wp-block-heading">MCPを試してみる</h2>



<p class="wp-block-paragraph">　お手軽にChrome内蔵のPrompt API機能を使って実行してみる。以下のコマンドを実行すると、Chromeで専用ページが開かれる。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>uv run apcli preview </code></pre></div>



<p class="wp-block-paragraph">　実行結果はこんな感じ。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/image.png"><img loading="lazy" decoding="async" width="1183" height="1247" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/image.png" alt="" class="wp-image-719" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/image.png 1183w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/image-285x300.png 285w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/image-971x1024.png 971w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/image-768x810.png 768w" sizes="(max-width: 1183px) 100vw, 1183px" /></a></figure><p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/08/19/%e3%83%87%e3%82%b8%e3%82%bf%e3%83%ab%e5%ba%81%e3%81%8c%e5%85%ac%e9%96%8b%e3%81%97%e3%81%9f%e2%be%8f%e6%94%bf%e2%bc%bf%e7%b6%9a%e7%ad%89%e8%aa%bf%e6%9f%bb%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e8%a9%a6/">デジタル庁が公開した⾏政⼿続等調査データを試してみる</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2026/08/19/%e3%83%87%e3%82%b8%e3%82%bf%e3%83%ab%e5%ba%81%e3%81%8c%e5%85%ac%e9%96%8b%e3%81%97%e3%81%9f%e2%be%8f%e6%94%bf%e2%bc%bf%e7%b6%9a%e7%ad%89%e8%aa%bf%e6%9f%bb%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e8%a9%a6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">717</post-id>	</item>
		<item>
		<title>Panasonicの炊飯器のボタン修理</title>
		<link>https://toybox.uranos8685.mydns.jp/2026/08/07/panasonic%e3%81%ae%e7%82%8a%e9%a3%af%e5%99%a8%e3%81%ae%e3%83%9c%e3%82%bf%e3%83%b3%e4%bf%ae%e7%90%86/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2026/08/07/panasonic%e3%81%ae%e7%82%8a%e9%a3%af%e5%99%a8%e3%81%ae%e3%83%9c%e3%82%bf%e3%83%b3%e4%bf%ae%e7%90%86/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Fri, 07 Aug 2026 10:10:56 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=706</guid>

					<description><![CDATA[<p>はじめに 　2021年頃に買ったPanasonicのIH炊飯器（SR-FE109-K）の炊飯ボタンの反応が非常に悪くなってしまいました。 操作パネルの分解 　操作パネルの表はプラのシートが両面テープで貼られているだけなの [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/08/07/panasonic%e3%81%ae%e7%82%8a%e9%a3%af%e5%99%a8%e3%81%ae%e3%83%9c%e3%82%bf%e3%83%b3%e4%bf%ae%e7%90%86/">Panasonicの炊飯器のボタン修理</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">　2021年頃に買ったPanasonicのIH炊飯器（SR-FE109-K）の炊飯ボタンの反応が非常に悪くなってしまいました。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185340-1-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185340-1-1024x768.jpg" alt="" class="wp-image-708" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185340-1-1024x768.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185340-1-300x225.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185340-1-768x576.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185340-1-1536x1152.jpg 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185340-1-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">操作パネルの分解</h2>



<p class="wp-block-paragraph">　操作パネルの表はプラのシートが両面テープで貼られているだけなので、カッターナイフなどでうまくペリッとやっちゃってください。</p>



<p class="wp-block-paragraph">　透明なプラのカバーがネジ3点で留まっているので、それを外したのが下の状態です。（写真撮り忘れたので、修理後の動作確認写真を使いました）</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-1024x768.jpg" alt="" class="wp-image-710" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-1024x768.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-300x225.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-768x576.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-1536x1152.jpg 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">壊れたボタンの取り外し</h2>



<p class="wp-block-paragraph">　ハンダごてを使って、壊れたボタンを基板の裏から外してください。</p>



<p class="wp-block-paragraph">　スイッチは6x6x5mmのモノが適合します。私は以下のスイッチを使いました（アフィリエイトリンクではありません！）。</p>


<a rel="noopener" href="https://www.amazon.co.jp/MKBKLLJY-%E3%83%A2%E3%83%BC%E3%83%A1%E3%83%B3%E3%82%BF%E3%83%AA%E3%83%BC-%E3%82%A2%E3%82%BD%E3%83%BC%E3%83%88%E3%83%A1%E3%83%B3%E3%83%88-%E3%82%AD%E3%83%83%E3%83%88%E3%80%81%E3%81%AF%E3%82%93%E3%81%A0%E3%83%AF%E3%82%A4%E3%83%A4%E4%BB%98%E3%81%8D%E5%AF%BE%E5%BF%9C-%E3%83%96%E3%83%AC%E3%83%83%E3%83%89%E3%83%9C%E3%83%BC%E3%83%89/dp/B0F6SQW1G5/ref=sr_1_2_sspa?crid=37URTDPI6ISN&#038;dib=eyJ2IjoiMSJ9.KJ1JBcMBTtCmdf5Q4g2wqTTpChg84d_xdYLXuKhfx3GX3WRd4FXHNiQZrKPNVZS-gCyuMy7vWoY0unvBZS7AiIeZAUi8OLf66xIdCCdcN6kJIe-ECRUD7q26nNdGIrnH6dRIIxeHaVFCQoSzrV_pkYg4iO5SEoYfZPs6kQlVwrOcLPsQDlkMaFXneJRgGHWmOq5PBAbwc-cma0yLccqarwB9ivehphTQPj2Niwm7V376coFeHXF1Z88dO_TNeHqMCyTSV-m_cIqI3hut7hhkiYcPWBfxLQYSzretTUu1O_s.pcYCRAjC7uNvVuKs4R6g5CXQwSmJOVS0_DqWlKBS-To&#038;dib_tag=se&#038;keywords=%E3%82%BF%E3%82%AF%E3%83%88%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%2B2%E3%83%94%E3%83%B3%2B6mm&#038;qid=1786097142&#038;sprefix=%2Caps%2C252&#038;sr=8-2-spons&#038;ufe=app_do%3Aamzn1.fos.f851e75d-a860-4774-84a1-525c65264f29&#038;sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&#038;th=1" title="MKBKLLJY 150個 2ピン 瞬間タクタイル タクト プッシュボタンスイッチ 6 x 6 x 5mm ミニマイクロタクトスイッチ ON/OFF アソートキット はんだワイヤ付き、対応 パネル PCB ブレッドボード 回路基板" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/cocoon-resources/blog-card-cache/76f87787b892a27ca56f85af319bf9f6.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">MKBKLLJY 150個 2ピン 瞬間タクタイル タクト プッシュボタンスイッチ 6 x 6 x 5mm ミニマイクロタクトスイッチ ON/OFF アソートキット はんだワイヤ付き、対応 パネル PCB ブレッドボード 回路基板</div><div class="blogcard-snippet external-blogcard-snippet">詳細： 製品名：モーメンタリータクタイルスイッチ 操作モード：プッシュボタン/オン/オフ 定格電流：5E+1ミリアンペア 動作電圧：12ボルト 接点タイプ：ノーマルオープン コネクタタイプ：スルーホール 端子数：2ピン 接点材質：銀メッキ真&#8230;</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.amazon.co.jp/dp/B0F6SQW1G5/ref=sr_1_2_sspa" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.amazon.co.jp</div></div></div></div></a>


<p class="wp-block-paragraph">　左が純正、右がAmazonのスイッチです。四角くはなりますが、ちゃんとはまりました。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184354-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184354-1024x768.jpg" alt="" class="wp-image-711" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184354-1024x768.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184354-300x225.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184354-768x576.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184354-1536x1152.jpg 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184354-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">　付け替えた図。高さもいい感じです。まあ、多少の高さはハンダする際に浮かせたりすれば調整できなくもないです。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184606-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184606-1024x768.jpg" alt="" class="wp-image-712" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184606-1024x768.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184606-300x225.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184606-768x576.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184606-1536x1152.jpg 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_184606-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">動作確認</h2>



<p class="wp-block-paragraph">　元に戻して動作確認。無事動きました。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-scaled.jpg"><img loading="lazy" decoding="async" width="1024" height="768" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-1024x768.jpg" alt="" class="wp-image-710" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-1024x768.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-300x225.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-768x576.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-1536x1152.jpg 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/08/IMG_20260807_185129-1-2048x1536.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">どこかでみた写真だ…</figcaption></figure>



<p class="wp-block-paragraph">　終わり！</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/08/07/panasonic%e3%81%ae%e7%82%8a%e9%a3%af%e5%99%a8%e3%81%ae%e3%83%9c%e3%82%bf%e3%83%b3%e4%bf%ae%e7%90%86/">Panasonicの炊飯器のボタン修理</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2026/08/07/panasonic%e3%81%ae%e7%82%8a%e9%a3%af%e5%99%a8%e3%81%ae%e3%83%9c%e3%82%bf%e3%83%b3%e4%bf%ae%e7%90%86/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">706</post-id>	</item>
		<item>
		<title>WordPressで重めの記事が投稿できなかった場合の対処法</title>
		<link>https://toybox.uranos8685.mydns.jp/2026/07/30/wordpress%e3%81%a7%e9%87%8d%e3%82%81%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8c%e6%8a%95%e7%a8%bf%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e5%af%be%e5%87%a6%e6%b3%95/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2026/07/30/wordpress%e3%81%a7%e9%87%8d%e3%82%81%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8c%e6%8a%95%e7%a8%bf%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e5%af%be%e5%87%a6%e6%b3%95/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Wed, 29 Jul 2026 18:37:16 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=702</guid>

					<description><![CDATA[<p>　なぜかメディアファイルモリモリの記事を投稿しようとすると、投稿エラーになってしまったため、いろいろ試行錯誤した結果の解決策を備忘録として記録する。 WordPressの実行環境 サーバー：Synology NASMar [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/07/30/wordpress%e3%81%a7%e9%87%8d%e3%82%81%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8c%e6%8a%95%e7%a8%bf%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e5%af%be%e5%87%a6%e6%b3%95/">WordPressで重めの記事が投稿できなかった場合の対処法</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">　なぜかメディアファイルモリモリの記事を投稿しようとすると、投稿エラーになってしまったため、いろいろ試行錯誤した結果の解決策を備忘録として記録する。</p>



<h2 class="wp-block-heading">WordPressの実行環境</h2>



<p class="wp-block-paragraph">サーバー：Synology NAS<br>MariaDB：Synologyパッケージセンターからインスコ<br>WordPress：WebStationでサービスを立てている</p>



<h2 class="wp-block-heading">対処法</h2>



<p class="wp-block-paragraph">　結論はMariaDBのパケットサイズ制限（max_allowed_packet）に引っかかっていたために投稿エラーになっていた。<br>　設定変更はSynologyのWebUI上では出来ないため、SSH接続したターミナルでコマンドを実行していく。</p>



<p class="wp-block-paragraph">　ターミナルエミュレータには、TeraTermを使った。</p>



<h3 class="wp-block-heading">設定ファイル（.cnf）の検索</h3>



<p class="wp-block-paragraph">　SSHでSynologyNASに接続したら、以下のコマンドを叩いて既存の.cnfファイルがないか確認する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo find /volume1/@appstore -iname &quot;my.cnf&quot; 2&gt;/dev/null</code></pre></div>



<p class="wp-block-paragraph">　だいたい、「/volume1/@appstore/MariaDB10/xxx/xxx/mariadbxx/etc/mysqld.conf」のようなものがデフォルトで作成されているはず。<br>　sudo catコマンドで中身を確認する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo cat /volume1/@appstore/MariaDB10/xxx/xxx/mariadbxx/etc/mysqld.conf</code></pre></div>



<p class="wp-block-paragraph">　すると、mysqld.confの中身が表示される。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky st-blue">
<p class="wp-block-paragraph">DO NOT EDIT THIS FILE !!!</p>



<p class="wp-block-paragraph">You can change the port on user interface of MariaDB10.</p>



<p class="wp-block-paragraph">Please add other custom configuration to /var/packages/MariaDB10/etc/my.cnf</p>



<p class="wp-block-paragraph">#<br>[client]<br>socket = /run/mysqld/mysqld10.sock</p>



<p class="wp-block-paragraph">[mysqld]<br>bind-address = 0.0.0.0<br>socket = /run/mysqld/mysqld10.sock<br>pid-file = /run/mysqld/mysqld10.pid<br>skip-external-locking<br>key_buffer_size = 16K<br>max_allowed_packet = 1M<br>table_open_cache = 4000<br>read_buffer_size = 256K<br>read_rnd_buffer_size = 256K<br>net_buffer_length = 2K<br>thread_stack = 240K<br>innodb_data_home_dir = /var/packages/MariaDB10/target/mysql<br>innodb_data_file_path = ibdata1:10M:autoextend<br>innodb_log_group_home_dir = /var/packages/MariaDB10/target/mysql<br>innodb_buffer_pool_size = 16M<br>innodb_file_per_table = 1<br>innodb_flush_method = fsync<br>synology_password_check = FORCE_PLUS_PERMANENT</p>



<p class="wp-block-paragraph">[mysqld_safe]<br>open_files_limit=5000</p>



<p class="wp-block-paragraph">[mysqldump]<br>quick<br>max_allowed_packet = 16M</p>
</div>



<p class="wp-block-paragraph">この中のmax_allowed_packet = 16Mを拡張する必要がある。ただし、直接編集せずに/var/packages/MariaDB10/etc/my.cnfに設定値を書き込むよう注意書きがあるため、その通りに処理をする（人によってパスは違うかも）。</p>



<p class="wp-block-paragraph">　まずは、/var/packages/MariaDB10/etc/my.cnfがあるかを確認。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo cat /var/packages/MariaDB10/etc/my.cnf</code></pre></div>



<p class="wp-block-paragraph">　あってもなくても、以下のコマンドでmy.cnfを開く（または新規作成）。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-bash" data-lang="Bash"><code>sudo vi /var/packages/MariaDB10/etc/my.cnf</code></pre></div>



<h4 class="wp-block-heading">（max_allowed_packetがない場合）</h4>



<p class="wp-block-paragraph">　iキーを押して編集モードにする。画面下に「<span class="marker">&#8212; INSERT &#8212;</span>」と表示されればOK。<br>　この状態で以下の内容を入力する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>[mysqld]
max_allowed_packet = 512M</code></pre></div>



<p class="wp-block-paragraph">　Escキーで編集モードを終了する（画面下&#8211; INSERT &#8211;が消える）。</p>



<h4 class="wp-block-heading">（max_allowed_packetがすでに入力済みの場合）</h4>



<p class="wp-block-paragraph">　矢印キーで「max_allowed_packet」の行にカーソルを合わせ、ddと入力するとその行が消える。<br>　あとはiキーで編集モードにした上で「max_allowed_packet = 512M」のような形で更新したい値を入力する。</p>



<h4 class="wp-block-heading">（max_allowed_packetがある場合・ない場合共通）</h4>



<p class="wp-block-paragraph">　入力した値を保存する。保存は以下のコマンドを入力する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>:wq</code></pre></div>



<p class="wp-block-paragraph">　編集画面も保存と同時に閉じられて元のターミナルに戻るので、以下のコマンドで作成したファイルを読めるか確認する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cat /var/packages/MariaDB10/etc/my.cnf</code></pre></div>



<p class="wp-block-paragraph">　書き込んだ値が表示されればOK。あとはMariaDBを再起動し、Wordpressに再ログインして記事を保存できるか確認するだけ。</p><p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/07/30/wordpress%e3%81%a7%e9%87%8d%e3%82%81%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8c%e6%8a%95%e7%a8%bf%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e5%af%be%e5%87%a6%e6%b3%95/">WordPressで重めの記事が投稿できなかった場合の対処法</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2026/07/30/wordpress%e3%81%a7%e9%87%8d%e3%82%81%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%8c%e6%8a%95%e7%a8%bf%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%8b%e3%81%a3%e3%81%9f%e5%a0%b4%e5%90%88%e3%81%ae%e5%af%be%e5%87%a6%e6%b3%95/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">702</post-id>	</item>
		<item>
		<title>VSCodeでContinueを使ってみる</title>
		<link>https://toybox.uranos8685.mydns.jp/2026/04/17/vscode%e3%81%a7continue%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2026/04/17/vscode%e3%81%a7continue%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Thu, 16 Apr 2026 15:14:00 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=493</guid>

					<description><![CDATA[<p>1．Ollamaをホストしている端末自身でContinueを利用する場合 ①Ollamaをインストールする 　以下のリンク先からインストーラーをダウンロード・インスコしておく。ついでに使用したいモデルもOllamaにセッ [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/04/17/vscode%e3%81%a7continue%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/">VSCodeでContinueを使ってみる</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">1．Ollamaをホストしている端末自身でContinueを利用する場合</h2>



<h3 class="wp-block-heading">①Ollamaをインストールする</h3>



<p class="wp-block-paragraph">　以下のリンク先からインストーラーをダウンロード・インスコしておく。ついでに使用したいモデルもOllamaにセットアップしておく。<br>　基本的にContinueを使用している間（チャット・入力支援など）はモデルがロードされっぱなしになるので軽めのモデルがおすすめ。<br>　私はQwen2.5-Coderを使ってます。VRAMの使用量は1.4GB程度です。</p>


<a rel="noopener" href="https://ollama.com/download" title="Download Ollama on macOS" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/cocoon-resources/blog-card-cache/03fb1a10ef158f8986c9778334c2af42.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Download Ollama on macOS</div><div class="blogcard-snippet external-blogcard-snippet">Download Ollama for macOS</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ollama.com/download/mac" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ollama.com</div></div></div></div></a>

<a rel="noopener" href="https://ollama.com/library/qwen2.5-coder" title="qwen2.5-coder" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/cocoon-resources/blog-card-cache/03fb1a10ef158f8986c9778334c2af42.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">qwen2.5-coder</div><div class="blogcard-snippet external-blogcard-snippet">The latest series of Code-Specific Qwen models, with significant improvements in code generation, code reasoning, and co&#8230;</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ollama.com/qwen2.5-coder" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ollama.com</div></div></div></div></a>


<h3 class="wp-block-heading">②VSCodeにContinueをインストールする</h3>



<p class="wp-block-paragraph">　以下の拡張機能をインストールしておく。</p>


<a rel="noopener" href="https://marketplace.visualstudio.com/items?itemName=Continue.continue" title="Continue - open-source AI code agent - Visual Studio Marketplace" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/cocoon-resources/blog-card-cache/8c44ad48bf174fe07caab1ab6b9b1e10.default" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Continue &#8211; open-source AI code agent &#8211; Visual Studio Marketplace</div><div class="blogcard-snippet external-blogcard-snippet">Extension for Visual Studio Code &#8211; The leading open-source AI code agent</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://marketplace.visualstudio.com/items?itemName=Continue.continue" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">marketplace.visualstudio.com</div></div></div></div></a>


<h3 class="wp-block-heading">③－1 VSCodeの設定（Ollamaをホストしている端末自身でContinueを使う場合）</h3>



<p class="wp-block-paragraph">　公式ドキュメントは以下のリンク先にあります。ザックリ使えるよう備忘録程度の内容です。</p>


<a rel="noopener" href="https://docs.continue.dev/customize/model-providers/top-level/ollama" title="How to Configure Ollama with Continue | Continue Docs" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fdocs.continue.dev%2Fcustomize%2Fmodel-providers%2Ftop-level%2Follama?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">How to Configure Ollama with Continue | Continue Docs</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://docs.continue.dev/customize/model-providers/top-level/ollama" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">docs.continue.dev</div></div></div></div></a>

<a rel="noopener" href="https://docs.continue.dev/guides/ollama-guide" title="Using Ollama with Continue: A Developer&#x27;s Guide | Continue Docs" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fdocs.continue.dev%2Fguides%2Follama-guide?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Using Ollama with Continue: A Developer&#x27;s Guide | Continue Docs</div><div class="blogcard-snippet external-blogcard-snippet">Complete guide to setting up Ollama with Continue for local AI development. Learn installation, configuration, model sel&#8230;</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://docs.continue.dev/guides/ollama-guide" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">docs.continue.dev</div></div></div></div></a>


<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue1-1024x683.jpg" alt="" class="wp-image-495" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue1-1024x683.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue1-300x200.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue1-768x512.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue1.jpg 1194w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　Continueをインストールすると、プライマリサイドバーにオレンジ枠のアイコンが追加されます。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="446" height="367" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue2.jpg" alt="" class="wp-image-496" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue2.jpg 446w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue2-300x247.jpg 300w" sizes="(max-width: 446px) 100vw, 446px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　クリックするとだいたいこんな感じで表示されると思います（既にセットアップ済みの状態なのでインスコした直後とは違うカモ🦆）。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="563" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue3-1024x563.jpg" alt="" class="wp-image-498" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue3-1024x563.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue3-300x165.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue3-768x423.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue3.jpg 1047w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　歯車マークを押すと設定が可能です。Modelsタブを押すと、チャット・オートコンプリート・コーディングでどのモデルを使うか指定できます。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="924" height="935" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue8.jpg" alt="" class="wp-image-507" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue8.jpg 924w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue8-296x300.jpg 296w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue8-768x777.jpg 768w" sizes="(max-width: 924px) 100vw, 924px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　左上の丸印に＋のボタンをおすとチャットモデルの追加ができます。<br>　ProviderはOllama、ModelはAutodetectを選んでおくと、インストール済みのモデルを探してくれます。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="422" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue4-2-1024x422.jpg" alt="" class="wp-image-506" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue4-2-1024x422.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue4-2-300x124.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue4-2-768x316.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue4-2.jpg 1522w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　ドロップダウンリストにOllamaにインストール済みのモデルが出てくると思います。<br>　ちなみにドロップダウンリストの横の歯車マークを押すとyamlファイルが表示されます。自分で各機能でどのモデルを表示させるか定義することが出来ます。<br>　私はautocompleteでqwen2.5-coderだけを出すような設定にしています。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="862" height="768" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue5.jpg" alt="" class="wp-image-503" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue5.jpg 862w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue5-300x267.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue5-768x684.jpg 768w" sizes="(max-width: 862px) 100vw, 862px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　早速オートコンプリート機能を試してみましょう。defと打っただけで候補を提案してくれました。もちろんローカルLLMなのでネットワーク通信は行われません。また、モデルはqwen2.5-coderを使っています。</p>
</div>
</div>



<h3 class="wp-block-heading">③－2 VSCodeの設定（Ollamaをホストしていない同一ネットワーク上の端末からContinueを使う場合）</h3>



<p class="wp-block-paragraph">　基本的には③－1ですが、少し異なる部分がありますのでそこを補足します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="618" height="585" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue6.jpg" alt="" class="wp-image-504" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue6.jpg 618w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue6-300x284.jpg 300w" sizes="(max-width: 618px) 100vw, 618px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　まず、Ollamaをホストしている端末のシステム環境変数に「OLLAMA_HOST」と「OLLAMA_ORIGINS」を追加します。<br>　OLLAMA_HOSTはリクエストを待ち受けるインターフェースとポートを指定します。0.0.0.0で全てのLAN上のIPからの通信を受け付けます。<br>　OLLAMA_ORIGINSはCORSを許可するオリジンをカンマ区切りで指定します。*をつけておくとすべて許可します。<br>　</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="515" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue7-1024x515.jpg" alt="" class="wp-image-505" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue7-1024x515.jpg 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue7-300x151.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue7-768x386.jpg 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/continue7.jpg 1429w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　Continueを使いたい端末（非Ollamaホスト端末）にContinueをインストールし、モデルの設定を開きます。<br>　丸印に＋のアイコンからOllamaをプロバイダーに選んでいいのですが、Ollamaが入っていないのでモデルは当然見つかりません。<br>　ドロップダウンリスト横の歯車マークを押し、config.yamlに画像のようにapiBaseにOllamaをインストールした端末のipアドレスとOllamaのリクエストを受け付けているポート番号（デフォは11434）を指定し、モデル名を正確に記載します。<br>　ここでいうモデル名はOllama上で表示されているモデル名です。huggingface等のモデル名と違う名前で自分でモデルをインポートしている場合は、その名前を記載しないと呼び出せませんので注意。<br>　簡単な確認方法は下の図のように、Ollamaを立ち上げた際のチャット画面にあるリストを確認するのがいいでしょう。</p>
</div>
</div>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="802" height="632" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-12.png" alt="" class="wp-image-509" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-12.png 802w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-12-300x236.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-12-768x605.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></figure>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="971" height="700" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/04/continue9.jpg" alt="" class="wp-image-516" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/04/continue9.jpg 971w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/04/continue9-300x216.jpg 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/04/continue9-768x554.jpg 768w" sizes="(max-width: 971px) 100vw, 971px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　では、さっそくオートコンプリート機能を使ってみます。今回Continueをインストールした端末はMacStudioの仮想マシンにインストールしたWindowsにリモートデスクトップ接続でテストします。メモリは8GBしか割り当てていないため、LLMを呼び起こすには厳しいスペックです。<br>　しかし、Ollamaをホストしている端末は別PCのため、ばっちりオートコンプリートの恩恵を受けられます。<br>　ネットワークへの負荷もほぼなく、せいぜい入力した際に数百KB程度の通信が発生する程度だと思います。</p>
</div>
</div>



<p class="wp-block-paragraph"></p><p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/04/17/vscode%e3%81%a7continue%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/">VSCodeでContinueを使ってみる</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2026/04/17/vscode%e3%81%a7continue%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">493</post-id>	</item>
		<item>
		<title>Presenton+Ollammaでパワーポイント資料を生成してみた</title>
		<link>https://toybox.uranos8685.mydns.jp/2026/02/18/presentonollamma%e3%81%a7%e3%83%91%e3%83%af%e3%83%bc%e3%83%9d%e3%82%a4%e3%83%b3%e3%83%88%e8%b3%87%e6%96%99%e3%82%92%e7%94%9f%e6%88%90%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2026/02/18/presentonollamma%e3%81%a7%e3%83%91%e3%83%af%e3%83%bc%e3%83%9d%e3%82%a4%e3%83%b3%e3%83%88%e8%b3%87%e6%96%99%e3%82%92%e7%94%9f%e6%88%90%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 22:58:00 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=563</guid>

					<description><![CDATA[<p>1．はじめに 　GeminiにPowerPoint資料を作成できるCanvas機能があることを知り、ローカルLLMでも生成できるツールはないか調べていると、PresentonというOSSがあることを知ったので、早速試して [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/02/18/presentonollamma%e3%81%a7%e3%83%91%e3%83%af%e3%83%bc%e3%83%9d%e3%82%a4%e3%83%b3%e3%83%88%e8%b3%87%e6%96%99%e3%82%92%e7%94%9f%e6%88%90%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f/">Presenton+Ollammaでパワーポイント資料を生成してみた</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">1．はじめに</h2>



<p class="wp-block-paragraph">　GeminiにPowerPoint資料を作成できるCanvas機能があることを知り、ローカルLLMでも生成できるツールはないか調べていると、PresentonというOSSがあることを知ったので、早速試してみました。</p>



<h2 class="wp-block-heading">2．Presentonのインストール</h2>



<p class="wp-block-paragraph">　以下からインストーラーをダウンロードします。</p>


<a rel="noopener" href="https://presenton.ai/download" title="Download Free AI Presentation App | Presenton" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/cocoon-resources/blog-card-cache/05e00c97603650b580818c4527a441b5.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Download Free AI Presentation App | Presenton</div><div class="blogcard-snippet external-blogcard-snippet">Download Presenton for Windows, macOS, or Linux. Create AI presentations locally with OpenAI, Gemini, or Ollama, then ex&#8230;</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://presenton.ai/download" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">presenton.ai</div></div></div></div></a>


<p class="wp-block-paragraph">　全てのユーザーに対しインストールするか、現在のユーザーのみにインストールするか聞かれるのみであとはポチポチ進めていくだけです。インストール対象はお好みの方を選んでください。私は全てのユーザーを対象にインストールしました。</p>



<p class="wp-block-paragraph">　インストール先のフォルダパスにスペースなどが含まれるとエラーになる場合があるため、私はCドライブ直下にPresentonフォルダを作成し、インストールしました。</p>



<h2 class="wp-block-heading">3．Presentonの設定</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="577" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-37-1024x577.png" alt="" class="wp-image-575" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-37-1024x577.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-37-300x169.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-37-768x433.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-37-240x135.png 240w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-37-320x180.png 320w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-37-640x360.png 640w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-37.png 1266w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　Presentonを立ち上げるとセットアップ画面になります。モードはTemplate Presentation Modeのままでおｋ。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="944" height="1024" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-39-944x1024.png" alt="" class="wp-image-577" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-39-944x1024.png 944w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-39-277x300.png 277w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-39-768x833.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-39.png 1161w" sizes="(max-width: 944px) 100vw, 944px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　次の画面ではLLMを選択します。Text ProviderにはOllama、OllamaURLはOllamaをホストしている端末のIPアドレス:Ollamaポート番号を入れます。Ollamaをホストしている端末がPresentonを入れた端末と同一であれば、Use default Ollama URLのリンクを押せばいいです。ただし、ポート番号を変更している場合は自分で直してください。</p>



<p class="wp-block-paragraph">　choose a supported modelにはOllamaに入っているモデルを選んでおいてください。リストにあるモデルが、Ollamaに1つもなければOllamaにモデルを追加すること。</p>



<p class="wp-block-paragraph">　その下にImage Generation Settingsがあり、これを有効にすることで画像生成もやってくれるようになります。ただ、完全ローカルで生成するにはComfy UIしか選択肢はありません。今回これはやりません。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="639" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-41-1024x639.png" alt="" class="wp-image-579" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-41-1024x639.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-41-300x187.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-41-768x479.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-41.png 1161w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　これでセットアップ完了です。</p>
</div>
</div>



<h2 class="wp-block-heading">3.パワーポイント資料作成</h2>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="639" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-42-1024x639.png" alt="" class="wp-image-580" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-42-1024x639.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-42-300x187.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-42-768x479.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-42.png 1161w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　作成画面はこんな感じ。</p>



<p class="wp-block-paragraph">　作ってほしい内容をWrite promptに入力します。その下には、ドキュメントなどを添付することが可能で、これも踏まえてパワーポイントの作成が行われます。</p>



<p class="wp-block-paragraph">　Write promptの上にはスライド枚数、言語、細々としたオプション設定が可能です。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="680" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-45-1024x680.png" alt="" class="wp-image-583" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-45-1024x680.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-45-300x199.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-45-768x510.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-45-1536x1020.png 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-45.png 1869w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　生成を始めるとこんな感じの画面になります。しっかり、GPUを使ってくれています。</p>



<p class="wp-block-paragraph">　もちろんローカル生成なので、ネットワーク通信は発生していません。もし、モデルが読み込まれないなどがあれば、設定でOllamaのモデル名を見直してください。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="708" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-47-1024x708.png" alt="" class="wp-image-585" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-47-1024x708.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-47-300x207.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-47-768x531.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-47-1536x1061.png 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-47.png 1903w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　少し待つと、こんな感じで各スライドの内容が生成されます。</p>



<p class="wp-block-paragraph">　内容の修正、スライドの削除などの編集が行えます。</p>



<p class="wp-block-paragraph">　問題なければ、右下のSelect a Templateをクリック。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="706" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-48-1024x706.png" alt="" class="wp-image-586" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-48-1024x706.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-48-300x207.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-48-768x530.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-48-1536x1059.png 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/image-48.png 1905w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　ここではパワーポイントのテーマを選べます。Customで自分の好みのテンプレートを作ることも出来ますが、Libre Officeをインストールしておく必要があります。</p>



<p class="wp-block-paragraph">　今回はLayouts-22を選んでみました。そしたら、Generate Presentationをクリックして生成させます。</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="534" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/presenton1-1024x534.png" alt="" class="wp-image-589" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/presenton1-1024x534.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/presenton1-300x156.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/presenton1-768x400.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/presenton1-1536x801.png 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/06/presenton1-2048x1068.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<p class="wp-block-paragraph">　少し待つと、1枚ずつスライドが生成されます。右端にLLMとのチャットウィンドウがあり、対話式で指示を出すこともできます。</p>



<p class="wp-block-paragraph">　また、スライドの内容もここで手動で編集が可能です。</p>



<p class="wp-block-paragraph">　終わったら、右上のExportでpptxファイルを出力します。</p>
</div>
</div>



<p class="wp-block-paragraph"></p><p>The post <a href="https://toybox.uranos8685.mydns.jp/2026/02/18/presentonollamma%e3%81%a7%e3%83%91%e3%83%af%e3%83%bc%e3%83%9d%e3%82%a4%e3%83%b3%e3%83%88%e8%b3%87%e6%96%99%e3%82%92%e7%94%9f%e6%88%90%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f/">Presenton+Ollammaでパワーポイント資料を生成してみた</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2026/02/18/presentonollamma%e3%81%a7%e3%83%91%e3%83%af%e3%83%bc%e3%83%9d%e3%82%a4%e3%83%b3%e3%83%88%e8%b3%87%e6%96%99%e3%82%92%e7%94%9f%e6%88%90%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">563</post-id>	</item>
		<item>
		<title>LRC Maker(Uranos8685)　配布ページ</title>
		<link>https://toybox.uranos8685.mydns.jp/2025/09/29/lrc-makeruranos8685%e3%80%80%e9%85%8d%e5%b8%83%e3%83%9a%e3%83%bc%e3%82%b8/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2025/09/29/lrc-makeruranos8685%e3%80%80%e9%85%8d%e5%b8%83%e3%83%9a%e3%83%bc%e3%82%b8/#comments</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Mon, 29 Sep 2025 14:41:05 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=312</guid>

					<description><![CDATA[<p>はじめに 　Plex Media Serverには、lrcファイルを認識し、Apple Musicのように再生位置にリンクした歌詞表示をしてくれる機能があります。 　lrcファイルとは基本的に「[mm:ss.xx(=1/ [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/09/29/lrc-makeruranos8685%e3%80%80%e9%85%8d%e5%b8%83%e3%83%9a%e3%83%bc%e3%82%b8/">LRC Maker(Uranos8685)　配布ページ</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">　Plex Media Serverには、lrcファイルを認識し、Apple Musicのように再生位置にリンクした歌詞表示をしてくれる機能があります。</p>



<p class="wp-block-paragraph">　lrcファイルとは基本的に「[mm:ss.xx(=1/100秒)]歌詞テキスト」を記録したものです。</p>



<p class="wp-block-paragraph">　Plex Media ServerではUTF-8形式のlrcファイルを認識できるのですが、既存のソフトで使いやすいものがなかったので作成しました。思ったよりも出来がよかったので、公開しようと思います。</p>



<p class="wp-block-paragraph">　私のお気に入りポイントは、クリップボードから歌詞の取り込みができること、既存のlrcを取り込み一部の歌詞のタイムスタンプのみ変更すること、取り込んだ歌詞データをタイムスタンプを付与しながら編集できること、シークバーで再生位置を自由に変えられることです。なかなか既存のlrc作成ツールにはない機能(私が見つけられていないだけかもしれませんが)で、lrcファイルの作成が捗ります。</p>



<h2 class="wp-block-heading">LRC Maker(Uranos8685)　スクリーンショット</h2>



<p class="has-text-align-center wp-block-paragraph">実行イメージ(macOS版 v1.0.2.1)</p>



<figure class="wp-block-image aligncenter size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/01/lrc_maker_v1.0.2.1_screenshot.png"><img loading="lazy" decoding="async" width="1024" height="850" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/01/lrc_maker_v1.0.2.1_screenshot-1024x850.png" alt="" class="wp-image-424" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/01/lrc_maker_v1.0.2.1_screenshot-1024x850.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/01/lrc_maker_v1.0.2.1_screenshot-300x249.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/01/lrc_maker_v1.0.2.1_screenshot-768x637.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2026/01/lrc_maker_v1.0.2.1_screenshot.png 1312w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">おまけ情報</h2>



<p class="wp-block-paragraph">　LRC Makerを作っている間に、PlexのiPhone用ミュージックアプリ「Plexamp」のlrc表示に関する小ネタを発見しました。それは、lrcファイルの改行コードによって行間の表示のされ方が異なります。</p>



<p class="wp-block-paragraph">　以下の画像は改行コードのみを変えたlrcファイルが適用された音声ファイルを再生している画面です。左がCRLF（Windows標準）で右がLF（Unix系標準）です。CRLFの場合、行間が１行分空いています。公式ドキュメントとかの記載を探しましたが、私が見た限りではこの点に関する記述は見つけられませんでした。いつかこの仕様が変わってしまうかもしれませんが、LRC Maker(Uranos8685)では、設定から改行コードを選択できるようにしておきました。ちなみに、Web版のPlex及びmacOS用のPlexampで再生した場合、改行コードによる行間の違いはありませんでした。何故…？</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image alignleft size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_crlf-scaled.png"><img loading="lazy" decoding="async" width="471" height="1024" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_crlf-471x1024.png" alt="" class="wp-image-331" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_crlf-471x1024.png 471w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_crlf-138x300.png 138w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_crlf-768x1670.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_crlf-706x1536.png 706w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_crlf-942x2048.png 942w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_crlf-scaled.png 1177w" sizes="(max-width: 471px) 100vw, 471px" /></a><figcaption class="wp-element-caption">改行コードがCRLF</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image alignleft size-large is-resized"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_lf-scaled.png"><img loading="lazy" decoding="async" width="471" height="1024" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_lf-471x1024.png" alt="" class="wp-image-332" style="width:471px;height:auto" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_lf-471x1024.png 471w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_lf-138x300.png 138w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_lf-768x1670.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_lf-706x1536.png 706w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_lf-942x2048.png 942w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/09/plexamp_lf-scaled.png 1177w" sizes="(max-width: 471px) 100vw, 471px" /></a><figcaption class="wp-element-caption">改行コードがLF</figcaption></figure>
</div>
</div>



<p class="wp-block-paragraph">　余談ですが、宵待草の作詞者である竹久夢二の記念館である「竹久夢二伊香保記念館」はおすすめですヨ。学芸員の方の解説をゆったり聞きながら展示物を見たり、歴史あるオルゴールの音はぜひ１度聴いてみてほしいです。伊香保・草津旅行のついでに寄ってみてはいかがですか。私は伊香保に行くたびに寄っています。あ、竹久夢二伊香保記念館の回し者ではないですヨ。</p>



<h2 class="wp-block-heading">主要な機能（という名のこだわりポイント）について</h2>



<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"><span class="cocoon-custom-text-1"><span class="bold"><span class="marker"><span class="fz-20px"><span class="fz-24px">主な機能</span></span></span></span></span></div>
<ul class="wp-block-list">
<li>音声ファイルを読み込み、音声ファイルを聞きながら歌詞にタイムスタンプを[mm:ss.xx]フォーマットで付与。</li>



<li>VLCのdllを利用しているため、<span class="marker-under">VLCで再生できる音楽ファイルの読み込みが可能</span>（動作にはvlcが必須）。</li>



<li><span class="marker-under">再生速度は</span>0.50x〜5.00xの範囲で<span class="marker-under">任意に指定可能</span>。</li>



<li>読み込んだ<span class="marker-under">音声ファイルの波形表示に対応</span>(間奏部分を見極めるのに便利)。</li>



<li>歌詞は、<span class="marker-under">既存のlrc・txt形式のファイルからの読み込み</span>に加え、<span class="marker-under-red">クリップボードにコピーされているテキストを歌詞データとして取り込み可能</span>。</li>



<li>読み込んだ歌詞に対し、画面上で歌詞行の追加・削除・歌詞の内容の変更に対応。</li>



<li>付与済みのタイムスタンプを一括でタイムスタンプ調整可能。</li>



<li>歌詞を編集した際に、誤って削除した歌詞行を元に戻す、Undo機能<s>（自分がおっちょこちょいで消してしまうため実装）</s>。</li>



<li><span class="marker-under">読み込んだ歌詞ファイルにタイムスタンプが付与されている場合、一部（あるいは全部）の歌詞行のタイムスタンプの打ち直しが可能</span>（新規でタイムスタンプを付与するのと同様に、音声再生中にEnterキーを押すだけで既存のタイムスタンプを置換）。</li>



<li>タイムスタンプが付与された<span class="marker-under-red">歌詞の行をダブルクリックすることで、再生位置をそのタイムスタンプの位置に移動</span>。</li>



<li>タイトル、アーティスト、オフセットなどのメタデータ書き込みに対応（ti, ar, al, by, offset）。</li>



<li>タイムスタンプを付与したlrcファイルは音声ファイルと同じディレクトリに、「音声ファイル名.lrc」で保存(文字コードはUTF-8)。</li>



<li>書き出すlrcファイルの<span class="marker-under">改行コードをCRLFとLFから選択可能</span>。</li>



<li>音声ファイルを開いている場合、歌詞ファイルを開く際に音声ファイルと同じフォルダを自動で表示。（音声ファイルと異なるディレクトリに保存された歌詞ファイルも選択することも可能）。</li>



<li><span class="marker-under">保存ボタンを押すことで、開いている音声ファイルと同じディレクトリに「音声ファイル名.lrc」の形でワンクリックで保存可能</span>（ユーザのLRCのファイル名設定等の操作を省略。基本的にLRCファイルは音声ファイルと同じディレクトリに同名.lrcで保存・使用されることが大半のため）。</li>
</ul>
</div>



<h2 class="wp-block-heading">当ソフトウェアを利用する際の注意事項</h2>



<p class="wp-block-paragraph">　LRC Maker(Uranos8685)(以下、当ソフトウェアといいます)はフリーソフトです。個人・法人に限らず、利用者は自由に当ソフトウェアを利用することができます。ただし、当プログラムの著作権は作者であるUranos8685に帰属します。</p>



<p class="wp-block-paragraph">　当ソフトウェアを利用したことによる、データの破損、消失、著作権法などの各種法規違反などによる、いかなる損害も作者であるUranos8685は一切の責任を負いません。利用者の自己責任のもとで使用してください。大事なデータは必ずバックアップを取った上で作業しましょう。</p>



<p class="wp-block-paragraph">　当ソフトウェアの再配布、転載は禁止します。</p>



<p class="wp-block-paragraph">　当ソフトウェアの不具合を発見した場合や要望等がありましたら、当ページにコメントしてください。本業の関係もあり全てに対応はできませんが、有用そうな機能の追加や可能な限りの不具合修正は対応したいと思います。</p>



<p class="wp-block-paragraph">　当プログラムを利用して作成したlrcファイルを配布することを禁止することとし、私的利用の範囲内で、当プログラムを利用してください（歌詞にも著作権はあります。これを著作権者に無断で配布することは著作権法に違反します。）。ただし、当プログラムを利用してlrcファイルを作成・配布する者がlrcファイルに記録された歌詞の著作権を有している場合、著作権団体から配布の許可を受けている場合、すでに著作権が切れている歌詞を配布する場合など、著作権法等の各種法規に違反しない場合はこの限りではありません。</p>



<p class="wp-block-paragraph">　公序良俗の範囲内で、音楽ライフを楽しみましょう。</p>



<p class="wp-block-paragraph">　以上の事項に同意できる方のみ、以下のリンクからダウンロードをして利用してください。</p>



<h2 class="wp-block-heading">ダウンロードリンク</h2>



<p class="wp-block-paragraph">プログラムの動作にVLCが必須ですので、VLCをインストールした上で当プログラムを使用してください。</p>



<p class="wp-block-paragraph">※Windows版での動作にはVLCをインストールした際に展開されるlibvlc.dllが「&#8221;C:/Program Files/VideoLAN/VLC&#8221;」フォルダに存在する必要があります。</p>



<p class="wp-block-paragraph">○macOS（動作確認環境：Mac Studio M4 Max、macOS Tahoe26.0）</p>


<div class="sdm_download_button_box_default"><div class="sdm_download_link"><a href="https://toybox.uranos8685.mydns.jp/?sdm_process_download=1&#038;download_id=461" class="sdm_download green" title="mac_LRC Maker(Uranos8685)v1.1.3" >Download Now!</a></div></div>


<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">○Windows（動作確認環境：Windows11Pro 64bit-25H2）※v1.0.2よりParallels上のArm版Windows11では動作するようにはなりましたが、スナドラCPUの実機を所有しておらず詳細な検証ができないため動作を保証できません。</p>


<div class="sdm_download_button_box_default"><div class="sdm_download_link"><a href="https://toybox.uranos8685.mydns.jp/?sdm_process_download=1&#038;download_id=460" class="sdm_download green" title="win64_LRC-MakerUranos8685v1.1.3" >Download Now!</a></div></div>


<h2 class="wp-block-heading">更新履歴</h2>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2025年9月29日<br>　配布ページ作成、公開</h3>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">2025年10月4日<br>　mac版v1.0公開</h3>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2025年11月8日<br>　Windows版v1.0公開</h3>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2025年11月10日<br>　Windows版v1.0.1公開</h3>



<p class="is-style-danger-box has-box-style wp-block-paragraph">不具合修正</p>



<ul class="wp-block-list">
<li><s>読み込んだ音声ファイル名を改行して、すべて表示するように変更</s>→うまく動いていないようなので改めて実装し直し(；_；)</li>



<li>歌詞ファイルを読み込んだ際に、歌詞の1行目を選択した状態になるように変更</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2026年1月29日<br>　Windows版及びmac版v1.0.2公開</h3>



<p class="is-style-danger-box has-box-style wp-block-paragraph">不具合修正</p>



<ul class="wp-block-list">
<li>プログラム内の余計なコードを削除</li>



<li>タイムスタンプ付与時に歌詞の先頭の空白を強制削除していた仕様を廃止</li>



<li>ボタンレイアウトを変更</li>
</ul>



<p class="is-style-info-box has-box-style wp-block-paragraph">機能追加</p>



<ul class="wp-block-list">
<li>lrcファイル保存時に、任意の場所・名前で出力できるオプション「保存時に場所を選択する」を設定に追加（このオプションを使ってlrcを出力した際は当該ディレクトリを記憶し、次回保存時も同じディレクトリを表示）</li>



<li>歌詞の先頭または末尾の空白を除去するオプションを設定に追加</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2026年1月30日<br>　mac版v1.0.2.1公開</h3>



<p class="is-style-danger-box has-box-style wp-block-paragraph">不具合修正</p>



<ul class="wp-block-list">
<li>オーディオファイルのパスに含まれる特定の文字（「赫」など）が、macOSのファイルシステム上の正規化形式（NFD/互換漢字）と、Pythonが期待する形式（NFC）とで一致していないことによる音声ファイルの読み取りに失敗するケースがあったため、パスが見つからない場合に類似するパスをディレクトリ内から検索して補正する機能をプログラム内部に実装。</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2026年1月31日<br>　Windows版及びmac版v1.1公開</h3>



<p class="is-style-danger-box has-box-style wp-block-paragraph">不具合修正</p>



<ul class="wp-block-list">
<li>vlcでは再生時間を50ms毎にしか返さないため、PCのシステムクロックを使用して厳密にタイムスタンプを付与するように変更</li>



<li>読み込んだ音楽ファイル名が長い場合に、自動スクロールして全文を読めるように変更</li>
</ul>



<p class="is-style-info-box has-box-style wp-block-paragraph">機能追加</p>



<ul class="wp-block-list">
<li>作成した歌詞データをタイムスタンプなしのtxtファイルとして出力する機能を追加</li>



<li>作成した歌詞データをタイムスタンプ付きでクリップボードにコピーする機能を追加</li>



<li>歌詞データのスペースについて、全角スペースが含まれる場合には全て半角スペースに一括変換し、半角スペースしかない場合は全角スペースに一括変換する機能をその他機能ボタン内に追加</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2026年2月9日<br>　Windows版及びmac版v1.1.1公開</h3>



<p class="is-style-danger-box has-box-style wp-block-paragraph">不具合修正</p>



<ul class="wp-block-list">
<li>連続で音楽を読み込んだ際にメモリ上にゴミファイルが残っていたため、メモリ開放処理を変更し都度メモリを開放するように変更</li>



<li>一時停止後に再生すると再生時間がおかしくなる場合があるため、修正</li>



<li>Windows版についてPython仮想環境を見直し、ファイルサイズを若干縮小</li>
</ul>



<p class="is-style-info-box has-box-style wp-block-paragraph">機能追加</p>



<ul class="wp-block-list">
<li>歌詞選択行を再生位置に追従させる機能を追加</li>



<li>歌詞追従機能のショートカットを追加（Ctrl+AまたはCmd+A）</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2026年2月15日<br>　Windows版及びmac版v1.1.2公開</h3>



<p class="is-style-danger-box has-box-style wp-block-paragraph">不具合修正</p>



<ul class="wp-block-list">
<li>歌詞自動追従機能が、最後にタイムスタンプ付与した歌詞より前の歌詞で動作しない不具合を修正</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<h3 class="wp-block-heading">2026年2月15日<br>　Windows版及びmac版v1.1.3公開</h3>



<p class="is-style-info-box has-box-style wp-block-paragraph">機能追加</p>



<ul class="wp-block-list">
<li>付与済みのタイムスタンプについて、一括でタイムスタンプを調整する機能を追加</li>



<li>一定のミリ秒以内にタイムスタンプを連続して付与した場合、タイムスタンプの秒数を最初に付与したタイムスタンプと揃えるオプションを追加</li>
</ul>



<p class="is-style-warning-box has-box-style wp-block-paragraph">自己署名証明書の追加（2026年2月21日 Windows版のみ）</p>



<ul class="wp-block-list">
<li>自己署名証明書を追加しました。Windowsのスマートアプリコントロールに引っかかりにくくなる…かも？</li>
</ul>
</div>



<h2 class="wp-block-heading">FAQ</h2>



<p class="wp-block-paragraph">Q：アプリのファイルサイズが大きいが？<br>A：Pythonでアプリの作成をしており、使用しているライブラリが容量を喰っているようです。ごめんなさい。</p>



<p class="wp-block-paragraph">Q：起動に時間がかかる<br>A：Pythonの環境がまずバックグラウンドで起動した後、アプリ本体が立ち上がるためウィンドウが立ち上がるのに時間がかかるのは仕様です( -_-) _旦~~</p>



<h2 class="wp-block-heading"><strong>今後追加予定の機能</strong>（<s>自分が欲しい機能</s>）</h2>



<p class="wp-block-paragraph"><s>○タイムスタンプ付与時に歌詞の前のスペースを強制削除しているため、スペース削除の実行有無をオプションで選択可能に変更</s>→v1.0.2で実装<br><s>○歌詞ファイルを強制的に音声ファイルと同ディレクトリへ「音声ファイル名.lrc」で出力しているところ、オプションから任意のディレクトリ・ファイル名で出力するよう指定できるように変更</s>→v1.0.2で実装<br><s>○スペースを全角→半角（または半角→全角）へ一括変換する機能</s>→v1.1で実装<br><s>○読み込んだ（作成した）LRCをタイムスタンプなしの純粋な歌詞txtファイルを出力する機能</s>→v1.1で実装<br><s>○読み込んだ音声ファイル名を改行して、すべて表示するように変更</s>→v1.1で実装<br><s>〇作成した歌詞データをクリップボードへコピーする機能</s>→v1.1で実装<br><br>個人開発ですのでマイペースに実装していきます。</p><p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/09/29/lrc-makeruranos8685%e3%80%80%e9%85%8d%e5%b8%83%e3%83%9a%e3%83%bc%e3%82%b8/">LRC Maker(Uranos8685)　配布ページ</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2025/09/29/lrc-makeruranos8685%e3%80%80%e9%85%8d%e5%b8%83%e3%83%9a%e3%83%bc%e3%82%b8/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">312</post-id>	</item>
		<item>
		<title>MacでSafetensors形式のモデルをGGUFに変換する方法</title>
		<link>https://toybox.uranos8685.mydns.jp/2025/09/20/mac%e3%81%a7safetensors%e5%bd%a2%e5%bc%8f%e3%81%ae%e3%83%a2%e3%83%87%e3%83%ab%e3%82%92gguf%e3%81%ab%e5%a4%89%e6%8f%9b%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2025/09/20/mac%e3%81%a7safetensors%e5%bd%a2%e5%bc%8f%e3%81%ae%e3%83%a2%e3%83%87%e3%83%ab%e3%82%92gguf%e3%81%ab%e5%a4%89%e6%8f%9b%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Sat, 20 Sep 2025 05:06:10 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=299</guid>

					<description><![CDATA[<p>前提条件 　Python（3.10）がインストール済であること。他バージョンでもいけるが、これ以上新しいと、仮想環境にllama.cppのrequirements.txtをpipインストールしようとした際にバージョンアン [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/09/20/mac%e3%81%a7safetensors%e5%bd%a2%e5%bc%8f%e3%81%ae%e3%83%a2%e3%83%87%e3%83%ab%e3%82%92gguf%e3%81%ab%e5%a4%89%e6%8f%9b%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/">MacでSafetensors形式のモデルをGGUFに変換する方法</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">前提条件</h2>



<p class="wp-block-paragraph">　Python（3.10）がインストール済であること。他バージョンでもいけるが、これ以上新しいと、仮想環境にllama.cppのrequirements.txtをpipインストールしようとした際にバージョンアンマッチでエラーとなるため注意（１敗）。</p>



<h2 class="wp-block-heading">Homebrewのインストール</h2>



<p class="wp-block-paragraph">　以下のコマンドを実行する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;</code></pre></div>



<p class="wp-block-paragraph">　実行結果は以下のとおり。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>(base) Mac-Studio ~ % /bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;
==&gt; Checking for `sudo` access (which may request your password)...
Password:
==&gt; This script will install:
/opt/homebrew/bin/brew
/opt/homebrew/share/doc/homebrew
/opt/homebrew/share/man/man1/brew.1
/opt/homebrew/share/zsh/site-functions/_brew
/opt/homebrew/etc/bash_completion.d/brew
/opt/homebrew
/etc/paths.d/homebrew
==&gt; The following new directories will be created:
/opt/homebrew/bin
/opt/homebrew/etc
/opt/homebrew/include
/opt/homebrew/lib
/opt/homebrew/sbin
/opt/homebrew/share
/opt/homebrew/var
/opt/homebrew/opt
/opt/homebrew/share/zsh
/opt/homebrew/share/zsh/site-functions
/opt/homebrew/var/homebrew
/opt/homebrew/var/homebrew/linked
/opt/homebrew/Cellar
/opt/homebrew/Caskroom
/opt/homebrew/Frameworks

Press RETURN/ENTER to continue or any other key to abort:
==&gt; /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew
==&gt; /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
==&gt; /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
==&gt; /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions
==&gt; /usr/bin/sudo /usr/sbin/chown xxx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
==&gt; /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
==&gt; /usr/bin/sudo /usr/sbin/chown -R xxx:admin /opt/homebrew
==&gt; Downloading and installing Homebrew...
remote: Enumerating objects: 310230, done.
remote: Counting objects: 100% (15147/15147), done.
remote: Compressing objects: 100% (565/565), done.
remote: Total 310230 (delta 14770), reused 14627 (delta 14582), pack-reused 295083 (from 3)
remote: Enumerating objects: 55, done.
remote: Counting objects: 100% (34/34), done.
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 21 (from 1)
==&gt; /usr/bin/sudo /bin/mkdir -p /etc/paths.d
==&gt; /usr/bin/sudo tee /etc/paths.d/homebrew
/opt/homebrew/bin
==&gt; /usr/bin/sudo /usr/sbin/chown root:wheel /etc/paths.d/homebrew
==&gt; /usr/bin/sudo /bin/chmod a+r /etc/paths.d/homebrew
==&gt; Updating Homebrew...
==&gt; Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:20fa657858e44a4b39171d6e4111f8a9716eb62a78ebbd1491d94f90bb7b830a
############################################################ 100.0%
==&gt; Pouring portable-ruby-3.4.5.arm64_big_sur.bottle.tar.gz
==&gt; Installation successful!

==&gt; Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics data has been sent yet (nor will any be during this install run).

==&gt; Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations

==&gt; Next steps:
- Run these commands in your terminal to add Homebrew to your PATH:
    echo &gt;&gt; /Users/xxx/.zprofile
    echo &#39;eval &quot;$(/opt/homebrew/bin/brew shellenv)&quot;&#39; &gt;&gt; /Users/xxx/.zprofile
    eval &quot;$(/opt/homebrew/bin/brew shellenv)&quot;
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh
</code></pre></div>



<h2 class="wp-block-heading">Homebrewのパス設定</h2>



<p class="wp-block-paragraph">　以下のコマンドを実行する</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>export PATH=&quot;$PATH:/opt/homebrew/bin/&quot;</code></pre></div>



<p class="wp-block-paragraph">　パスが通ったかは、以下のコマンドで確認可能。バージョンが返ってくればOK。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>brew --version</code></pre></div>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>(base) Mac-Studio ~ % brew --version
Homebrew 4.6.10</code></pre></div>



<h2 class="wp-block-heading">cmakeのインストール</h2>



<p class="wp-block-paragraph">　以下のコマンドを実行する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>brew install wget git cmake</code></pre></div>



<p class="wp-block-paragraph">　実行結果は以下のとおり。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>(base) Mac-Studio ~ % brew install wget git cmake
==&gt; Fetching downloads for: wget, git and cmake
==&gt; Downloading https://ghcr.io/v2/homebrew/core/wget/manifests/1.2
############################################################ 100.0%
==&gt; Downloading https://ghcr.io/v2/homebrew/core/git/manifests/2.51
############################################################ 100.0%
==&gt; Downloading https://ghcr.io/v2/homebrew/core/cmake/manifests/4.
############################################################ 100.0%
==&gt; Fetching dependencies for wget: libunistring, gettext, libidn2, ca-certificates and openssl@3
==&gt; Downloading https://ghcr.io/v2/homebrew/core/libunistring/manif
############################################################ 100.0%
==&gt; Fetching libunistring
==&gt; Downloading https://ghcr.io/v2/homebrew/core/libunistring/blobs
############################################################ 100.0%
==&gt; Downloading https://ghcr.io/v2/homebrew/core/gettext/manifests/
############################################################ 100.0%
==&gt; Fetching gettext
==&gt; Downloading https://ghcr.io/v2/homebrew/core/gettext/blobs/sha2
############################################################ 100.0%
==&gt; Downloading https://ghcr.io/v2/homebrew/core/libidn2/manifests/
############################################################ 100.0%
==&gt; Fetching libidn2
==&gt; Downloading https://ghcr.io/v2/homebrew/core/libidn2/blobs/sha2
############################################################ 100.0%
==&gt; Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/ma
############################################################ 100.0%
==&gt; Fetching ca-certificates
==&gt; Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/bl
############################################################ 100.0%
==&gt; Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifest
############################################################ 100.0%
==&gt; Fetching openssl@3
==&gt; Downloading https://ghcr.io/v2/homebrew/core/openssl/3/blobs/sh
############################################################ 100.0%
==&gt; Fetching wget
==&gt; Downloading https://ghcr.io/v2/homebrew/core/wget/blobs/sha256:
############################################################ 100.0%
==&gt; Fetching dependencies for git: pcre2
==&gt; Downloading https://ghcr.io/v2/homebrew/core/pcre2/manifests/10
############################################################ 100.0%
==&gt; Fetching pcre2
==&gt; Downloading https://ghcr.io/v2/homebrew/core/pcre2/blobs/sha256
############################################################ 100.0%
==&gt; Fetching git
==&gt; Downloading https://ghcr.io/v2/homebrew/core/git/blobs/sha256:e
############################################################ 100.0%
==&gt; Fetching cmake
==&gt; Downloading https://ghcr.io/v2/homebrew/core/cmake/blobs/sha256
############################################################ 100.0%
==&gt; Installing dependencies for wget: libunistring, gettext, libidn2, ca-certificates and openssl@3
==&gt; Installing wget dependency: libunistring
==&gt; Downloading https://ghcr.io/v2/homebrew/core/libunistring/manif
Already downloaded: /Users/xxx/Library/Caches/Homebrew/downloads/a570da63bc1839c7e217f203abd54d4d873ebd6b99f6e88994d0e79e2ebe987c--libunistring-1.3.bottle_manifest.json
==&gt; Pouring libunistring--1.3.arm64_sequoia.bottle.tar.gz
🍺  /opt/homebrew/Cellar/libunistring/1.3: 59 files, 5.4MB
==&gt; Installing wget dependency: gettext
==&gt; Downloading https://ghcr.io/v2/homebrew/core/gettext/manifests/
Already downloaded: /Users/xxx/Library/Caches/Homebrew/downloads/d28158ffec04fae757cdbeb46750e8e2ed43b7b17ada49d72a5bda2cff4cd6ed--gettext-0.26.bottle_manifest.json
==&gt; Pouring gettext--0.26.arm64_sequoia.bottle.tar.gz
🍺  /opt/homebrew/Cellar/gettext/0.26: 2,428 files, 28.2MB
==&gt; Installing wget dependency: libidn2
==&gt; Downloading https://ghcr.io/v2/homebrew/core/libidn2/manifests/
Already downloaded: /Users/xxx/Library/Caches/Homebrew/downloads/f30f50fbde4bff9a71de54d684e482d7da3432656d680b97441163c6e5665468--libidn2-2.3.8.bottle_manifest.json
==&gt; Pouring libidn2--2.3.8.arm64_sequoia.bottle.tar.gz
🍺  /opt/homebrew/Cellar/libidn2/2.3.8: 80 files, 929.5KB
==&gt; Installing wget dependency: ca-certificates
==&gt; Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/ma
Already downloaded: /Users/xxx/Library/Caches/Homebrew/downloads/446bcc9fbe916b3769ad3367c5fff981dfdf345e29ffc493f87e48e904d30608--ca-certificates-2025-08-12-2.bottle_manifest.json
==&gt; Pouring ca-certificates--2025-08-12.all.bottle.2.tar.gz
==&gt; Regenerating CA certificate bundle from keychain, this may take
🍺  /opt/homebrew/Cellar/ca-certificates/2025-08-12: 4 files, 232.9KB
==&gt; Installing wget dependency: openssl@3
==&gt; Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifest
Already downloaded: /Users/xxx/Library/Caches/Homebrew/downloads/e6659abe178bdf49b65451e77f6165a3e07274432f445342092e5ad2a927b23c--openssl@3-3.5.2.bottle_manifest.json
==&gt; Pouring openssl@3--3.5.2.arm64_sequoia.bottle.tar.gz
🍺  /opt/homebrew/Cellar/openssl@3/3.5.2: 7,563 files, 35.4MB
==&gt; Installing wget
==&gt; Pouring wget--1.25.0.arm64_sequoia.bottle.tar.gz
🍺  /opt/homebrew/Cellar/wget/1.25.0: 92 files, 4.5MB
==&gt; Running `brew cleanup wget`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==&gt; Installing git dependency: pcre2
==&gt; Downloading https://ghcr.io/v2/homebrew/core/pcre2/manifests/10
Already downloaded: /Users/xxx/Library/Caches/Homebrew/downloads/476078c344b0d9fa702da6e94d7fe5dd59bb1897d3fcc12d1b52b4bc0de68854--pcre2-10.46.bottle_manifest.json
==&gt; Pouring pcre2--10.46.arm64_sequoia.bottle.tar.gz
🍺  /opt/homebrew/Cellar/pcre2/10.46: 242 files, 6.8MB
==&gt; Pouring git--2.51.0.arm64_sequoia.bottle.tar.gz
==&gt; Caveats
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Subversion interoperability (git-svn) is now in the `git-svn` formula.
==&gt; Summary
🍺  /opt/homebrew/Cellar/git/2.51.0: 1,693 files, 55.9MB
==&gt; Running `brew cleanup git`...
==&gt; Pouring cmake--4.1.1.arm64_sequoia.bottle.tar.gz
==&gt; Caveats
To install the CMake documentation, run:
  brew install cmake-docs
==&gt; Summary
🍺  /opt/homebrew/Cellar/cmake/4.1.1: 3,913 files, 58.6MB
==&gt; Running `brew cleanup cmake`...
==&gt; No outdated dependents to upgrade!
==&gt; Caveats
zsh completions and functions have been installed to:
  /opt/homebrew/share/zsh/site-functions
Emacs Lisp files have been installed to:
  /opt/homebrew/share/emacs/site-lisp/cmake
==&gt; git
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Subversion interoperability (git-svn) is now in the `git-svn` formula.
==&gt; cmake
To install the CMake documentation, run:
  brew install cmake-docs</code></pre></div>



<h2 class="wp-block-heading">xcodeをインストール</h2>



<p class="wp-block-paragraph">　以下のコマンドを実行する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>xcode-select --install</code></pre></div>



<p class="wp-block-paragraph">　実行結果は以下のとおり。xcodeがインストール済の場合は、以下のメッセージが表示される。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>(base) Mac-Studio ~ % xcode-select --install
xcode-select: note: Command line tools are already installed. Use &quot;Software Update&quot; in System Settings or the softwareupdate command line interface to install updates</code></pre></div>



<h2 class="wp-block-heading">Llama.cppのビルド</h2>



<p class="wp-block-paragraph">　以下のコマンドを実行し、llama.cppのリポジトリをクローンする。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>git clone https://github.com/ggerganov/llama.cpp</code></pre></div>



<p class="wp-block-paragraph">　実行結果は以下のとおり。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>(base) Mac-Studio ~ % git clone https://github.com/ggerganov/llama.cpp
Cloning into &#39;llama.cpp&#39;...
remote: Enumerating objects: 61275, done.
remote: Counting objects: 100% (206/206), done.
remote: Compressing objects: 100% (135/135), done.
remote: Total 61275 (delta 138), reused 71 (delta 71), pack-reused 61069 (from 3)
Receiving objects: 100% (61275/61275), 152.17 MiB | 5.26 MiB/s, done.
Resolving deltas: 100% (44500/44500), done.</code></pre></div>



<p class="wp-block-paragraph">　llama.cppディレクトリに移動し、makeする。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd llama.cpp
make</code></pre></div>



<p class="wp-block-paragraph">　実行結果は以下のとおり。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>(base) Mac-Studio ~ % cd llama.cpp
(base) Mac-Studio llama.cpp % make
Makefile:6: *** Build system changed:
 The Makefile build has been replaced by CMake.

 For build instructions see:
 https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md

.  Stop.</code></pre></div>



<h2 class="wp-block-heading">GGUF変換用のPython仮想環境作成</h2>



<p class="wp-block-paragraph">　以下のコマンドを実行し、仮想環境を作成する（環境名は任意で変更OK）。私は「convert2gguf」という名称にした。理由は後述するが、Python3.10とするのがミソ。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>python3.10 -m venv convert2gguf</code></pre></div>



<p class="wp-block-paragraph">　作成した仮想環境をアクティベートする。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>source convert2gguf/bin/activate</code></pre></div>



<p class="wp-block-paragraph">　ターミナルの頭に（仮想環境名）が表示されていれば、アクティベートできている。以下のコマンドを実行し、Pythonバージョンを確認する。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>python --version</code></pre></div>



<p class="wp-block-paragraph">　以下のように、3.10.xと表示されていればOK。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>(convert2gguf) (base) Mac-Studio llama.cpp % python --version            
Python 3.10.8</code></pre></div>



<p class="wp-block-paragraph">　以下のコマンドを実行し、llama.cppのrequirements.txtをpipインストールする。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>pip install -r requirements.txt</code></pre></div>



<p class="wp-block-paragraph">　実行結果は以下のとおり。llama.cppのrequirements.txtをpipインストールできる最新のPythonバージョンは3.10のため、エラーが出る場合はPythonの仮想環境を見直すこと。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>(convert2gguf) (base) Mac-Studio llama.cpp % pip install -r requirements.txt   
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/nightly, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/nightly, https://download.pytorch.org/whl/cpu, https://download.pytorch.org/whl/nightly
Ignoring torch: markers &#39;platform_machine == &quot;s390x&quot;&#39; don&#39;t match your environment
Ignoring torch: markers &#39;platform_machine == &quot;s390x&quot;&#39; don&#39;t match your environment
Collecting numpy~=1.26.4
  Downloading https://download.pytorch.org/whl/nightly/numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl (14.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.0/14.0 MB 10.8 MB/s eta 0:00:00
Collecting sentencepiece~=0.2.0
  Downloading https://download.pytorch.org/whl/nightly/sentencepiece-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (1.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 11.0 MB/s eta 0:00:00
Collecting transformers&lt;5.0.0,&gt;=4.45.1
  Downloading transformers-4.56.1-py3-none-any.whl (11.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 4.5 MB/s eta 0:00:00
Collecting gguf&gt;=0.1.0
  Downloading gguf-0.17.1-py3-none-any.whl (96 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.2/96.2 kB 6.1 MB/s eta 0:00:00
Collecting protobuf&lt;5.0.0,&gt;=4.21.0
  Downloading protobuf-4.25.8-cp37-abi3-macosx_10_9_universal2.whl (394 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 394.5/394.5 kB 7.1 MB/s eta 0:00:00
Collecting mistral-common&gt;=1.8.3
  Downloading mistral_common-1.8.4-py3-none-any.whl (6.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.5/6.5 MB 8.6 MB/s eta 0:00:00
Collecting torch~=2.4.0
  Downloading https://download.pytorch.org/whl/cpu/torch-2.4.1-cp310-none-macosx_11_0_arm64.whl (62.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.1/62.1 MB 10.4 MB/s eta 0:00:00
Collecting aiohttp~=3.9.3
  Downloading https://download.pytorch.org/whl/nightly/aiohttp-3.9.5-cp310-cp310-macosx_11_0_arm64.whl (389 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━ 389.9/389.9 kB 618.1 kB/s eta 0:00:00
Collecting pytest~=8.3.3
  Downloading pytest-8.3.5-py3-none-any.whl (343 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 343.6/343.6 kB 3.6 MB/s eta 0:00:00
Collecting huggingface_hub~=0.23.2
  Downloading huggingface_hub-0.23.5-py3-none-any.whl (402 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 402.8/402.8 kB 1.3 MB/s eta 0:00:00
Collecting matplotlib~=3.10.0
  Downloading matplotlib-3.10.6-cp310-cp310-macosx_11_0_arm64.whl (8.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.1/8.1 MB 5.6 MB/s eta 0:00:00
Collecting openai~=1.55.3
  Downloading openai-1.55.3-py3-none-any.whl (389 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 389.6/389.6 kB 6.5 MB/s eta 0:00:00
Collecting pandas~=2.2.3
  Downloading https://download.pytorch.org/whl/nightly/pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl (11.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 10.0 MB/s eta 0:00:00
Collecting prometheus-client~=0.20.0
  Downloading prometheus_client-0.20.0-py3-none-any.whl (54 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.5/54.5 kB 4.3 MB/s eta 0:00:00
Collecting requests~=2.32.3
  Downloading requests-2.32.5-py3-none-any.whl (64 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.7/64.7 kB 5.5 MB/s eta 0:00:00
Collecting wget~=3.2
  Downloading wget-3.2.zip (10 kB)
  Preparing metadata (setup.py) ... done
Collecting typer~=0.15.1
  Downloading typer-0.15.4-py3-none-any.whl (45 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.3/45.3 kB 4.8 MB/s eta 0:00:00
Collecting seaborn~=0.13.2
  Downloading seaborn-0.13.2-py3-none-any.whl (294 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 294.9/294.9 kB 9.2 MB/s eta 0:00:00
Collecting pyyaml&gt;=5.1
  Downloading https://download.pytorch.org/whl/nightly/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl (171 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 171.8/171.8 kB 8.5 MB/s eta 0:00:00
Collecting packaging&gt;=20.0
  Downloading packaging-25.0-py3-none-any.whl (66 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.5/66.5 kB 5.8 MB/s eta 0:00:00
Collecting filelock
  Downloading https://download.pytorch.org/whl/nightly/filelock-3.19.1-py3-none-any.whl (15 kB)
Collecting transformers&lt;5.0.0,&gt;=4.45.1
  Downloading transformers-4.56.0-py3-none-any.whl (11.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 8.6 MB/s eta 0:00:00
  Downloading transformers-4.55.4-py3-none-any.whl (11.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 8.5 MB/s eta 0:00:00
  Downloading transformers-4.55.3-py3-none-any.whl (11.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 10.1 MB/s eta 0:00:00
  Downloading transformers-4.55.2-py3-none-any.whl (11.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 11.5 MB/s eta 0:00:00
  Downloading transformers-4.55.1-py3-none-any.whl (11.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 5.1 MB/s eta 0:00:00
  Downloading transformers-4.55.0-py3-none-any.whl (11.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 11.4 MB/s eta 0:00:00
  Downloading transformers-4.54.1-py3-none-any.whl (11.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.2/11.2 MB 9.9 MB/s eta 0:00:00
  Downloading transformers-4.54.0-py3-none-any.whl (11.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.2/11.2 MB 10.9 MB/s eta 0:00:00
  Downloading transformers-4.53.3-py3-none-any.whl (10.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.8/10.8 MB 11.3 MB/s eta 0:00:00
  Downloading transformers-4.53.2-py3-none-any.whl (10.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.8/10.8 MB 10.1 MB/s eta 0:00:00
  Downloading transformers-4.53.1-py3-none-any.whl (10.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.8/10.8 MB 6.5 MB/s eta 0:00:00
  Downloading transformers-4.53.0-py3-none-any.whl (10.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.8/10.8 MB 9.7 MB/s eta 0:00:00
  Downloading transformers-4.52.4-py3-none-any.whl (10.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 11.1 MB/s eta 0:00:00
  Downloading transformers-4.52.3-py3-none-any.whl (10.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 11.5 MB/s eta 0:00:00
  Downloading transformers-4.52.2-py3-none-any.whl (10.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 11.1 MB/s eta 0:00:00
  Downloading transformers-4.52.1-py3-none-any.whl (10.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 11.5 MB/s eta 0:00:00
  Downloading transformers-4.51.3-py3-none-any.whl (10.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 10.5 MB/s eta 0:00:00
  Downloading transformers-4.51.2-py3-none-any.whl (10.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 9.4 MB/s eta 0:00:00
  Downloading transformers-4.51.1-py3-none-any.whl (10.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 10.4 MB/s eta 0:00:00
  Downloading transformers-4.51.0-py3-none-any.whl (10.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 11.0 MB/s eta 0:00:00
  Downloading transformers-4.50.3-py3-none-any.whl (10.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 10.5 MB/s eta 0:00:00
  Downloading transformers-4.50.2-py3-none-any.whl (10.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 5.2 MB/s eta 0:00:00
  Downloading transformers-4.50.1-py3-none-any.whl (10.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 6.7 MB/s eta 0:00:00
  Downloading transformers-4.50.0-py3-none-any.whl (10.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 10.7 MB/s eta 0:00:00
  Downloading transformers-4.49.0-py3-none-any.whl (10.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.0/10.0 MB 9.8 MB/s eta 0:00:00
  Downloading transformers-4.48.3-py3-none-any.whl (9.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.7/9.7 MB 11.5 MB/s eta 0:00:00
Collecting safetensors&gt;=0.4.1
  Downloading https://download.pytorch.org/whl/nightly/safetensors-0.6.2-cp38-abi3-macosx_11_0_arm64.whl (432 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━ 432.2/432.2 kB 10.2 MB/s eta 0:00:00
Collecting transformers&lt;5.0.0,&gt;=4.45.1
  Downloading transformers-4.48.2-py3-none-any.whl (9.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.7/9.7 MB 10.3 MB/s eta 0:00:00
  Downloading transformers-4.48.1-py3-none-any.whl (9.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.7/9.7 MB 8.7 MB/s eta 0:00:00
  Downloading transformers-4.48.0-py3-none-any.whl (9.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.7/9.7 MB 4.0 MB/s eta 0:00:00
  Downloading transformers-4.47.1-py3-none-any.whl (10.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.1/10.1 MB 5.5 MB/s eta 0:00:00
  Downloading transformers-4.47.0-py3-none-any.whl (10.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.1/10.1 MB 9.3 MB/s eta 0:00:00
  Downloading transformers-4.46.3-py3-none-any.whl (10.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.0/10.0 MB 8.1 MB/s eta 0:00:00
Collecting tokenizers&lt;0.21,&gt;=0.20
  Downloading tokenizers-0.20.3-cp310-cp310-macosx_11_0_arm64.whl (2.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.6/2.6 MB 8.6 MB/s eta 0:00:00
Collecting tqdm&gt;=4.27
  Downloading https://download.pytorch.org/whl/nightly/tqdm-4.67.1-py3-none-any.whl (78 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.5/78.5 kB 6.4 MB/s eta 0:00:00
Collecting regex!=2019.12.17
  Downloading regex-2025.9.1-cp310-cp310-macosx_11_0_arm64.whl (286 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 286.6/286.6 kB 8.9 MB/s eta 0:00:00
Collecting jsonschema&gt;=4.21.1
  Downloading jsonschema-4.25.1-py3-none-any.whl (90 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.0/90.0 kB 7.9 MB/s eta 0:00:00
Collecting pydantic&lt;3.0,&gt;=2.7
  Downloading pydantic-2.11.7-py3-none-any.whl (444 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━ 444.8/444.8 kB 10.3 MB/s eta 0:00:00
Collecting tiktoken&gt;=0.7.0
  Downloading https://download.pytorch.org/whl/nightly/tiktoken-0.11.0-cp310-cp310-macosx_11_0_arm64.whl (999 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 999.2/999.2 kB 1.3 MB/s eta 0:00:00
Collecting pydantic-extra-types[pycountry]&gt;=2.10.5
  Downloading pydantic_extra_types-2.10.5-py3-none-any.whl (38 kB)
Collecting pillow&gt;=10.3.0
  Downloading https://download.pytorch.org/whl/nightly/pillow-11.3.0-cp310-cp310-macosx_11_0_arm64.whl (4.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.7/4.7 MB 11.3 MB/s eta 0:00:00
Collecting typing-extensions&gt;=4.11.0
  Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 44.6/44.6 kB 4.7 MB/s eta 0:00:00
Collecting sympy
  Downloading https://download.pytorch.org/whl/nightly/sympy-1.14.0-py3-none-any.whl (6.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 8.1 MB/s eta 0:00:00
Collecting fsspec
  Downloading fsspec-2025.9.0-py3-none-any.whl (199 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 199.3/199.3 kB 8.9 MB/s eta 0:00:00
Collecting jinja2
  Downloading https://download.pytorch.org/whl/nightly/jinja2-3.1.6-py3-none-any.whl (134 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━ 134.9/134.9 kB 10.5 MB/s eta 0:00:00
Collecting networkx
  Downloading https://download.pytorch.org/whl/nightly/networkx-3.5-py3-none-any.whl (2.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 10.3 MB/s eta 0:00:00
Collecting multidict&lt;7.0,&gt;=4.5
  Downloading https://download.pytorch.org/whl/nightly/multidict-6.6.4-cp310-cp310-macosx_11_0_arm64.whl (44 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 44.6/44.6 kB 5.7 MB/s eta 0:00:00
Collecting yarl&lt;2.0,&gt;=1.0
  Downloading https://download.pytorch.org/whl/nightly/yarl-1.20.1-cp310-cp310-macosx_11_0_arm64.whl (89 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.3/89.3 kB 4.4 MB/s eta 0:00:00
Collecting attrs&gt;=17.3.0
  Downloading https://download.pytorch.org/whl/nightly/attrs-25.3.0-py3-none-any.whl (63 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.8/63.8 kB 5.3 MB/s eta 0:00:00
Collecting aiosignal&gt;=1.1.2
  Downloading https://download.pytorch.org/whl/nightly/aiosignal-1.4.0-py3-none-any.whl (7.5 kB)
Collecting frozenlist&gt;=1.1.1
  Downloading https://download.pytorch.org/whl/nightly/frozenlist-1.7.0-cp310-cp310-macosx_11_0_arm64.whl (46 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.8/46.8 kB 4.7 MB/s eta 0:00:00
Collecting async-timeout&lt;5.0,&gt;=4.0
  Downloading https://download.pytorch.org/whl/nightly/async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Collecting pluggy&lt;2,&gt;=1.5
  Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)
Collecting iniconfig
  Downloading iniconfig-2.1.0-py3-none-any.whl (6.0 kB)
Collecting exceptiongroup&gt;=1.0.0rc8
  Downloading exceptiongroup-1.3.0-py3-none-any.whl (16 kB)
Collecting tomli&gt;=1
  Downloading tomli-2.2.1-py3-none-any.whl (14 kB)
Collecting kiwisolver&gt;=1.3.1
  Downloading kiwisolver-1.4.9-cp310-cp310-macosx_11_0_arm64.whl (65 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.3/65.3 kB 5.5 MB/s eta 0:00:00
Collecting cycler&gt;=0.10
  Downloading https://download.pytorch.org/whl/nightly/cycler-0.12.1-py3-none-any.whl (8.3 kB)
Collecting pyparsing&gt;=2.3.1
  Downloading pyparsing-3.2.3-py3-none-any.whl (111 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.1/111.1 kB 8.5 MB/s eta 0:00:00
Collecting python-dateutil&gt;=2.7
  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 10.6 MB/s eta 0:00:00
Collecting fonttools&gt;=4.22.0
  Downloading fonttools-4.59.2-cp310-cp310-macosx_10_9_universal2.whl (2.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 11.3 MB/s eta 0:00:00
Collecting contourpy&gt;=1.0.1
  Downloading contourpy-1.3.2-cp310-cp310-macosx_11_0_arm64.whl (253 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━ 253.4/253.4 kB 10.1 MB/s eta 0:00:00
Collecting jiter&lt;1,&gt;=0.4.0
  Downloading jiter-0.10.0-cp310-cp310-macosx_11_0_arm64.whl (322 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 322.8/322.8 kB 9.3 MB/s eta 0:00:00
Collecting httpx&lt;1,&gt;=0.23.0
  Downloading httpx-0.28.1-py3-none-any.whl (73 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.5/73.5 kB 6.6 MB/s eta 0:00:00
Collecting distro&lt;2,&gt;=1.7.0
  Downloading distro-1.9.0-py3-none-any.whl (20 kB)
Collecting anyio&lt;5,&gt;=3.5.0
  Downloading anyio-4.10.0-py3-none-any.whl (107 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 107.2/107.2 kB 8.9 MB/s eta 0:00:00
Collecting sniffio
  Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)
Collecting pytz&gt;=2020.1
  Downloading https://download.pytorch.org/whl/nightly/pytz-2025.2-py2.py3-none-any.whl (509 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━ 509.2/509.2 kB 10.7 MB/s eta 0:00:00
Collecting tzdata&gt;=2022.7
  Downloading https://download.pytorch.org/whl/nightly/tzdata-2025.2-py2.py3-none-any.whl (347 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━ 347.8/347.8 kB 10.6 MB/s eta 0:00:00
Collecting charset_normalizer&lt;4,&gt;=2
  Downloading https://download.pytorch.org/whl/nightly/charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl (207 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.7/207.7 kB 9.3 MB/s eta 0:00:00
Collecting certifi&gt;=2017.4.17
  Downloading https://download.pytorch.org/whl/nightly/certifi-2025.8.3-py3-none-any.whl (161 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 161.2/161.2 kB 5.7 MB/s eta 0:00:00
Collecting idna&lt;4,&gt;=2.5
  Downloading https://download.pytorch.org/whl/nightly/idna-3.10-py3-none-any.whl (70 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.4/70.4 kB 6.0 MB/s eta 0:00:00
Collecting urllib3&lt;3,&gt;=1.21.1
  Downloading https://download.pytorch.org/whl/nightly/urllib3-2.5.0-py3-none-any.whl (129 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 129.8/129.8 kB 7.6 MB/s eta 0:00:00
Collecting shellingham&gt;=1.3.0
  Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)
Collecting rich&gt;=10.11.0
  Downloading rich-14.1.0-py3-none-any.whl (243 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 243.4/243.4 kB 8.7 MB/s eta 0:00:00
Collecting click&lt;8.2,&gt;=8.0.0
  Downloading click-8.1.8-py3-none-any.whl (98 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.2/98.2 kB 7.5 MB/s eta 0:00:00
Collecting httpcore==1.*
  Downloading httpcore-1.0.9-py3-none-any.whl (78 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.8/78.8 kB 8.1 MB/s eta 0:00:00
Collecting h11&gt;=0.16
  Downloading h11-0.16.0-py3-none-any.whl (37 kB)
Collecting referencing&gt;=0.28.4
  Downloading referencing-0.36.2-py3-none-any.whl (26 kB)
Collecting rpds-py&gt;=0.7.1
  Downloading rpds_py-0.27.1-cp310-cp310-macosx_11_0_arm64.whl (353 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 353.5/353.5 kB 9.9 MB/s eta 0:00:00
Collecting jsonschema-specifications&gt;=2023.03.6
  Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB)
Collecting pydantic-core==2.33.2
  Downloading pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl (1.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 10.8 MB/s eta 0:00:00
Collecting annotated-types&gt;=0.6.0
  Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB)
Collecting typing-inspection&gt;=0.4.0
  Downloading typing_inspection-0.4.1-py3-none-any.whl (14 kB)
Collecting pycountry&gt;=23
  Downloading pycountry-24.6.1-py3-none-any.whl (6.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 11.1 MB/s eta 0:00:00
Collecting six&gt;=1.5
  Downloading https://download.pytorch.org/whl/nightly/six-1.17.0-py2.py3-none-any.whl (11 kB)
Collecting markdown-it-py&gt;=2.2.0
  Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.3/87.3 kB 9.2 MB/s eta 0:00:00
Collecting pygments&lt;3.0.0,&gt;=2.13.0
  Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 10.5 MB/s eta 0:00:00
Collecting propcache&gt;=0.2.1
  Downloading propcache-0.3.2-cp310-cp310-macosx_11_0_arm64.whl (43 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.0/43.0 kB 4.7 MB/s eta 0:00:00
Collecting MarkupSafe&gt;=2.0
  Downloading https://download.pytorch.org/whl/nightly/MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl (12 kB)
Collecting networkx
  Downloading https://download.pytorch.org/whl/nightly/networkx-3.4.2-py3-none-any.whl (1.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 5.9 MB/s eta 0:00:00
Collecting mpmath&lt;1.4,&gt;=1.1.0
  Downloading https://download.pytorch.org/whl/nightly/mpmath-1.3.0-py3-none-any.whl (536 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 9.5 MB/s eta 0:00:00
Collecting mdurl~=0.1
  Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Using legacy &#39;setup.py install&#39; for wget, since package &#39;wheel&#39; is not installed.
Installing collected packages: wget, pytz, mpmath, urllib3, tzdata, typing-extensions, tqdm, tomli, sympy, sniffio, six, shellingham, sentencepiece, safetensors, rpds-py, regex, pyyaml, pyparsing, pygments, pycountry, protobuf, propcache, prometheus-client, pluggy, pillow, packaging, numpy, networkx, mdurl, MarkupSafe, kiwisolver, jiter, iniconfig, idna, h11, fsspec, frozenlist, fonttools, filelock, distro, cycler, click, charset_normalizer, certifi, attrs, async-timeout, annotated-types, typing-inspection, requests, referencing, python-dateutil, pydantic-core, multidict, markdown-it-py, jinja2, httpcore, gguf, exceptiongroup, contourpy, aiosignal, yarl, torch, tiktoken, rich, pytest, pydantic, pandas, matplotlib, jsonschema-specifications, huggingface_hub, anyio, typer, tokenizers, seaborn, pydantic-extra-types, jsonschema, httpx, aiohttp, transformers, openai, mistral-common
  Running setup.py install for wget ... done
Successfully installed MarkupSafe-3.0.2 aiohttp-3.9.5 aiosignal-1.4.0 annotated-types-0.7.0 anyio-4.10.0 async-timeout-4.0.3 attrs-25.3.0 certifi-2025.8.3 charset_normalizer-3.4.3 click-8.1.8 contourpy-1.3.2 cycler-0.12.1 distro-1.9.0 exceptiongroup-1.3.0 filelock-3.19.1 fonttools-4.59.2 frozenlist-1.7.0 fsspec-2025.9.0 gguf-0.17.1 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1 huggingface_hub-0.23.5 idna-3.10 iniconfig-2.1.0 jinja2-3.1.6 jiter-0.10.0 jsonschema-4.25.1 jsonschema-specifications-2025.9.1 kiwisolver-1.4.9 markdown-it-py-4.0.0 matplotlib-3.10.6 mdurl-0.1.2 mistral-common-1.8.4 mpmath-1.3.0 multidict-6.6.4 networkx-3.4.2 numpy-1.26.4 openai-1.55.3 packaging-25.0 pandas-2.2.3 pillow-11.3.0 pluggy-1.6.0 prometheus-client-0.20.0 propcache-0.3.2 protobuf-4.25.8 pycountry-24.6.1 pydantic-2.11.7 pydantic-core-2.33.2 pydantic-extra-types-2.10.5 pygments-2.19.2 pyparsing-3.2.3 pytest-8.3.5 python-dateutil-2.9.0.post0 pytz-2025.2 pyyaml-6.0.2 referencing-0.36.2 regex-2025.9.1 requests-2.32.5 rich-14.1.0 rpds-py-0.27.1 safetensors-0.6.2 seaborn-0.13.2 sentencepiece-0.2.1 shellingham-1.5.4 six-1.17.0 sniffio-1.3.1 sympy-1.14.0 tiktoken-0.11.0 tokenizers-0.20.3 tomli-2.2.1 torch-2.4.1 tqdm-4.67.1 transformers-4.46.3 typer-0.15.4 typing-extensions-4.15.0 typing-inspection-0.4.1 tzdata-2025.2 urllib3-2.5.0 wget-3.2 yarl-1.20.1
WARNING: There was an error checking the latest version of pip.</code></pre></div>



<p class="wp-block-paragraph">　pip listは以下のとおり（実行しなくてもOK）。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>(convert2gguf) (base) Mac-Studio llama.cpp % pip list --o
Package           Version Latest  Type
----------------- ------- ------- -----
aiohttp           3.9.5   3.12.15 wheel
async-timeout     4.0.3   5.0.1   wheel
click             8.1.8   8.2.1   wheel
huggingface-hub   0.23.5  0.34.4  wheel
numpy             1.26.4  2.2.6   wheel
openai            1.55.3  1.106.1 wheel
pandas            2.2.3   2.3.2   wheel
pip               22.2.2  25.2    wheel
prometheus_client 0.20.0  0.22.1  wheel
protobuf          4.25.8  6.32.0  wheel
pydantic_core     2.33.2  2.39.0  wheel
pytest            8.3.5   8.4.2   wheel
setuptools        63.2.0  80.9.0  wheel
tokenizers        0.20.3  0.22.0  wheel
torch             2.4.1   2.8.0   wheel
transformers      4.46.3  4.56.1  wheel
typer             0.15.4  0.17.4  wheel
WARNING: There was an error checking the latest version of pip.
</code></pre></div>



<h2 class="wp-block-heading">Safetensors形式のモデルをGGUFに変換</h2>



<p class="wp-block-paragraph">　いよいよ本題のGGUFへの変換を行います。以下のコマンドを実行すると、変換が行われます。</p>



<p class="wp-block-paragraph">　今回はHuggingfaceに掲載されている、「RakutenAI-7B」を使用します。量子化ビットはbf16にします。</p>



<p class="wp-block-paragraph">　&#8211;outtypeの後ろでGGUFの変換サイズを指定することができます。詳細は以下のとおり。下に行くほどモデルの質が劣化するが、メモリ消費量は減り、トークン生成速度は速くなる傾向にある。まぁ、頓珍漢な回答も出やすくなるので注意。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>パラメータ</th><th><strong>量子化ビット</strong></th><th><strong>7Bモデルを変換した際のファイルサイズ目安</strong></th><th>備考</th></tr></thead><tbody><tr><td>f32</td><td>32bit</td><td>約26GB</td><td>高品質だが、RAMを大量に消費する。また、トークン生成速度も遅い。</td></tr><tr><td>f16</td><td>16bit</td><td>約13GB</td><td>f32程ではないが、高品質。メモリ等のリソースは消費する。</td></tr><tr><td>bf16</td><td>16bit(bfloat16)</td><td>約13GB</td><td>f16と同様だが、bfloat16に対応したデバイスでは、積和演算が高速。</td></tr><tr><td>q8_0</td><td>8bit</td><td>約7GB</td><td>8bit=1byte量子化。メモリ消費量とトークン生成速度のバランスがいいと思う。</td></tr><tr><td>tq2_0</td><td>true 2-bit ternary-plus 量子化（2.7bit）</td><td>約3GB</td><td>4bit未満に量子化。メモリ消費量が大幅に減る。</td></tr><tr><td>tq1_0</td><td>1.69 bit</td><td>約2GB</td><td>メモリ消費量が一番小さい。が、特に長文の回答を生成した際に支離滅裂な文を生成しやすくなる。</td></tr><tr><td>auto</td><td>&#8211;</td><td>変化なし</td><td>既存のGGUFファイルを再生成する時に使ったりする。よって、モデルサイズ等は変わらない。</td></tr></tbody></table></figure>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>python convert_hf_to_gguf.py &quot;Safetensors形式のモデルが格納されたフォルダのパス&quot; --outfile &quot;GGUFファイル出力先のフォルダ/RakutenAI-7B-instruct_f16.gguf&quot; --outtype bf16</code></pre></div>



<p class="wp-block-paragraph">　実行結果は以下のとおり。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>(convert2gguf) (base) Mac-Studio llama.cpp % python convert_hf_to_gguf.py &quot;Safetensors形式のモデルが格納されたフォルダのパス&quot; --outfile &quot;GGUFファイル出力先のフォルダ/RakutenAI-7B-instruct_f16.gguf&quot; --outtype bf16
INFO:hf-to-gguf:Loading model: RakutenAI-7B-instruct
INFO:hf-to-gguf:Model architecture: MistralForCausalLM
INFO:gguf.gguf_writer:gguf: This GGUF file is for Little Endian only
INFO:hf-to-gguf:Exporting model...
INFO:hf-to-gguf:gguf: loading model weight map from &#39;model.safetensors.index.json&#39;
INFO:hf-to-gguf:gguf: loading model part &#39;model-00001-of-00003.safetensors&#39;
INFO:hf-to-gguf:token_embd.weight,           torch.bfloat16 --&gt; F16, shape = {4096, 48000}
INFO:hf-to-gguf:blk.0.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.0.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.0.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.0.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.0.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.0.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.0.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.0.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.0.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.1.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.1.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.1.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.1.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.1.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.1.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.1.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.1.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.1.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.10.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.10.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.10.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.10.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.10.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.2.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.2.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.2.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.2.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.2.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.2.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.2.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.2.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.2.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.3.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.3.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.3.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.3.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.3.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.3.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.3.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.3.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.3.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.4.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.4.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.4.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.4.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.4.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.4.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.4.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.4.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.4.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.5.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.5.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.5.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.5.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.5.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.5.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.5.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.5.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.5.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.6.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.6.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.6.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.6.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.6.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.6.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.6.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.6.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.6.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.7.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.7.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.7.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.7.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.7.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.7.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.7.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.7.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.7.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.8.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.8.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.8.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.8.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.8.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.8.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.8.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.8.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.8.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.9.attn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.9.ffn_down.weight,       torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.9.ffn_gate.weight,       torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.9.ffn_up.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.9.ffn_norm.weight,       torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.9.attn_k.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.9.attn_output.weight,    torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.9.attn_q.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.9.attn_v.weight,         torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:gguf: loading model part &#39;model-00002-of-00003.safetensors&#39;
INFO:hf-to-gguf:blk.10.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.10.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.10.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.10.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.11.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.11.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.11.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.11.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.11.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.11.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.11.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.11.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.11.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.12.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.12.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.12.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.12.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.12.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.12.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.12.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.12.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.12.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.13.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.13.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.13.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.13.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.13.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.13.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.13.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.13.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.13.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.14.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.14.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.14.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.14.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.14.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.14.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.14.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.14.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.14.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.15.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.15.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.15.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.15.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.15.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.15.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.15.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.15.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.15.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.16.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.16.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.16.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.16.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.16.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.16.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.16.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.16.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.16.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.17.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.17.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.17.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.17.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.17.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.17.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.17.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.17.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.17.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.18.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.18.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.18.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.18.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.18.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.18.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.18.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.18.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.18.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.19.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.19.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.19.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.19.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.19.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.19.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.19.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.19.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.19.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.20.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.20.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.20.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.20.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.20.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.20.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.20.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.20.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.20.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.21.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.21.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.21.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.21.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.21.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.21.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:gguf: loading model part &#39;model-00003-of-00003.safetensors&#39;
INFO:hf-to-gguf:output.weight,               torch.bfloat16 --&gt; F16, shape = {4096, 48000}
INFO:hf-to-gguf:blk.21.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.21.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.21.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.22.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.22.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.22.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.22.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.22.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.22.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.22.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.22.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.22.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.23.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.23.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.23.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.23.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.23.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.23.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.23.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.23.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.23.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.24.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.24.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.24.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.24.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.24.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.24.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.24.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.24.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.24.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.25.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.25.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.25.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.25.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.25.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.25.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.25.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.25.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.25.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.26.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.26.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.26.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.26.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.26.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.26.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.26.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.26.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.26.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.27.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.27.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.27.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.27.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.27.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.27.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.27.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.27.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.27.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.28.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.28.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.28.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.28.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.28.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.28.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.28.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.28.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.28.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.29.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.29.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.29.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.29.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.29.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.29.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.29.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.29.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.29.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.30.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.30.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.30.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.30.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.30.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.30.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.30.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.30.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.30.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.31.attn_norm.weight,     torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.31.ffn_down.weight,      torch.bfloat16 --&gt; F16, shape = {14336, 4096}
INFO:hf-to-gguf:blk.31.ffn_gate.weight,      torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.31.ffn_up.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 14336}
INFO:hf-to-gguf:blk.31.ffn_norm.weight,      torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:blk.31.attn_k.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:blk.31.attn_output.weight,   torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.31.attn_q.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 4096}
INFO:hf-to-gguf:blk.31.attn_v.weight,        torch.bfloat16 --&gt; F16, shape = {4096, 1024}
INFO:hf-to-gguf:output_norm.weight,          torch.bfloat16 --&gt; F32, shape = {4096}
INFO:hf-to-gguf:Set meta model
INFO:hf-to-gguf:Set model parameters
INFO:hf-to-gguf:gguf: context length = 32768
INFO:hf-to-gguf:gguf: embedding length = 4096
INFO:hf-to-gguf:gguf: feed forward length = 14336
INFO:hf-to-gguf:gguf: head count = 32
INFO:hf-to-gguf:gguf: key-value head count = 8
INFO:hf-to-gguf:gguf: rope theta = 10000.0
INFO:hf-to-gguf:gguf: rms norm epsilon = 1e-05
INFO:hf-to-gguf:gguf: file type = 1
INFO:hf-to-gguf:Set model quantization version
INFO:hf-to-gguf:Set model tokenizer
WARNING:gguf.vocab:Unknown separator token &#39;&lt;s&gt;&#39; in TemplateProcessing&lt;pair&gt;
INFO:gguf.vocab:Setting special token type bos to 1
INFO:gguf.vocab:Setting special token type eos to 2
INFO:gguf.vocab:Setting special token type unk to 0
INFO:gguf.vocab:Setting special token type pad to 2
INFO:gguf.vocab:Setting add_bos_token to True
INFO:gguf.vocab:Setting add_sep_token to False
INFO:gguf.vocab:Setting add_eos_token to False
INFO:gguf.gguf_writer:Writing the following files:
INFO:gguf.gguf_writer:/GGUFファイル出力先のフォルダ/RakutenAI-7B-instruct_f16.gguf: n_tensors = 291, total_size = 14.7G
Writing: 100%|█████████████████████████████████████████████████████████████████████████████████████████| 14.7G/14.7G [00:50&lt;00:00, 293Mbyte/s]
INFO:hf-to-gguf:Model successfully exported to /GGUFファイル出力先のフォルダ/RakutenAI-7B-instruct/RakutenAI-7B-instruct_f16.gguf</code></pre></div>



<p class="wp-block-paragraph"></p><p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/09/20/mac%e3%81%a7safetensors%e5%bd%a2%e5%bc%8f%e3%81%ae%e3%83%a2%e3%83%87%e3%83%ab%e3%82%92gguf%e3%81%ab%e5%a4%89%e6%8f%9b%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/">MacでSafetensors形式のモデルをGGUFに変換する方法</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2025/09/20/mac%e3%81%a7safetensors%e5%bd%a2%e5%bc%8f%e3%81%ae%e3%83%a2%e3%83%87%e3%83%ab%e3%82%92gguf%e3%81%ab%e5%a4%89%e6%8f%9b%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">299</post-id>	</item>
		<item>
		<title>Mac Studio M4 Maxを買ってしまったお話</title>
		<link>https://toybox.uranos8685.mydns.jp/2025/09/08/mac-studio-m4max%e3%82%92%e8%b2%b7%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%a3%e3%81%9f%e3%81%8a%e8%a9%b1/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2025/09/08/mac-studio-m4max%e3%82%92%e8%b2%b7%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%a3%e3%81%9f%e3%81%8a%e8%a9%b1/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Mon, 08 Sep 2025 14:21:35 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=291</guid>

					<description><![CDATA[<p>　私は昔からWindows一筋でやってきていました。ホームビデオを見返すと、３歳の頃からWindowsを使ってお絵描きしていたレベルです。 　現在使っている自作Windows機の構成は以下のとおりです。 　ローカルでLL [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/09/08/mac-studio-m4max%e3%82%92%e8%b2%b7%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%a3%e3%81%9f%e3%81%8a%e8%a9%b1/">Mac Studio M4 Maxを買ってしまったお話</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">　私は昔からWindows一筋でやってきていました。ホームビデオを見返すと、３歳の頃からWindowsを使ってお絵描きしていたレベルです。</p>



<p class="wp-block-paragraph">　現在使っている自作Windows機の構成は以下のとおりです。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="wp-block-paragraph">CPU：intel Corei5-13600K</p>



<p class="wp-block-paragraph">マザーボード：Z690-F GAMING</p>



<p class="wp-block-paragraph">GPU：RTX3080(10GB)</p>



<p class="wp-block-paragraph">ストレージ：たくさん</p>
</div>



<p class="wp-block-paragraph">　ローカルでLLMを回すとなるとGPUのメモリが大切になってきます。gpt-oss-20bを動かそうとすると、16GBは消費します。私のGPUは10GBしかありませんが一応動きはします。ただ、溢れた分はRAMに逃したりなんとかしているようで、かなりレスポンス（トークン生成）が遅い状況でした。</p>



<p class="wp-block-paragraph">　これを改善する方法は２つあり、１つはGPUを載せ替えることです。狙うならメモリ24GBを搭載するRTX5070Ti SUPERですが、未発売かつ御祝儀価格がいくらになるのか分かりません。もう１つの方法が、Macを買うでした。</p>



<p class="wp-block-paragraph">　Macはユニファイドメモリを搭載しており、LLMをこのメモリで高速に回すことができます。ちょうど、Windowsを仮想マシンで起動しっぱなしにしておけるミニPCも欲しかったので、Mac mini M4の仕様を調べてみたところ、ユニファイドメモリはデフォで16GB(¥94,800)、課金して32GB(¥154,800)でした。また、LLMはメモリ帯域も大事なのですが、Mac miniは120GB/sです。LLMを動作させるには問題ありませんが、仮想デスクトップも同時起動となると、32GBでもやや心許ない。</p>



<p class="wp-block-paragraph">　ついでにMac Studio M4 Maxも調べたところ、ユニファイドメモリ36GB(¥328,800)、メモリ帯域は546GB/sといい感じ。私がApple Storeオンラインショップを覗いた際には、Mac Studio M4 Maxの整備済品が¥278,800で売られていました。これしかないと思い、整備済品をポチってしまいました。</p>



<p class="wp-block-paragraph">　出費は大きかったですが、gpt-ossもサクサク動作したので大満足でした。１つ誤算だったのは、M4チップはARM系なのでWindows仮想マシンもARM系のものがインストールされます。ギャルゲーやらなんやらを出先のスマホでプレイするための仮想環境だったのですが、互換性の問題で動作しないのがチラホラ…（君のぞとか）。</p>



<p class="wp-block-paragraph">　ちなみに、購入から４日後に整備済Macのページを見ましたが、Mac Studio M4 Maxの在庫は消し飛んでいました。ラス１だったのか在庫僅少だったのかは分かりませんが、たった１つ言えることは「様子見せずに、買っておいてよかったーーー！！！」</p>



<a rel="noopener" href="https://www.apple.com/jp/shop/refurbished/mac/mac-studio" title="Mac整備済製品" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/cocoon-resources/blog-card-cache/0f3f53904f53e7f1dffac5b4f9e61def.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Mac整備済製品</div><div class="blogcard-snippet external-blogcard-snippet">整備済製品のMacを最大15%引きの特別価格で購入できます。Appleが点検し、認定しています。1年間の製品保証も付いています。送料無料。返品も無料です。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.apple.com/jp/shop/refurbished/mac" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.apple.com</div></div></div></div></a><p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/09/08/mac-studio-m4max%e3%82%92%e8%b2%b7%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%a3%e3%81%9f%e3%81%8a%e8%a9%b1/">Mac Studio M4 Maxを買ってしまったお話</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2025/09/08/mac-studio-m4max%e3%82%92%e8%b2%b7%e3%81%a3%e3%81%a6%e3%81%97%e3%81%be%e3%81%a3%e3%81%9f%e3%81%8a%e8%a9%b1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">291</post-id>	</item>
		<item>
		<title>WindowsPCをOllamaAPIサーバ化し、HTML経由でリクエストを送る方法</title>
		<link>https://toybox.uranos8685.mydns.jp/2025/08/25/windowspc%e3%82%92ollamaapi%e3%82%b5%e3%83%bc%e3%83%90%e5%8c%96%e3%81%97%e3%80%81html%e7%b5%8c%e7%94%b1%e3%81%a7%e3%83%aa%e3%82%af%e3%82%a8%e3%82%b9%e3%83%88%e3%82%92%e9%80%81%e3%82%8b%e6%96%b9/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2025/08/25/windowspc%e3%82%92ollamaapi%e3%82%b5%e3%83%bc%e3%83%90%e5%8c%96%e3%81%97%e3%80%81html%e7%b5%8c%e7%94%b1%e3%81%a7%e3%83%aa%e3%82%af%e3%82%a8%e3%82%b9%e3%83%88%e3%82%92%e9%80%81%e3%82%8b%e6%96%b9/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Mon, 25 Aug 2025 11:08:34 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=256</guid>

					<description><![CDATA[<p>Ollamaのインストール 　https://ollama.com/downloadより、Ollamaをダウンロードしてインストールする。 モデルのダウンロード 　https://ollama.com/searchより、 [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/08/25/windowspc%e3%82%92ollamaapi%e3%82%b5%e3%83%bc%e3%83%90%e5%8c%96%e3%81%97%e3%80%81html%e7%b5%8c%e7%94%b1%e3%81%a7%e3%83%aa%e3%82%af%e3%82%a8%e3%82%b9%e3%83%88%e3%82%92%e9%80%81%e3%82%8b%e6%96%b9/">WindowsPCをOllamaAPIサーバ化し、HTML経由でリクエストを送る方法</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Ollamaのインストール</h2>



<p class="wp-block-paragraph">　<a href="https://ollama.com/download">https://ollama.com/download</a>より、Ollamaをダウンロードしてインストールする。</p>



<h2 class="wp-block-heading">モデルのダウンロード</h2>



<p class="wp-block-paragraph">　<a href="https://ollama.com/search">https://ollama.com/search</a>より、動作させたいLMMのモデルを選び、ダウンロード用のコードをコピーする（赤枠部）。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama01.png"><img loading="lazy" decoding="async" width="1024" height="505" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama01-1024x505.png" alt="" class="wp-image-257" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama01-1024x505.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama01-300x148.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama01-768x378.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama01.png 1230w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">　コマンドプロンプトを起動し、上記コードを貼り付け、実行するとモデルのダウンロードが始まる。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama02.png"><img loading="lazy" decoding="async" width="1024" height="612" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama02-1024x612.png" alt="" class="wp-image-258" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama02-1024x612.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama02-300x179.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama02-768x459.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama02.png 1072w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">Ollamaの起動・設定</h2>



<p class="wp-block-paragraph">　スタートメニューからOllamaを起動すると、上記ダウンロードしたモデルで会話ができるようになっているはず。</p>



<p class="wp-block-paragraph">　ネットワーク上の別の端末からOllamaにアクセスできるように設定を変更する必要がある。</p>



<p class="wp-block-paragraph">　画面上のSettingを開き、「Expose Ollama to the network」を有効にしておく。</p>



<h2 class="wp-block-heading">環境変数の設定</h2>



<p class="wp-block-paragraph">　Windowsの環境変数を開き、ユーザー環境変数に以下の変数を追加する。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama04-e1756116772797.png"><img loading="lazy" decoding="async" width="618" height="585" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama04-e1756116772797.png" alt="" class="wp-image-263"/></a></figure>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="wp-block-paragraph">　OLLAMA_HOST…Ollamaが利用するIPアドレスを設定するためのパラメーター。0.0.0.0と設定すれば、OllamaホストPCが使用するNICのIPアドレスを利用対象IPアドレスとして設定される。</p>
</div>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="wp-block-paragraph">　OLLAMA_ORIGINS…OllamaにアクセスできるドメインやIPアドレスを設定するパラメーター(CORS設定)。特定のIPアドレスやドメイン名のみアクセス許可をする場合は、ここに入力し、すべてのアクセスを許可する場合は*を入力する。</p>
</div>



<h2 class="wp-block-heading">OllamaがAPIサーバとして動作しているか確認</h2>



<p class="wp-block-paragraph">　Ollamaが動作しているPCのブラウザで、「Ollamaが動作しているPCのIPアドレス:11434」と入力してみる。</p>



<p class="wp-block-paragraph">　正常に動作していれば、下の写真のように「Ollama is running」と表示されるはず。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama05.png"><img loading="lazy" decoding="async" width="606" height="365" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama05.png" alt="" class="wp-image-266" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama05.png 606w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama05-300x181.png 300w" sizes="(max-width: 606px) 100vw, 606px" /></a></figure>



<p class="wp-block-paragraph">　表示されていなければ、Ollamaが起動しているか、上記設定の漏れ等がないか確認すること。</p>



<h2 class="wp-block-heading">OllamaAPIにアクセスするインターフェースの構築</h2>



<p class="wp-block-paragraph">　OllamaAPIにアクセスするためのインターフェースを構築する必要がある。今回はHTMLページでユーザーの入力を受け付け、上記APIに渡し、レスポンスをHTMLページ上に表示する形にする。</p>



<p class="wp-block-paragraph">　Ollamaが動作しているPCと同じネットワーク上にWebサイトを立ち上げる必要があり、私はSynology製のNAS(以下、「NAS」という)が同ネットワーク上にあるため、NAS上にWebサイトを立ち上げることとした。</p>



<p class="wp-block-paragraph">　NAS上のWeb Stationを起動し、Webサービスを開き、作成ボタンを押す。設定は以下を参考に行うこと。必須事項としてはPHPを使うため、サービスにはPHPを指定しておくこと。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama06.png"><img loading="lazy" decoding="async" width="699" height="539" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama06.png" alt="" class="wp-image-268" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama06.png 699w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama06-300x231.png 300w" sizes="(max-width: 699px) 100vw, 699px" /></a></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama07.png"><img loading="lazy" decoding="async" width="700" height="539" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama07.png" alt="" class="wp-image-269" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama07.png 700w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama07-300x231.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></a></figure>
</div>
</div>



<p class="wp-block-paragraph">　Web StationのWebポータルを開き、作成ボタンを押し、Webサービスポータルを選択する。</p>



<p class="wp-block-paragraph">　下記を参考に、設定していく。私はホスト名にDDNS名を割り当て、外部ネットワークから当該Webポータルにアクセスできるようにした。</p>



<p class="wp-block-paragraph">　DDNS名を割り当てる場合、DDNS名の取得、証明書の取得・設定が必要になるので、別途行っておくこと。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama08.png"><img loading="lazy" decoding="async" width="596" height="473" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama08.png" alt="" class="wp-image-271" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama08.png 596w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama08-300x238.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></a></figure>



<p class="wp-block-paragraph">　WebサービスのドキュメントルートフォルダにHTMLファイルを格納すれば、Webポータルにアクセスした際に表示される、受け皿の作成がここまでで終了した。</p>



<p class="wp-block-paragraph">　次で、HTML・PHPファイルを作成し、Ollama APIを叩くプログラムを作成する。</p>



<h2 class="wp-block-heading">HTML・PHPファイルの作成</h2>



<p class="wp-block-paragraph">　動作確認用のサンプルコードを以下に記載する。</p>



<p class="wp-block-paragraph">　以下のコードのindex.htmlとollama-chat.phpの２ファイルを作成し、Webサービスのドキュメントルートフォルダに格納すれば準備完了。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-html" data-file="index.html" data-lang="HTML" data-line="20,21,22,23,24"><code>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;ja&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;title&gt;🐑Ollama Synology&lt;/title&gt;
  &lt;style&gt;
    textarea { width: 100%; height: 80px; font-size: 15px; }
    #chatbox { border: 1px solid #ccc; padding: 10px; height: 300px; overflow-y: auto; white-space: pre-wrap; margin-top: 10px; font-size: 15px; }
    select, button { margin-top: 10px; }
    .space-right {
      margin-right: 30px; /* 右側に20ピクセルの余白を空ける */
  }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h2&gt;🐑Ollama Synology（モデル選択 & 会話継続）&lt;/h2&gt;
  &lt;form id=&quot;chatForm&quot;&gt;
    &lt;label for=&quot;model&quot;&gt;モデル:&lt;/label&gt;
    &lt;select name=&quot;model&quot; id=&quot;model&quot;&gt;
      &lt;option value=&quot;gpt-oss:20b&quot;&gt;gpt-oss:20b&lt;/option&gt;
      &lt;option value=&quot;gemma2&quot;&gt;gemma2&lt;/option&gt;
      &lt;option value=&quot;gemma3&quot;&gt;gemma3&lt;/option&gt;
    &lt;/select&gt;&lt;br&gt;
    &lt;br&gt;
    &lt;textarea name=&quot;prompt&quot; placeholder=&quot;メッセージを入力...&quot;&gt;&lt;/textarea&gt;&lt;br&gt;
    &lt;button type=&quot;submit&quot;&gt;送信&lt;/button&gt;
    &lt;span class=&quot;space-right&quot;&gt;&lt;/span&gt;
    &lt;button type=&quot;button&quot; id=&quot;resetBtn&quot;&gt;履歴をリセット&lt;/button&gt; 
  &lt;/form&gt;
  &lt;div id=&quot;chatbox&quot;&gt;&lt;/div&gt;
  &lt;script&gt;
    const chatbox = document.getElementById(&#39;chatbox&#39;);
    const form = document.getElementById(&#39;chatForm&#39;);
    const modelSelect = document.getElementById(&#39;model&#39;);
    let messages = []; // 👈 会話履歴を保持
    form.addEventListener(&#39;submit&#39;, async function(e) {
      e.preventDefault();
      const prompt = form.prompt.value.trim();
      if (!prompt) return;
      const model = modelSelect.value;
      // 履歴に user の発言を追加
      messages.push({ role: &#39;user&#39;, content: prompt });
      // 表示に追加
      chatbox.innerHTML += `🧑‍💬 あなた: ${prompt}\n`;
      form.prompt.value = &#39;&#39;;
      form.prompt.disabled = true;
      try {
        const res = await fetch(&#39;ollama-chat.php&#39;, {
          method: &#39;POST&#39;,
          headers: { &#39;Content-Type&#39;: &#39;application/json&#39; },
          body: JSON.stringify({
            model: model,
            messages: messages
          })
        });
        const data = await res.json();
        const reply = data.message?.content || data.response || data.error || &#39;応答なし&#39;;
        // 履歴に assistant の返答を追加
        messages.push({ role: &#39;assistant&#39;, content: reply });
        chatbox.innerHTML += `🐑 Ollama: ${reply}\n`;
        chatbox.scrollTop = chatbox.scrollHeight;
      } catch (err) {
        console.error(&#39;JavaScript エラー:&#39;, err);
        chatbox.innerHTML += `⚠️ エラー: 応答が得られませんでした\n`;
      } finally {
        form.prompt.disabled = false;
        form.prompt.focus();
      }
    });
    // ✅ リセットボタンの処理
    resetBtn.addEventListener(&#39;click&#39;, function () {
      if (confirm(&#39;会話履歴をリセットしますか？&#39;)) {
        messages = []; // これで再代入可能に
        chatbox.textContent = &#39;🔄 会話履歴がリセットされました。\n&#39;;
        form.prompt.focus();
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></div>



<p class="wp-block-paragraph">　コードをいじる必要がある箇所は１つあり、&lt;select name=&#8221;model&#8221; id=&#8221;model&#8221;&gt;以下のところで、Ollamaにインストールしているモデル名を設定する必要がある。</p>



<p class="wp-block-paragraph">　すべてのモデル名を入れる必要はないが、ここを設定しておくと、ユーザが使用するモデルをHTML上で随時切り替えが可能になる。</p>



<p class="wp-block-paragraph"></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="ollama-chat.php" data-lang="PHP" data-line="16"><code>&lt;?php
error_reporting(E_ALL);
ini_set(&#39;display_errors&#39;, 1);
$input = json_decode(file_get_contents(&#39;php://input&#39;), true);
$model = $input[&#39;model&#39;] ?? &#39;llama3&#39;;
$messages = $input[&#39;messages&#39;] ?? [];
$postData = json_encode([
    &#39;model&#39; =&gt; $model,
    &#39;messages&#39; =&gt; $messages,
    &#39;stream&#39; =&gt; false
]);
$ch = curl_init(&#39;http://Ollamaが動作しているPCのIPアドレス:11434/api/chat&#39;);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [&#39;Content-Type: application/json&#39;]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 90);
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
    http_response_code(500);
    echo json_encode([&#39;error&#39; =&gt; $error]);
} else {
    header(&#39;Content-Type: application/json&#39;);
    echo $response;
}
?&gt;</code></pre></div>



<p class="wp-block-paragraph">　コードをいじる必要がある箇所は１つあり、「$ch = curl_init(&#8216;http://Ollamaが動作しているPCのIPアドレス:11434/api/chat&#8217;);」内をPCのIPアドレスで置き換える必要がある。</p>



<h2 class="wp-block-heading">実際に動作している様子</h2>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama09.png"><img loading="lazy" decoding="async" width="673" height="583" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama09.png" alt="" class="wp-image-272" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama09.png 673w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/ollama09-300x260.png 300w" sizes="(max-width: 673px) 100vw, 673px" /></a></figure>



<p class="wp-block-paragraph">　リクエストはすべてWindowsPCで起動しているOllama上で処理しているため、PCの電源を落としたりOllamaを閉じたりしたら、当然応答は帰ってこなくなる。Ollamaを再起動すれば、また応答するようになる。</p>



<p class="wp-block-paragraph">　ちなみに、当方のWindowsPCにはRTX3080（VRAM10GB）を搭載している。gpt-oss:20bはVRAM16GB推奨だが、一応動いた（VRAMは10GB中9GB使用していた）。上記の様な簡単なリクエストは数秒でレスポンスが返ってくるが、重いリクエストは90秒待っても帰ってこなかった。残念。RTX5070ti superはVRAM24GBらしいので、発売されたら載せ替えようかなぁ。</p>



<p class="wp-block-paragraph">　以上。サラバダー！</p><p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/08/25/windowspc%e3%82%92ollamaapi%e3%82%b5%e3%83%bc%e3%83%90%e5%8c%96%e3%81%97%e3%80%81html%e7%b5%8c%e7%94%b1%e3%81%a7%e3%83%aa%e3%82%af%e3%82%a8%e3%82%b9%e3%83%88%e3%82%92%e9%80%81%e3%82%8b%e6%96%b9/">WindowsPCをOllamaAPIサーバ化し、HTML経由でリクエストを送る方法</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2025/08/25/windowspc%e3%82%92ollamaapi%e3%82%b5%e3%83%bc%e3%83%90%e5%8c%96%e3%81%97%e3%80%81html%e7%b5%8c%e7%94%b1%e3%81%a7%e3%83%aa%e3%82%af%e3%82%a8%e3%82%b9%e3%83%88%e3%82%92%e9%80%81%e3%82%8b%e6%96%b9/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">256</post-id>	</item>
		<item>
		<title>DockerでJupyterLabを構成する</title>
		<link>https://toybox.uranos8685.mydns.jp/2025/08/03/docker%e3%81%a7jupyterlab%e3%82%92%e6%a7%8b%e6%88%90%e3%81%99%e3%82%8b/</link>
					<comments>https://toybox.uranos8685.mydns.jp/2025/08/03/docker%e3%81%a7jupyterlab%e3%82%92%e6%a7%8b%e6%88%90%e3%81%99%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[Uranos8685]]></dc:creator>
		<pubDate>Sat, 02 Aug 2025 16:18:09 +0000</pubDate>
				<category><![CDATA[テクノロジー]]></category>
		<guid isPermaLink="false">https://toybox.uranos8685.mydns.jp/?p=218</guid>

					<description><![CDATA[<p>　仕事でPythonを扱うことになり、自習のために私物のSynology製NASのDockerにJupyterLabを入れようとした際にいろいろとはまったので、構成方法を備忘録としてメモ。 　まず、パッケージセンターから [&#8230;]</p>
<p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/08/03/docker%e3%81%a7jupyterlab%e3%82%92%e6%a7%8b%e6%88%90%e3%81%99%e3%82%8b/">DockerでJupyterLabを構成する</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">　仕事でPythonを扱うことになり、自習のために私物のSynology製NASのDockerにJupyterLabを入れようとした際にいろいろとはまったので、構成方法を備忘録としてメモ。</p>



<p class="wp-block-paragraph">　まず、パッケージセンターからContainer Managerをダウンロードし、起動する。サイドメニューに、レジストリがあるのでこれを開き、検索ボックスに「Jupyter」と入力すると、「jupyter/datascience-notebook」が出てくるので、これをダウンロードする。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter01-e1754234318425.png"><img loading="lazy" decoding="async" width="1024" height="513" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter01-e1754234318425-1024x513.png" alt="" class="wp-image-220" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter01-e1754234318425-1024x513.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter01-e1754234318425-300x150.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter01-e1754234318425-768x385.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter01-e1754234318425.png 1277w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">　Container Managerのサイドメニューからイメージをクリックすると、ダウンロード済みのDockerイメージが表示される。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter02-1.png"><img loading="lazy" decoding="async" width="1024" height="546" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter02-1-1024x546.png" alt="" class="wp-image-222" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter02-1-1024x546.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter02-1-300x160.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter02-1-768x410.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter02-1.png 1218w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">　jupyter/datascience-notebookを選択した状態で実行ボタンをおすと、コンテナ作成画面が表示される。</p>



<p class="wp-block-paragraph">　コンテナ名は好きに変えてOK。NASを再起動する度にJupyterLabを起動するのが面倒なら自動再起動を有効にすること。</p>



<p class="wp-block-paragraph">　設定が終わったら次へボタンを押す。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter03-1.png"><img loading="lazy" decoding="async" width="726" height="570" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter03-1.png" alt="" class="wp-image-224" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter03-1.png 726w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter03-1-300x236.png 300w" sizes="(max-width: 726px) 100vw, 726px" /></a></figure>



<p class="wp-block-paragraph">　詳細設定画面が表示される。　</p>



<p class="wp-block-paragraph">　ポート番号は、他のサービス等と被らないようにすればOK。</p>



<p class="wp-block-paragraph"> ボリューム設定は、JupyterLabで書いたコードやファイルをどこの共有フォルダにマッピングするかなので自由に。ただ、マウントパスについてはいろいろなサイトでは「<strong>/home/jovyan/work</strong>」とするよう案内されているが、この設定だとJupyterにて作成したコードファイルがNAS側から見えなかった。</p>



<p class="wp-block-paragraph">　これは、jupyter/datascience-notebookのイメージのディレクトリ設定では、コンテナのホーム位置が「/home/jovyan/」となっているため、コンテナ内で作成されたworkフォルダはNAS側から見えるが、作成したコードが保存される「/home/jovyan/code」フォルダはマッピングの対象外となっているためである。</p>



<p class="wp-block-paragraph">　よって、「<strong>/home/jovyan/code</strong>」とすることでJupyterLabで作成したファイルをNAS側から見られるようになる。</p>



<p class="wp-block-paragraph">　また、Jupyterの設定ファイル（jupyter_notebook_config.py）は「<strong>/home/jovyan/.jupyter</strong>」以下に生成されるため、これもマウントしておく。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter4.png"><img loading="lazy" decoding="async" width="733" height="574" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter4.png" alt="" class="wp-image-240" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter4.png 733w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter4-300x235.png 300w" sizes="(max-width: 733px) 100vw, 733px" /></a></figure>



<p class="wp-block-paragraph">　環境変数には「<strong>JUPYTER_ENABLE_LAB</strong>」を追加し、値を「<strong>yes</strong>」とする。</p>



<p class="wp-block-paragraph">　設定が終わったら、次へ進む。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter05.png"><img loading="lazy" decoding="async" width="733" height="570" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter05.png" alt="" class="wp-image-227" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter05.png 733w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter05-300x233.png 300w" sizes="(max-width: 733px) 100vw, 733px" /></a></figure>



<p class="wp-block-paragraph">　要約画面が表示されるので、設定に誤りがないことを確認し、完了ボタンを押す。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter6.png"><img loading="lazy" decoding="async" width="736" height="576" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter6.png" alt="" class="wp-image-242" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter6.png 736w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter6-300x235.png 300w" sizes="(max-width: 736px) 100vw, 736px" /></a></figure>



<p class="wp-block-paragraph">　Container Managerのサイドメニューからコンテナをクリックすると、作成済みのコンテナが表示され、ここにjupyter/datascience-notebookが表示されているはず。</p>



<p class="wp-block-paragraph">　jupyter/datascience-notebookをクリックすると各種情報が表示される。全般・統計・ログの内からログを選択する。</p>



<p class="wp-block-paragraph">　Containerが起動後、少し待つとログにtokenが表示される。検索ボックスに「<strong>token</strong>」と入力すると、該当ログ行を表示できる。このtokenは、JupyterLabへ初回ログインする際に必要なので、「token=」より後ろの部分をコピーしておく。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter07.png"><img loading="lazy" decoding="async" width="1024" height="519" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter07-1024x519.png" alt="" class="wp-image-229" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter07-1024x519.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter07-300x152.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter07-768x389.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter07.png 1215w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">　NASと同じネットワークにつながった端末のブラウザにNASのIPアドレスと先ほど設定したポート番号を入力しアクセスする。先ほどのログにはIPアドレスとして127.0.0.1が表示されるが、これをブラウザに入力してもJupyterLabにアクセスできないので注意。</p>



<p class="wp-block-paragraph">　JupyterLabにアクセスできると表示されるのが、下のページ。一番上の「Password or token」欄に先ほどコピーしたtokenを入れればログインできるが、毎回tokenをコピーするのは面倒なので、一番下のToken欄にtokenを貼り付け、任意のパスワードを入力する。</p>



<figure class="wp-block-image size-full"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter08.png"><img loading="lazy" decoding="async" width="600" height="897" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter08.png" alt="" class="wp-image-231" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter08.png 600w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter08-201x300.png 201w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure>



<p class="wp-block-paragraph">　これで、ブラウザからJupyterを実行することができるようになる。NASのネットワークにVPNを張れば、外出先からVPN接続してタブレットやスマホからログインすることもできる。</p>



<p class="wp-block-paragraph">　Jupyterはデフォルトでは英語のみなので、日本語化したければ、画像のように以下のコードを実行すれば、Languageに日本語が出てくる。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python" data-show-lang="1"><code>pip install jupyterlab-language-pack-ja-JP</code></pre></div>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter09.png"><img loading="lazy" decoding="async" width="1024" height="336" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter09-1024x336.png" alt="" class="wp-image-232" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter09-1024x336.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter09-300x99.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter09-768x252.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter09-1536x504.png 1536w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter09.png 1547w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">　また、コード入力中はTabキーを押すことで候補を表示してくれるが、タブレットやスマホではTabキーがなかったりするので、常時候補を表示してほしかったりする。</p>



<p class="wp-block-paragraph">　そのときは、設定メニュー→設定→Code Completionと進み、「<strong>Enable autocompletion</strong>」にチェックを入れることで、常時候補を表示してくれるようになる。</p>



<figure class="wp-block-image size-large"><a href="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10.png"><img loading="lazy" decoding="async" width="1024" height="572" src="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10-1024x572.png" alt="" class="wp-image-233" srcset="https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10-1024x572.png 1024w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10-300x167.png 300w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10-768x429.png 768w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10-120x68.png 120w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10-160x90.png 160w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10-320x180.png 320w, https://toybox.uranos8685.mydns.jp/wp-content/uploads/2025/08/Jupyter10.png 1055w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure><p>The post <a href="https://toybox.uranos8685.mydns.jp/2025/08/03/docker%e3%81%a7jupyterlab%e3%82%92%e6%a7%8b%e6%88%90%e3%81%99%e3%82%8b/">DockerでJupyterLabを構成する</a> first appeared on <a href="https://toybox.uranos8685.mydns.jp">Uranos8685のおもちゃ箱</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://toybox.uranos8685.mydns.jp/2025/08/03/docker%e3%81%a7jupyterlab%e3%82%92%e6%a7%8b%e6%88%90%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">218</post-id>	</item>
	</channel>
</rss>
