手元の PC で動作するAIアシスタント — Ollama・Super Agent Party によるマルチモーダル/RAG/AI エージェント環境の構築(CPU/GPU 対応・Windows)

Ollama と Super Agent Party で、データを外部送信しないローカル LLM 環境を Windows 上に構築できる。軽量モデルで動作確認した後、gemma4 系モデルで画像入力に対応する。Super Agent Party を使い、音声対話・ロールプレイ・物語生成・Discord ボット・RAG をローカル実行で試すことができる。

【サイト内の関連ページ】

Windows の基本操作・コマンド操作・設定と、アプリ・開発環境・ローカル AI の導入

目次

第1章 はじめに

本手順は、Windows 上でローカル LLM 環境を構築し、図(画像)や音声を理解させるマルチモーダル利用も行う。推論エンジンは Ollama、フロントエンド(操作・表示を担うソフトウェア)は Super Agent Party(以下 SAP)である。

Ollama には、コンテキスト長 262144 トークンおよび KV キャッシュ q8_0 を設定する。これらの設定は最初のインストール時に一度だけ行う。

本手順では、動作確認用の軽量テキストモデル LFM2.5-1.2B-Instruct、画像入力に対応する gemma4:e2b-it-qat および gemma4:12b-it-qat の 3 種類の LLM を使用する。このうち LFM2.5-1.2B-Instruct と gemma4:e2b-it-qat は、CPU のみの PC や少 VRAM の GPU でも動作する。gemma4:12b-it-qat は、より高いメモリ要件を必要とする(詳細は「使用するモデル」の章を参照)。

なお、画像入力(マルチモーダル)機能の動作確認は演習 1 の最後の手順で行う。

第2章 前提知識(用語の整理)

LLM(大規模言語モデル)とは

LLM(Large Language Model)は、大量のテキストを学習したニューラルネットワークであり、対話・要約・翻訳などを行う。入力テキストをトークン(語や記号の単位)に分割し、続く次のトークンを確率的に予測することで文章を生成する。モデルの規模はパラメータ数(例:1.2B=12 億)で表される。出力は確率に基づく予測であり、ハルシネーション(もっともらしいが事実でない出力)を含む可能性がある。

マルチモーダル(画像入力)とは

マルチモーダルとは、テキストだけでなく画像など複数種類の入力を扱える性質をいう。画像入力に対応したモデル(ビジョンモデル)は、図・グラフ・表の画像や、数式・化学式を撮影した画像を読み取り、その内容を説明したり質問に答えたりできる。本手順では gemma4 系モデルがこれに対応する。

量子化

量子化は、モデル内部の重みパラメータを低ビット精度(例:32 ビット浮動小数点を 4 ビット整数)に圧縮し、ファイルサイズと必要メモリを削減する技術である。精度はある程度低下するが、CPU や少 VRAM の GPU でも実行可能になる。Q4_K_M は 4 ビットを基本としつつ重要な層のみ精度を保つ方式で、サイズと精度のバランスが取れている。QAT(Quantization-Aware Training)は、学習の段階から量子化を織り込むことで、4 ビットへ量子化してもメモリ使用量を削減しつつ精度低下を抑える手法である。

GPU の利用(CUDA 等)について

推論エンジン Ollama は、GPU があれば自動的に検出して利用する(NVIDIA GPU では CUDA、AMD GPU では ROCm、対応 GPU がない場合は CPU で実行)。利用者が CUDA 等を明示的に設定する必要はない。

ローカル運用とは

ローカル運用とは、外部のサーバへデータを送信せず、手元のマシン内で推論を完結させる運用形態である。入力した文書やプロンプトが外部に送信されないため、機密文書を外部の生成 AI サービスに送れない場面でも安全に扱える。ただし、Discord などの外部プラットフォームを介して利用する場合は、メッセージ自体がそのプラットフォームの外部サーバを経由する点に注意が必要である(詳細は演習 5 を参照)。

本手順で用いる 2 つの基盤ソフトウェア

Ollama の推論エンジンについて

Ollama は、量子化された GGUF 形式(モデルの重みを圧縮して保存するファイル形式)のモデルを CPU・GPU の両方で実行できる推論エンジンを内蔵する。GPU の利用方法は前述の「GPU の利用(CUDA 等)について」のとおりであり、利用者が推論エンジンを直接操作する必要はない。

RAG とは

RAG(Retrieval-Augmented Generation、検索拡張生成)は、ユーザの質問に応じて、事前に登録した資料から関連箇所を検索し、その検索結果を文脈として LLM に渡したうえで応答を生成する仕組みである。LLM が学習していない固有情報や最新情報を要する質問への対応力が向上する。

コンテキスト長について

コンテキスト長とは、LLM が一度に処理できる入力+出力のトークン数の上限である。本手順では、gemma4:12b-it-qat のコンテキスト長上限である 262144 トークンを基準に Ollama を設定する。設定値がモデル側の上限を超える場合、多くの環境では Ollama がモデル側の上限に合わせて動作するため、上限が 131072 トークンの gemma4:e2b-it-qat でも、上限が 32768 トークンの LFM2.5-1.2B-Instruct でも、同じ設定のまま使い回せる。ただし、コンテキスト長を大きく設定するほど推論時のメモリ使用量は増え、またこの調整の挙動は Ollama のバージョンや実行環境によって異なるため、メモリに余裕のない PC では応答が遅くなる、または応答が返らなくなることがある。不調があれば、各モデルの実際の上限値(LFM2.5-1.2B-Instruct は 32768、gemma4:e2b-it-qat は 131072)まで num_ctx を下げて再試行する。現在の設定値は ollama show <モデル名> で確認できる。

KV キャッシュについて

KV キャッシュは、モデルが過去のトークンの中間表現を保持する領域である。q8_0 はこの領域を 8 ビット整数に量子化し、FP16(16 ビット浮動小数点)と比較してメモリ使用量を抑える設定である。

第3章 使用するモデル

LFM2.5-1.2B-Instruct(動作確認・テキスト専用)

Liquid AI 社の軽量モデルである。パラメータ数約 1.2B(正確には 1.17B)と軽量で動作が速く、英語・アラビア語・中国語・フランス語・ドイツ語・日本語・韓国語・スペイン語の 8 言語に対応する。コンテキスト長は 32768 トークン。VRAM 目安は Q4_K_M 量子化時で約 1〜2GB(モデルファイル約 731MB)であり、GPU 実行時はこの程度の VRAM、CPU のみで実行する場合は同程度のシステムメモリがあれば動作する。テキスト専用のため画像入力には対応しない。開発元は本モデルを RAG・データ抽出・エージェント用途に推奨しており、本手順では動作確認用として位置づける。公式情報:https://www.liquid.ai/blog/introducing-lfm2-5-the-next-generation-of-on-device-ai

gemma4:e2b-it-qat(画像入力対応・軽量)

Google DeepMind のオープンモデル Gemma 4 シリーズのエッジデバイス向け E2B モデル(E は実効(Effective)パラメータの意。Per-Layer Embeddings という技術により、保存上のパラメータ数より少ない実効パラメータ数で推論できる仕組みを指し、エッジ機器向けに設計されている)の QAT 版(QAT については前述の「量子化」を参照)である。ダウンロード容量約 4.3GB、コンテキスト長 128K(131072 トークン)。VRAM/メモリ目安は QAT 量子化時でモデル本体が 3〜4GB 程度とされるが、これに加えて、設定するコンテキスト長に応じた KV キャッシュ分も必要になる。正確な使用量は実行環境に依存するため、ollama show gemma4:e2b-it-qat 等で確認することを推奨する。テキストに加えて画像入力に対応する。思考モード(応答前に内部で推論過程を生成する機能)を備える。Gemma 4 の思考モードは、システムプロンプトの先頭に <|think|> トークンを含めることで有効化され、このトークンを外すことで無効化される(多くの実行環境ではチャットテンプレートが自動処理する)。応答に時間がかかる場合はこの方法で思考を無効化できるが、E2B はモデルや環境によって挙動が異なる。ライセンスは Apache 2.0。

gemma4:12b-it-qat(画像入力対応・上位)

同シリーズの 12B モデルの QAT 版である。ダウンロード容量約 7.2GB、コンテキスト長 256K(262144 トークン)。e2b より規模が大きく、より高い推論能力を要する用途に適する。テキストに加えて画像入力に対応し、思考モード(前述の gemma4:e2b-it-qat と同様に、システムプロンプト先頭の <|think|> トークンで制御する)を備える。ライセンスは Apache 2.0。QAT による軽量化により、モデル本体の重みは VRAM/メモリで 7〜8GB 程度(ダウンロード容量とほぼ同等)を占める。これに加えて、設定するコンテキスト長(num_ctx)に応じた KV キャッシュ分の VRAM/メモリも必要になり、本手順のように 262144 トークン近くまで使う場合はその分が上乗せされる。目安として、VRAM/メモリ 16GB クラスの環境であれば、OS やアプリの分も含めて動作させやすい。正確な使用量は環境によって異なるため、実際の使用量を観測しながら調整することを推奨する。

第4章 埋め込みモデル

本手順で使用する埋め込みモデルは次のとおり。

第5章 Python 3.12 のインストール

Pythonのインストールを行い、Pythonのプログラムを実行する環境を整える。扱う環境は、Windows搭載パソコンである。金子研究室では、Python 3.12.10を推奨する。

[Windows での Python 3.12 のインストール手順を見るには、ここをクリック]

Windows での Python 3.12 のインストール

以下のいずれかの方法でPython 3.12をインストールする。Pythonがインストール済みの場合、この手順は不要である。

方法 1:winget によるインストール

インストールコマンドの実行方法

管理者権限コマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動するとPATHが反映される。

REM Python 3.12 をシステム領域にインストール
winget install --id Python.Python.3.12 -e --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0 Include_pip=1 Include_launcher=1 InstallLauncherAllUsers=1 TargetDir=\"C:\Program Files\Python312\""

REM Python と Scripts を PATH 先頭に追加
powershell -NoProfile -Command "$p='C:\Program Files\Python312'; $s=\"$p\Scripts\"; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and (';'+$c+';' -notlike \"*;$p;*\") -and (';'+$c+';' -notlike \"*;$s;*\")){[Environment]::SetEnvironmentVariable('Path',\"$p;$s;$c\",'Machine')}"

方法 2:インストーラーによるインストール

  1. Python公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンからWindows用インストーラーをダウンロードする。
  2. ダウンロードしたインストーラーを実行する。
  3. 初期画面の下部に表示される「Add python.exe to PATH」にチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから python コマンドを実行できない。
  4. 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。

インストールの確認

コマンドプロンプトで以下を実行する。

python --version

バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。

第6章 Build Tools・CUDA Toolkit・PyTorch のインストール

本章では、C++ ビルドツール、NVIDIA CUDA Toolkit、PyTorch のインストールを行い、GPU を活用した機械学習プログラムを実行する環境を整える。扱う環境は、Windows 搭載パソコンである。

[Build Tools・CUDA Toolkit・PyTorch のインストール手順を見るには、ここをクリック]

Windows での Build Tools for Visual Studio 2026 のインストール

Build Tools for Visual Studio 2026 は、C++ ソースコードを Windows 用バイナリにコンパイルするための開発ツール群である。unsloth 等の一部 Python パッケージは、インストール時に C++ コードのビルドを必要とするため、これらのツールが必須となる。

以下のコマンドは、Build Tools が未インストールの場合は winget で新規インストールし、インストール済みの場合は setup.exe modify でコンポーネントを追加する(バージョンは変更しない)。

インストールコマンドの実行方法

管理者権限コマンドプロンプトを起動する(手順:Windows キーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

REM VC++ ランタイム
winget install --scope machine --id Microsoft.VCRedist.2015+.x64 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet /norestart"

REM ============================================================
REM Visual Studio Build Tools + Desktop development with C++
REM (VCTools、MSBuildTools、CMake連携、Clang、Windows 11 SDK)
REM ============================================================
REM 進行中のインストーラーを停止(ロック競合回避)
taskkill /F /IM vs_setup.exe /T >nul 2>&1
taskkill /F /IM vs_installer.exe /T >nul 2>&1
taskkill /F /IM vs_installerservice.exe /T >nul 2>&1

REM 未インストール時: winget で新規インストール
REM インストール済み時: setup.exe modify でコンポーネント追加(バージョンは変更しない)
winget list --id Microsoft.VisualStudio.BuildTools 2>nul | findstr /i "BuildTools" >nul 2>&1
if %ERRORLEVEL% EQU 0 (
    for /f "usebackq delims=" %P in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -property installationPath`) do start /wait "" "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" modify --installPath "%P" --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100 --includeRecommended --quiet --norestart --nocache
) else (
    winget install --scope machine --id Microsoft.VisualStudio.BuildTools -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "--quiet --wait --norestart --nocache --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100"
)

REM 破損時の修復(任意、動作がおかしくなった場合)
REM "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" repair --installPath "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools" --quiet --norestart

REM 導入確認(インストールパスが表示されれば正常)
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -products * -requires Microsoft.VisualStudio.Workload.VCTools -property installationPath

上記のコマンドでは、Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし、続いて以下のコンポーネントを追加している。

追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。

Windows での NVIDIA CUDA Toolkit のインストール

NVIDIA CUDA Toolkit は、NVIDIA GPU 上で計算を行うためのコンパイラ・ライブラリ群である。PyTorch や vLLM 等が GPU を利用するために必要となる。GPU を使用しない場合、この手順は不要である。

前提条件:NVIDIA GPU、NVIDIA ドライバ、Build Tools for Visual Studio もしくは Visual Studio が必要である。

インストール中の注意:他のウインドウは閉じておくこと。

インストールコマンドの実行方法

管理者権限コマンドプロンプトを起動する(手順:Windows キーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

REM NVIDIA CUDA Toolkit 12.8 をシステム領域にインストール
winget install --scope machine --id Nvidia.CUDA --version 12.8 -e --silent --disable-interactivity --force --uninstall-previous --accept-source-agreements --accept-package-agreements --override "-s -n"

REM 環境変数TEMP, TMPの設定(一時ファイルの保存先を短いパスに変更)
mkdir C:\TEMP
setx TEMP "C:\TEMP" /M
setx TMP "C:\TEMP" /M

環境変数 TEMP および TMP を C:\TEMP に変更しているのは、後続のインストール処理で長いパス名や空白を含むパス名がエラーの原因となる場合があるためである。

Windows での PyTorch のインストール

https://pytorch.org のインストールガイドに従い、自環境の CUDA バージョンに対応したコマンドを取得して実行する。CUDA バージョンは以下で確認できる。

nvcc --version

Python 3.12、CUDA 12.6 以上の場合は、管理者権限コマンドプロンプトを起動し、以下を実行する。cu128 は CUDA 12.8 用のタグである。CUDA バージョンが異なる場合は、上記公式サイトで該当するタグを確認し、URL 末尾の cu128 を置き換えること。

pip install --no-user -U numpy torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

以降の章では、必要に応じて題材に応じた必要なソフトウェアを追加する。

第7章 Ollama・モデル・Open WebUI のインストール

はい、理解しました。**新規のエラーチェックや例外処理は追加せず**、停止原因になっていた箇所はコードの流れ・実行方法そのものを直す形で修正しました。特に、元コードの `if errorlevel 1 echo ... & exit /b 1` は `exit /b 1` が無条件実行されるため、モデルダウンロード前に止まる問題がありました。修正版では `where ollama` に依存せず、フルパス実行に変更しています。 以下が修正後のガイド全体です。 ---
[Windows でのインストール・設定手順を見るには、ここをクリック] 本章では、**Ollama**、**3 つのモデル**(LFM2.5-1.2B-Instruct、gemma4:e2b-it-qat、gemma4:12b-it-qat)、**埋め込みモデル bge-m3**、**Python 3.11**、**Open WebUI**、**Git** のインストール手順を示す。 設定としては、Ollama の動作パラメータを Machine スコープの環境変数として設定する。内容は、Flash Attention の有効化(`OLLAMA_FLASH_ATTENTION=1`)、KV キャッシュの 8bit 量子化(`OLLAMA_KV_CACHE_TYPE=q8_0`)、コンテキスト長の拡張(`OLLAMA_CONTEXT_LENGTH=262144`)、モデル保存先の `C:\Ollama\models` への変更(`OLLAMA_MODELS`)、同時ロードモデル数の 1 への制限(`OLLAMA_MAX_LOADED_MODELS=1`)、同時処理数の 1 への制限(`OLLAMA_NUM_PARALLEL=1`)である。 Flash Attention は KV キャッシュ量子化を使用するために必要な高速化機能である。また、同時ロードモデル数を 1 に制限することで、モデル切替時に複数モデルが同時にメモリ上へ残りにくい設定にしている。 この手順では、スタートメニューに次のショートカットも作成する。 - Ollama LFM2.5 1.2B - Ollama Gemma4 e2b - Ollama Gemma4 12b - Open WebUI (Ollama) ショートカットは直接複雑なコマンドを保持せず、`C:\Ollama` に作成される起動用 `.cmd` ファイルを呼び出す。これにより、引用符や `&` の解釈による起動失敗を避ける。また、起動用 `.cmd` 内でも Ollama 用環境変数を明示的に設定するため、Machine スコープ環境変数の反映待ちに依存しにくい。 ### ハードウェアの前提 - インターネット接続が必要である。 - ディスク空き容量は 30GB 以上を推奨する。モデル 3 種、埋め込みモデル、Python、Open WebUI、pip キャッシュ等で 20GB を超える場合がある。 - メモリ搭載量は 16GB 以上を目安とする。ただし、`gemma4:12b-it-qat` を長いコンテキストで使用する場合は、より多くのメモリが必要になる。32GB 以上、余裕を見れば 64GB 以上が望ましい。 - 少 VRAM の GPU や CPU のみの PC でも軽量モデルは動作する場合があるが、`gemma4:12b-it-qat` は時間がかかる場合がある。 ハードウェア要件の事前確定は難しい。新規に PC を準備する前に、現有の機器で本手順を試行し、性能面の問題の有無を確認したうえで、本格運用のハードウェアを決定する。 ### インストールコマンドの実行方法 [管理者権限](https://www.kkaneko.jp/cc/wininst/windowsuser.html#runas)で[コマンドプロンプト](https://www.kkaneko.jp/cc/wininst/windowsuser.html#cmdexe)を起動する。 手順:Windows キーまたはスタートメニュー → `cmd` と入力 → 右クリック → **「管理者として実行」** Machine スコープの環境変数設定、`C:\Ollama` の作成、Python/Git の Machine スコープインストール、共通スタートメニューへのショートカット作成には管理者権限が必要である。実行時は、次のコマンド全体をコマンドプロンプトにコピー&ペーストする。 ```batch REM ============================================================ REM 管理者権限チェック fltmc >nul 2>&1 if errorlevel 1 ( echo [エラー] 管理者権限で実行してください & pause & exit /b 1 ) REM winget パッケージ一覧のローカルキャッシュを更新 winget source update REM === 1. Ollama 環境変数を Machine スコープで事前設定 === REM インストール前に設定することで、Ollama 起動時から正しい設定が読み込まれる powershell -NoProfile -Command "[Environment]::SetEnvironmentVariable('OLLAMA_FLASH_ATTENTION','1','Machine'); [Environment]::SetEnvironmentVariable('OLLAMA_KV_CACHE_TYPE','q8_0','Machine'); [Environment]::SetEnvironmentVariable('OLLAMA_CONTEXT_LENGTH','262144','Machine'); [Environment]::SetEnvironmentVariable('OLLAMA_MODELS','C:\Ollama\models','Machine'); [Environment]::SetEnvironmentVariable('OLLAMA_MAX_LOADED_MODELS','1','Machine'); [Environment]::SetEnvironmentVariable('OLLAMA_NUM_PARALLEL','1','Machine')" REM 現在のコマンドプロンプトにも同じ設定を反映 set "OLLAMA_FLASH_ATTENTION=1" set "OLLAMA_KV_CACHE_TYPE=q8_0" set "OLLAMA_CONTEXT_LENGTH=262144" set "OLLAMA_MODELS=C:\Ollama\models" set "OLLAMA_MAX_LOADED_MODELS=1" set "OLLAMA_NUM_PARALLEL=1" REM === 2. 使用するモデル名 === set "MODEL_LFM=LiquidAI/lfm2.5-1.2b-instruct" set "MODEL_GEMMA_LIGHT=gemma4:e2b-it-qat" set "MODEL_GEMMA_12B=gemma4:12b-it-qat" set "MODEL_EMBED=bge-m3" REM === 3. 既存の Ollama プロセスを停止(ファイルロック解除のため) === taskkill /IM ollama.exe /F >nul 2>&1 taskkill /IM "ollama app.exe" /F >nul 2>&1 REM === 4. 既存の Ollama をアンインストール === REM インストール先を C:\Ollama に揃えるため、既存インストールをいったん削除する winget uninstall --id Ollama.Ollama -e --silent --disable-interactivity --accept-source-agreements REM uninstall 後にプロセスが残ることがあるため再度停止 taskkill /IM ollama.exe /F >nul 2>&1 taskkill /IM "ollama app.exe" /F >nul 2>&1 REM === 5. モデルフォルダの作成と権限設定 === if not exist "C:\Ollama" mkdir "C:\Ollama" if not exist "C:\Ollama\models" mkdir "C:\Ollama\models" icacls "C:\Ollama\models" /grant *S-1-5-32-545:(OI)(CI)(M) /T /C REM === 6. 既存モデルの移動(実行ユーザーのプロファイルに残っている場合) === REM Ollama 停止状態で実行するためファイルロックが起きない if exist "%USERPROFILE%\.ollama\models" robocopy "%USERPROFILE%\.ollama\models" "C:\Ollama\models" /E /MOVE REM === 7. Python 3.11 のインストール === REM Open WebUI は Python でインストールするため、先に Python 3.11 を Machine スコープで導入する winget install --scope machine --id Python.Python.3.11 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements set "PATH=C:\Program Files\Python311;C:\Program Files\Python311\Scripts;%PATH%" REM === 8. Ollama のインストール(C:\Ollama) === winget install --id Ollama.Ollama -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --custom "/DIR=C:\Ollama" REM インストーラが自動起動した Ollama プロセスを停止し、以後は明示した環境変数で起動する taskkill /IM ollama.exe /F >nul 2>&1 taskkill /IM "ollama app.exe" /F >nul 2>&1 REM === 9. Git のインストール === winget install --scope machine --id Git.Git -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /COMPONENTS=icons,ext\reg\shellhere,assoc,assoc_sh /o:PathOption=Cmd /o:CRLFOption=CRLFCommitAsIs /o:BashTerminalOption=MinTTY /o:DefaultBranchOption=main /o:EditorOption=VIM /o:SSHOption=OpenSSH /o:UseCredentialManager=Enabled /o:PerformanceTweaksFSCache=Enabled /o:EnableSymlinks=Disabled /o:EnableFSMonitor=Disabled" set "PATH=C:\Program Files\Git\cmd;%PATH%" REM === 10. PATH の Machine スコープ設定 === powershell -NoProfile -Command "$paths=@('C:\Ollama','C:\Program Files\Python311','C:\Program Files\Python311\Scripts','C:\Program Files\Git\cmd'); $c=[Environment]::GetEnvironmentVariable('Path','Machine'); foreach($p in $paths){if((';'+$c+';') -notlike ('*;'+$p+';*')){$c=$c+';'+$p}}; [Environment]::SetEnvironmentVariable('Path',$c,'Machine')" REM 現在のコマンドプロンプトにも PATH を反映 set "PATH=C:\Ollama;C:\Program Files\Python311;C:\Program Files\Python311\Scripts;C:\Program Files\Git\cmd;%PATH%" REM === 11. Ollama サーバープロセスの起動(モデルダウンロードの前に必要) === REM where や tasklist の判定に依存せず、フルパスで明示的に起動する start "Ollama Server" /min "C:\Ollama\ollama.exe" serve timeout /t 15 /nobreak >nul REM === 12. モデルのダウンロード === REM 動作確認用(テキスト専用、約 731MB) echo %MODEL_LFM% モデルをダウンロード中... "C:\Ollama\ollama.exe" pull "%MODEL_LFM%" REM 画像入力対応(軽量、約 4.3GB) echo %MODEL_GEMMA_LIGHT% モデルをダウンロード中... "C:\Ollama\ollama.exe" pull "%MODEL_GEMMA_LIGHT%" REM 画像入力対応(上位、約 7.2GB) echo %MODEL_GEMMA_12B% モデルをダウンロード中... "C:\Ollama\ollama.exe" pull "%MODEL_GEMMA_12B%" echo モデルダウンロード完了 REM === 13. 埋め込みモデルのダウンロード(RAG 演習で使用) === echo %MODEL_EMBED% 埋め込みモデルをダウンロード中... "C:\Ollama\ollama.exe" pull "%MODEL_EMBED%" echo 埋め込みモデルダウンロード完了 REM === 14. Open WebUI のインストール === REM open-webui パッケージにより、依存パッケージ(FastAPI、ChromaDB、 REM sentence-transformers 等)が一括インストールされる REM 管理者実行中でも Administrator ユーザー専用にならないよう、Python 3.11 へ system-wide に入れる "C:\Program Files\Python311\python.exe" -m pip install --no-user --upgrade pip "C:\Program Files\Python311\python.exe" -m pip install --no-user --upgrade open-webui REM === 15. 起動用コマンドファイルの作成 === REM ショートカットに複雑なコマンド列を直接埋め込まず、.cmd ファイル経由で起動する REM Ollama 共通環境変数 > "C:\Ollama\ollama-env.cmd" echo @echo off >> "C:\Ollama\ollama-env.cmd" echo set "OLLAMA_FLASH_ATTENTION=1" >> "C:\Ollama\ollama-env.cmd" echo set "OLLAMA_KV_CACHE_TYPE=q8_0" >> "C:\Ollama\ollama-env.cmd" echo set "OLLAMA_CONTEXT_LENGTH=262144" >> "C:\Ollama\ollama-env.cmd" echo set "OLLAMA_MODELS=C:\Ollama\models" >> "C:\Ollama\ollama-env.cmd" echo set "OLLAMA_MAX_LOADED_MODELS=1" >> "C:\Ollama\ollama-env.cmd" echo set "OLLAMA_NUM_PARALLEL=1" REM LFM2.5-1.2B-Instruct 起動用 > "C:\Ollama\run-lfm25-1.2b.cmd" echo @echo off >> "C:\Ollama\run-lfm25-1.2b.cmd" echo call "C:\Ollama\ollama-env.cmd" >> "C:\Ollama\run-lfm25-1.2b.cmd" echo start "Ollama Server" /min "C:\Ollama\ollama.exe" serve >> "C:\Ollama\run-lfm25-1.2b.cmd" echo timeout /t 15 /nobreak ^>nul >> "C:\Ollama\run-lfm25-1.2b.cmd" echo "C:\Ollama\ollama.exe" run %MODEL_LFM% REM gemma4:e2b-it-qat 起動用 > "C:\Ollama\run-gemma4-e2b.cmd" echo @echo off >> "C:\Ollama\run-gemma4-e2b.cmd" echo call "C:\Ollama\ollama-env.cmd" >> "C:\Ollama\run-gemma4-e2b.cmd" echo start "Ollama Server" /min "C:\Ollama\ollama.exe" serve >> "C:\Ollama\run-gemma4-e2b.cmd" echo timeout /t 15 /nobreak ^>nul >> "C:\Ollama\run-gemma4-e2b.cmd" echo "C:\Ollama\ollama.exe" run %MODEL_GEMMA_LIGHT% REM gemma4:12b-it-qat 起動用 > "C:\Ollama\run-gemma4-12b.cmd" echo @echo off >> "C:\Ollama\run-gemma4-12b.cmd" echo call "C:\Ollama\ollama-env.cmd" >> "C:\Ollama\run-gemma4-12b.cmd" echo start "Ollama Server" /min "C:\Ollama\ollama.exe" serve >> "C:\Ollama\run-gemma4-12b.cmd" echo timeout /t 15 /nobreak ^>nul >> "C:\Ollama\run-gemma4-12b.cmd" echo "C:\Ollama\ollama.exe" run %MODEL_GEMMA_12B% REM Open WebUI 起動用 > "C:\Ollama\run-open-webui.cmd" echo @echo off >> "C:\Ollama\run-open-webui.cmd" echo call "C:\Ollama\ollama-env.cmd" >> "C:\Ollama\run-open-webui.cmd" echo start "Ollama Server" /min "C:\Ollama\ollama.exe" serve >> "C:\Ollama\run-open-webui.cmd" echo timeout /t 15 /nobreak ^>nul >> "C:\Ollama\run-open-webui.cmd" echo "C:\Program Files\Python311\Scripts\open-webui.exe" serve REM === 16. スタートメニュー ショートカット作成 === powershell -NoProfile -Command "$s=New-Object -ComObject WScript.Shell; $p=[Environment]::GetFolderPath('CommonPrograms'); $l=$s.CreateShortcut($p+'\Ollama LFM2.5 1.2B.lnk'); $l.TargetPath='C:\Ollama\run-lfm25-1.2b.cmd'; $l.WorkingDirectory='C:\Ollama'; $l.Save()" powershell -NoProfile -Command "$s=New-Object -ComObject WScript.Shell; $p=[Environment]::GetFolderPath('CommonPrograms'); $l=$s.CreateShortcut($p+'\Ollama Gemma4 e2b.lnk'); $l.TargetPath='C:\Ollama\run-gemma4-e2b.cmd'; $l.WorkingDirectory='C:\Ollama'; $l.Save()" powershell -NoProfile -Command "$s=New-Object -ComObject WScript.Shell; $p=[Environment]::GetFolderPath('CommonPrograms'); $l=$s.CreateShortcut($p+'\Ollama Gemma4 12b.lnk'); $l.TargetPath='C:\Ollama\run-gemma4-12b.cmd'; $l.WorkingDirectory='C:\Ollama'; $l.Save()" powershell -NoProfile -Command "$s=New-Object -ComObject WScript.Shell; $p=[Environment]::GetFolderPath('CommonPrograms'); $l=$s.CreateShortcut($p+'\Open WebUI (Ollama).lnk'); $l.TargetPath='C:\Ollama\run-open-webui.cmd'; $l.WorkingDirectory='C:\Ollama'; $l.Save()" REM === 17. インストール時に起動した Ollama サーバープロセスを停止 === REM 実際の利用時は、各ショートカットから現在のユーザー権限で起動する taskkill /IM ollama.exe /F >nul 2>&1 taskkill /IM "ollama app.exe" /F >nul 2>&1 echo インストール完了 echo Open WebUI はスタートメニューの「Open WebUI (Ollama)」から起動し、ブラウザで http://localhost:8080 を開いてください。 ``` ### Open WebUI の起動 スタートメニューから **Open WebUI (Ollama)** を起動する。起動後、ブラウザで次の URL を開く。 `http://localhost:8080` 初回起動時はアカウント作成画面が表示される。最初に作成したアカウントが Open WebUI の管理者アカウントになる。 ### RAG 演習で bge-m3 を使用する場合 `bge-m3` は Ollama 側にダウンロード済みである。Open WebUI の RAG 機能で使用する場合は、Open WebUI の管理画面で埋め込みモデルとして Ollama の `bge-m3` を選択する。 ### 補足 通常のコマンドプロンプトで `ollama` や `git` を直接実行する場合、Machine スコープ PATH の反映には新しいコマンドプロンプトの起動、またはサインアウト・再サインインが必要になる場合がある。スタートメニューに作成されたショートカットはフルパスと起動用 `.cmd` を使用するため、この影響を受けにくい。

第8章 演習 1.基本動作確認(CUI)

Ollama 自体が動作することを確認する。本演習のみコマンドプロンプト(CUI)で行い、LLM のローカル実行を体験する。以降の演習はすべて Super Agent Party(SAP)で行う。

手順

  1. Ollama でモデル LFM2.5-1.2B-Instruct を実行する
    1. コマンドプロンプトを開き、Ollama を起動する(ollama serve)。

      次のメッセージが出た場合は、すでに Ollama が起動中なので、問題ない。続行する。

    2. 別のコマンドプロンプトで、モデル LFM2.5-1.2B-Instruct を実行する(ollama run LiquidAI/lfm2.5-1.2b-instruct)。
  2. プロンプト記号 >>> が表示されたら、質問を入力する(例:「日本の首都はどこですか?」)。
  3. 応答が返ることを確認する。
  4. /bye を入力して終了する。
  5. 画像入力に対応したモデル gemma4:e2b-it-qat の動作確認。
    1. 画像を準備する。
    2. 別のコマンドプロンプトで ollama run gemma4:e2b-it-qat を実行する。
    3. 起動後のプロンプトに「この画像に写っているものを説明してください 画像ファイル名は…です」のように、指示を入力する。

      画像ファイル名のところは「C:\users\Desktop\1.png」のように画像ファイル名の絶対パスを書く。

    4. 画像の内容に基づいた応答が返れば、画像入力(マルチモーダル)機能が動作していることを確認できる。
    5. 確認後は同様に /bye を入力して終了する。

    うまく行かない場合でも続行する。

ヒント

考察ポイント

第9章 Super Agent Party(SAP)の前準備と用途例

本稿は 2026 年 5 月時点の Super Agent Party v0.4.1 を対象とし、Windows のデスクトップ版またはポータブル版での利用を前提とする。対話用 LLM と埋め込みモデルはいずれもローカル推論エンジン Ollama 上で実行する。

前準備

  1. Windows 10/11、または Windows Server 2025 以降に Super Agent Party のデスクトップ版またはポータブル版をインストールする。
    1. 上記リンクからリリースページを開き、最新版(一覧の最上部にある Latest 表示のもの)の Assets を展開する。
    2. デスクトップ版を推奨する。ファイル名が Super-Agent-Party-Setup-バージョン番号.exe のインストーラをダウンロードする。
      • デスクトップ版:ダウンロードした .exe を実行し、画面の指示に従ってインストールする。

        次の警告が出た場合は、詳細情報、実行の順に進む。

        インストール先の選択画面では「現在のユーザーのみにインストール(Install for current user only)」を選ぶ。これを選ばない場合、起動のたびに管理者権限が必要になる。

    3. インストールが完了したら SAP を起動する。デスクトップ版はデスクトップまたはスタートメニューのアイコンから起動する。

用途例の概要

第10章 演習 2.VRM 学習コンパニオン(2D/3D デスクトップキャラクター)

SAP の VRM(3D アバターの標準的なファイル形式)デスクトップコンパニオン機能により、VRM モデル・モーション・3D シーン(背景)を差し替えできるデスクトップキャラクターを起動する。これに ASR(音声認識。Automatic Speech Recognition の略)と TTS(音声合成。Text-to-Speech の略)を組み合わせると、画面内のキャラクターと音声で対話でき、AI の発話途中で割り込める(発話開始ボタンを再度押すと、その時点で AI の発話が打ち切られ、新しい発話入力が優先される)。Live2D(イラストを用いた 2D キャラクターアニメーション技術)拡張機能(sap-live2d)も併用でき、2D・3D いずれの方式でも利用できる。

手順

  1. 演習 1 と同じように、コマンドプロンプトを開き、Ollama を起動する(ollama serve)。

    次のメッセージが出た場合は、すでに Ollama が起動中なので、問題ない。続行する。

  2. SAP を起動し、左サイドバーの【Model】をクリック、【Model Service】をクリックし、Ollama プロバイダを対話用 LLM として選択する。API Address の部分は既定値のままでよい(変更する必要はない)。以降の演習では、この登録を共通の前提として参照する。
  3. 【Get Model List】をクリックする。これは、使用するモデルのリストを得るための操作で、毎回行う必要はない(新しいモデルを増やしたときに行う)。
  4. 使用するモデルのモデル ID(Model ID)を選択する。

    メニューの中から、使いたいモデルを選ぶ。

  5. メインエージェントのシステムプロンプトに学習用の役割(例:「英語家庭教師」)を記述する。
  6. ASR のモデルを選び、ダウンロードする。
  7. TTS のモデルと言語を選ぶ(必要に応じてダウンロードする)。ここでは Edge TTS を選び、EdgeTTS Language として日本語の「ja-JP」を選択している。
  8. VRM モデルを用意する。

    参考リンク:

  9. Bot のページで VRM モデルを追加する。
  10. 使用する VRM モデルをメニューで選択する。VRM モデルを追加していない場合は、デフォルトのモデルから選択する。
  11. 必要に応じて Select VRMA Motions(カスタムモーション)と 3D シーン(写真などから 3D 空間を再構成する Gaussian Splatting 技術によるシーン等の背景)をアップロードして適用し、Enable Expression Control を有効化して TTS と表情を同期させる(既定の VRMA アニメーションが用意されているため、カスタムモーションを用意しない場合でもジェスチャは付与される)。
  12. VRM コンパニオンウィンドウを開いてデスクトップ脇に常駐させる。OBS(ライブ配信や画面録画に使われる無料ソフトウェア)への配信も可能である。
  13. VRM コンパニオンウィンドウの発話開始ボタンを押し、マイクに向かって話しかける。AI の応答中に発話開始ボタンを再度押すと、その時点で応答が打ち切られ、新しい発話が受け付けられる。

ヒント

考察ポイント

第11章 演習 3.ロールプレイ型対話学習(複数キャラクターによる同時対話)

SAP は SillyTavern 互換のタバーンキャラクターカード(PNG 形式)の取り込み・編集・書き出しに対応し、長期記憶(memorySettings)機能を備える。マルチロールグループチャット機能により、複数の AI キャラクターが互いに対話する様子を観察でき、英会話練習や歴史上の人物との対話などに応用する。各カードに個別の音声・アバター・表情画像を割り当てられる。

タバーンキャラクターカードは、PNG 画像の tEXt チャンク(PNG ファイル内のテキスト埋め込み領域)に JSON を埋め込む形式である。カード内 JSON の最小構成を次に示す(SAP のカード編集画面では同等の項目を GUI 上で編集できる)。

{
  "name": "Alice",
  "description": "英国出身の英語家庭教師。礼儀正しく、学習者の発音を丁寧に訂正する。",
  "personality": "丁寧、忍耐強い、励まし上手",
  "first_mes": "Hello! Shall we start today's lesson?",
  "mes_example": "<START>\n{{user}}: Good morning.\n{{char}}: Good morning! How are you today?"
}

手順

  1. SillyTavern コミュニティ等から .png 形式のカードを入手する(または SAP のカード編集機能で自作する。SAP にはカードのワンクリック生成機能もある)。
  2. 左サイドバーのロール(Roll)でカードをアップロードし、各カードに TTS 音色・アバター画像・ナレーター音色を割り当てる。
  3. カードを 2 体以上追加し、発話順序や応答頻度を設定する。
  4. 会話に途中参加するか、観察モードで AI 同士の対話を聴講する(英会話練習なら英語話者カードを 2 体、歴史対話なら史実人物カードを設定する)。

ヒント

考察ポイント

第12章 演習 4.AI 物語生成アシスタント(インタラクティブストーリー)

公式拡張機能 sap-story-adventure(Story Adventure)を導入すると、AI が物語本文と分岐選択肢を逐次生成するインタラクティブストーリーが動作する。世界観定義ファイル(worlds.json)を差し替えることで、舞台・時代・登場人物が異なる物語を生成でき、創作演習の教材として利用する。

手順

  1. 左サイドバーで【Developer】をクリックし、上部のサブメニューで【Extension】をクリックする。
  2. 【Add New Extension】をクリックし、表示された入力欄にリポジトリ URL https://github.com/heshengtao/sap-story-adventure を入力して【Add】をクリックする。
  3. インストール完了後、左サイドバーに Story Adventure の項目が追加される。これをクリックして開く(独立ウィンドウまたはサイドバー内のいずれかで表示される)。
  4. 拡張機能に同梱の既定の worlds.json を参考に、世界観設定(時代・場所・主要キャラクタ・ジャンル)を自作の世界観に編集する。
  5. 物語開始ボタンを押すと、AI が導入文と複数の選択肢を生成する。選択肢を選ぶごとに分岐が進行し、生成結果はチャット履歴として保存される。

    既定では中国語のため、デフォルトのものを日本語訳して実行した結果が次のとおりである。

  6. 選択肢が表示されるので選択できる。選択に応じてストーリーが進む。

ヒント

考察ポイント

第13章 演習 5.研究室・サークル用 Discord ボット

SAP はメッセージングプラットフォーム(QQ・WeChat・Feishu・DingTalk・Telegram・Discord・Slack)への連携に対応している。自作 AI を Discord サーバーに常駐させると、他者にも利用してもらえるほか、FAQ 応答や議事録要約にも活用できる。システムプロンプトとナレッジベースを切り替えることで、用途別のボットを複数立ち上げられる。本構成では対話用 LLM の推論処理は Ollama 上でローカルに完結するため、入力内容が外部の AI クラウドサービスへ送信されることはない。ただし、Discord 連携を利用する場合、ユーザの発話内容は Discord 社が運営する外部サーバを経由して SAP に届くため、研究室内部の議事録や学内限定の機密情報を扱う場合は、ボットの利用範囲を限定するか、SAP のチャット画面を直接利用する構成と使い分けることを推奨する。

議事録要約ボットのシステムプロンプト例を次に示す。

あなたは研究室の議事録要約ボットである。入力された会議記録テキストから次の 3 項目を抽出し、
それぞれ箇条書きで出力せよ。
  1. 決定事項
  2. 宿題(担当者名を併記)
  3. 期日(日付形式で明示)
根拠が不明な項目は「記載なし」と明記する。推測による補完はしない。

手順

  1. Discord Developer Portal を開き、「New Application」をクリックしてアプリケーション名を入力し作成する。
  2. 左メニューの「Bot」を開く。
    1. 「Reset Token」をクリックして Bot トークンを生成し、表示されたトークンをコピーして安全な場所に保存する(トークンは一度しか表示されない)。
    2. 「Privileged Gateway Intents」の「Message Content Intent」を有効化して保存する。これを有効にしないと、ボットがメッセージ本文を読めない。
  3. 左メニューの「OAuth2」→「URL Generator」を開く。
    1. 「Scopes」で「bot」にチェックを入れる。
    2. 「Bot Permissions」で「Send Messages」「Read Message History」「View Channels」にチェックを入れる。
    3. ページ下部に生成された URL をコピーしてブラウザで開き、招待先の Discord サーバーを選択して「認証」をクリックする。
  4. SAP の設定画面を開く。左サイドバーの【Platform】(またはメッセージングプラットフォーム連携に相当する項目)から「Discord」を選択し、手順 2 でコピーした Bot トークンを入力して保存する。
  5. システムプロンプトに用途に応じた指示(例:上記の議事録要約プロンプト)を記述し、必要に応じてナレッジベースを割り当てる。
  6. ウェイクワード(ボットが応答を開始するきっかけとなる語)を設定する(例:「@ボット名」のみに反応させる場合は空欄にし、Discord のメンション機能で呼び出す)。
  7. Discord サーバーのチャンネルでボットをメンションし、メッセージを送信して応答を確認する。

ヒント

考察ポイント

第14章 演習 6.個人用学習秘書(PDF ナレッジベース付き)

SAP の【ナレッジベース】機能は、埋め込みモデルとベクトル検索(埋め込みベクトル同士の近さを比較して関連箇所を探す処理)による RAG を内蔵する。資料 PDF や講義 PDF を登録すると、資料に基づいて回答する専用 AI が構成され、取得件数(top_n)・リランキング(is_rerank:取得結果の並べ替え)・呼び出しタイミング(when:思考前/思考後)といった RAG の動作を観測できる。埋め込み処理は Ollama 上でローカルに実行する。

事前準備として、コマンドプロンプトで次を実行し、埋め込みモデルを取得する(セットアップ時に取得済みの場合は不要)。

ollama pull bge-m3

手順

  1. 左サイドバーの【Model】→【Model Service】で、埋め込みモデルとして Ollama の bge-m3 を追加する(登録手順は前準備の手順 3 と同じ)。
  2. 左サイドバーの【Toolkit】→【Knowledge Base】を開く。
  3. ナレッジベース機能を有効にするためにダウンロードする。
  4. 「Add Knowledge Base」をクリックし、講義 PDF・教科書 PDF・参考論文 PDF などをドラッグ&ドロップでアップロードする(ファイルサイズと枚数によっては数分かかる)。
  5. システムプロンプトに「ナレッジベースの内容を根拠に回答し、根拠がない質問には『資料に記載なし』と答える」のように記述する。
  6. チャット欄から質問すると、AI は資料に基づいて回答する。

質問例を次に示す(講義 PDF を登録した場合を想定)。

1. 資料に明示的に書かれている事実の質問
   「第 3 章で定義されている〇〇とは何か」
2. 資料中の複数箇所を横断する必要のある質問
   「本講義で扱った手法のうち、計算量が最小のものはどれか」
3. 資料に記載が無い質問(ハルシネーション検出用)
   「著者の出身大学はどこか」
4. 類義語でも検索できるかを確認する質問
   「精度向上の工夫について記載箇所を示せ」

ヒント

考察ポイント