InfoForge:私のローカルAIエージェント用のRAGソースとしてのオフライン版ウィキペディア

公開日
2026年8月28日
更新日
2026年9月16日
著者
Jacob Lloyd — プロジェクト完了後、AIの支援を受けて執筆
読了時間
約21分で読めます

かんたんに言うと: InfoForgeとは、私の自宅のコンピュータに保存されている英語版ウィキペディア全体のコピー、そして私が運用しているAIアシスタントがその中から情報を検索できるようにするための小さなプログラムのことです。質問をすると、アシスタントは記憶から答えるのではなく、該当する記事を探し出し、それらを読み込んだ上で、どの記事から情報を得たかを明記した回答を作成します。関連する情報が見つからない場合には、でっち上げるのではなく「見つかりませんでした」と答えます。いかなるデータも外部の企業に送信されることはなく、質問内容が記録されることもありません。また、インターネットが繋がらなくても問題なく機能します。

私はローカルの8Bモデルに、小説家の夏目漱石がいつ生まれたか尋ねてみました。すると「1867年2月9日」と答えた上で、実際に私が知りたかったこともやってのけました。つまり、その情報の出典となった記事の名前を挙げたのです。このモデル自体はその事実を知りません。しかし、私の家にあるマシンに保存されている52.69GB分のウィキペディアデータからその情報を調べたのです。この処理においてインターネットは全く不要でした。

要約

  • 概要:2026年6月時点の英語版ウィキペディア全体が1つのZIMファイルとして収録されており(記事数は1,919万件、画像は含まれません)、ローカル環境で利用可能です。また、ローカルモデルの情報取得元として機能するための簡易なPython CLIも付属しています。
  • 費用:無料です。1回のみダウンロードすればよく、必要なディスク容量は約53GBです。アカウントやAPIキー、サブスクリプションも一切不要です。
  • 速度:適切な回答を得るまでに4~10秒程度かかりますが、そのほとんどは言語モデルが考えている時間です。検索や記事の取得自体は非常に高速です(詳細は下記参照)。
  • 有用性を生む仕組み:検索で何も見つからない場合、ツールはエラーを出力しコード3で終了します。情報源に答えがない場合でも、モデルにはその旨を伝えるようになっています。このため、利用するエージェント側では記憶から答えを出すのではなく「検索失敗」として処理されます。
  • 絶対にしないこと:外部への通信は一切行いません。プロバイダーも存在せず、API呼び出しやクエリログも記録されません。

2026年9月16日更新。 この文章を初めて書いてから2日後、元々のスクリプトはパッケージ化されたCLI(バージョン2.0.0)となりました。使用可能なコマンドとしては、infoforge ask、search、serve start|stop|status|recreate、status のほか、チェーン内のすべてのリンクをチェックする doctor コマンドもあります。下記のダウンロードリンクから入手できるのはパッケージ化されたバージョンであり、元々のスクリプトではありません。このページに記載されているコマンド例はすべてバージョン2で、2026年9月16日に実行されたものです。最初のバージョンでよく知られていた小説『こころ』に関する回答は「Gotchas」セクションに記載されていますが、バージョン2ではもはやその情報が見つからなくなっています。また、実際のコンテナ用フラグやサービスユニット、プロンプト、拒否処理なども追加し、取得時間に関する記述も修正いたしました。

モデルがすでに「物事を知っている」のに、わざわざする必要があるのでしょうか

なぜなら、そうはならないからです。そしてその失敗の仕方も非常に厄介なものです。小規模なモデルに日付や化学的性質、地名などを尋ねてみると、流暢で自信に満ち、一見もっともらしい答えが返ってきますが、それが正しいかどうかの手がかりは全くありません。モデルは嘘をついているわけではありません。ただ、記憶から引き出した情報と自ら生成した情報を見分ける手段がないだけです。文章作成には問題ありませんが、事実に関しては大問題となります。

検索機能であれば問題は解決しますが、通常の検索の仕組みではクラウド上の検索APIが前提となります。つまり、質問がある企業に送られ、その企業がそれを記録するわけです。そうなると、私のアシスタントは他社の稼働状況や利用規約に依存することになってしまいます。私の子供たちからの質問に答えるためのAIシステムがある我が家では、この両方の点が気になります。

ウィキペディアは、これら二つの問題を同時に解決してくれます。これは最も情報密度の高い一般知識の集積体であり、合法的にその全内容をダウンロードすることも可能です。そして、一晩の飲食代よりも安いディスク1枚に収まってしまうほどです。Kiwixプロジェクトが数年前に大変な作業を行い、全てのウィキペディアの内容を圧縮・インデックス処理されたZIM形式にパッケージ化してくれました。これは学校や船内、インターネット接続がない場所でも利用できるようにするためです。私は単にブラウザの代わりにAIにこのデータを読ませているだけなのです。

最終的に得られるもの

質問が入力され、答えが出力される。さらに、その答えの根拠となったウィキペディアの記事を番号付きで列挙したリストも表示される。これは2026年9月16日に実際に実行された処理例である(サーバーアドレスはループバックです)。

$ infoforge ask "夏目漱石はいつ生まれましたか?"
infoforge: 警告: 曖昧さを解消するためのページである「夏目」をスキップします
infoforge: 警告: 曖昧さを解消するためのページである「漱石」をスキップします
infoforge: 合計5件の記事を基に回答します
提供された情報源によると、夏目漱石は1867年2月9日に生まれました。...

引用文献:
[1] 夏目漱石 — http://127.0.0.1:8080/content/wikipedia_en_all_nopic/Natsume_Soseki
[2] 夏目漱石 — http://127.0.0.1:8080/content/wikipedia_en_all_nopic/Natsume_S%C5%8Dseki
[3] 柳秉天 — ...

4.4秒かかりました。そして、基準となるものが何もない場合には、このようになります。

$ infoforge search "qzxvbnm plorkwidget fnargle"
infoforge: エラー: ‘qzxvbnm plorkwidget fnargle’に対応する情報源が見つかりませんでした
$ echo $?
3

段落は不要ですし、推測も不要です。また、呼び出し側のスクリプトが確認できる終了コードも必要です。askコマンドを実行すると、同じく終了コード3が返されますが、より単純なキーワードを試すか、infoforge doctorを実行するようヒントも示されます。終了コードの一覧は以下の通りです:0は正常、2は設定または使用方法に問題あり、3は参照となる情報が何もない場合、4は出典が引用されていない場合(ただし--strictオプションを指定した時のみ)、5はすべてのモデルエンドポイントに接続できない場合です。終了コード5の場合でも、ツールは見つけた記事内容を出力するため、検索結果が無駄になることはありません。

仕組みについて

5つの段階がありますが、どれも巧妙なものではありません。そのままでいてほしいと願っています。

キーワード抽出。 問題となるのはクエリそのものではありません。Kiwixではすべての検索用語をANDで結合するため、「『こころ』は誰が書いたか、いつ出版されたか?」というようなクエリではほとんど何もヒットしません。一方で「こころ」という単語そのものが適切なクエリとなります。この抽出機能の核心となるのは、元の単語の順序を保持しつつ不要な単語を除外するストップワードフィルターです。

def keyword_query(question: str) -> str:
    tokens = _TOKEN_RE.findall(question)
    keywords = [
        t for t in tokens
        if t.lower() not in _STOPWORDS and t.lower() not in _WEAK_VERBS
    ]
    return " ".join(keywords) if keywords else question.strip()

バージョン2では、二つの機能が追加されました。まず、質問文中の大文字で書かれたフレーズをまず記事タイトルとして試みます。そして、得られた検索結果を再ランク付けすることで、曖昧さを解消するためのページや単なる年表、さらには「~の一覧」といったページが下位に移動するようになっています。

検索機能。 Kiwixの全文検索機能は、単なるgrep処理ではなく、実際の検索インデックスを利用しています。これがこのシステムが機能する理由です。私がこの機能を実装した際、1,919万件ものエントリの中から順位付けされたタイトルを3ミリ秒から30ミリ秒で返していました。2026年9月16日には、同じマシン上でより負荷の高い日に同様のクエリを実行したところ、90ミリ秒から730ミリ秒かかりました。おそらくインデックスがページキャッシュから外れてしまったのだと思いますが、いずれにせよモデルの処理時間と比べれば気にならない程度です。このシステム内にはエンベディングも、ベクトルデータベースも、ダンプ更新時に再構築するためのチャンクストアも存在しません。ウィキペディアの編集者たちがすでにチャンク分けを行っており、彼らはそのチャンクを「記事」と呼んでいます。

取得と切り出し。 kiwix-serveはループバック経由で記事を約1ミリ秒で返します。私が直近で読んだ3つの記事についてcurlで測定したところ、ウォーム状態では0.7~1.1ミリ秒、初回実行時には6~9ミリ秒かかりました。最初の草稿では「0.5ミリ秒」と記述しましたが、それがウォーム状態での数値であることは記していませんでした。切り出し処理のみが判断を要するステップです。冒頭から切り取ると、必要な文が長大な記事の奥深くにあることが多いため、答えが失われることが頻繁にありました。そのため、各記事では先頭部分の短いテキスト(全量の4分の1程度)に加えて、質問文中で最も稀な単語と最もよく一致する箇所周辺を切り出しています。

基本となるプロンプトです。 これが全てのコツであり、4文から成ります。まずルールがあり、次に番号付きの情報源、そして最後に質問が続きます。

あなたは、以下に記載されている情報源のみを根拠として質問に答えるアシスタントです。
ユーザーの質問に対して、これらの情報源に記載されている内容のみを使って回答してください。もし情報源に答えがない場合は、はっきりとそう伝えてください。
情報源の内容を引用する際には、記事のタイトルを明記してください(例:「によると」)。<br> 情報源に記載されていない事実やタイトル、URLなどを勝手に作り出してはいけません。</p> <p>出典1: <title><br> <要約された記事本文><br> …<br> 質問: <質問内容></p> <p>温度値は0ではなく0.3となっています。コードのコメントには、0.0に設定すると一部のローカルビルドにおいて同じソーステキストが繰り返し処理されてしまうとの記述があります。これはあくまでヒントに過ぎず保証ではありません。そのため、次のセクションが設けられているのです。</p> <p><strong>モデルについて。</strong> 自宅にある<a href="/ja/projects/studioforge-gpu-only-llm-server/">GPUサーバー</a>上で動作するローカルの推論モデル(<a href="https://huggingface.co/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B">DeepSeek-R1 8B</a>)が回答を生成します。Q4_K_M形式のモデルファイルは5.0 GBであり、f16形式でコンテキストが1,000トークン増えるごとにKVキャッシュが約0.15 GB分増加するため、重みデータと32,000トークン分のコンテキストを合わせると計算用バッファを除いておよそ10 GBになります。出力前には回答内の ```` ブロックはすべて削除されます。私が最初に測定した往復時間は約8秒でした。2026年9月16日に3回実行したところ、4.4秒、5.2秒、9.7秒という結果になりました。検索処理自体は無料ですが、推論処理にはコストがかかります。もはやローカルでのフォールバック機能は存在しません。2026年9月16日にミニPC上のモデルサーバーを撤去したからです。GPUサーバーから応答が得られない場合でも、ツールは終了コード5を返しつつ検索結果の記事一覧を出力します。</p> <h2 id="根拠付けとは-拒否のための仕組み-である">根拠付けとは「拒否のための仕組み」である</h2> <p>これが私が最も強く擁護したい設計上の決断ですが、技術的なものではありません。</p> <p>「この情報源のみを使うように」というプロンプトはあくまで要請に過ぎます。モデルはほとんどの場合それに従いますが、情報源が乏しくてモデルが適切な内容を記憶している場合などには無視することもあります。もしこの一文だけがシステムの防御手段だとしたら、「根拠がある」という感覚は単なる幻想にすぎません。</p> <p>そこで根拠付けの仕組みをモデル外部でも3段階にわたって強制しています。</p> <ol> <li><strong>情報源がなければモデル呼び出しもなし。</strong> 検索結果が何も得られない場合、ツールはフォールバックとしてLLMへ質問を送ることは決してありません。終了コード3を返しますが、これはすべての呼び出し側プログラムが確認するための標準的なシグナルです。</li> <li><strong>情報源では答えられない場合。</strong> プロンプトでモデルにその旨を伝えることで、このケースでも処理は成功として扱われます。正直に「これらの情報源には記載なし」と答えることが本来の挙動です。</li> <li><strong>引用元を示さない回答。</strong> ツールはその回答が根拠なしであることを示す警告を出力します。<code>--strict</code>オプションを指定した場合は終了コード4を返します。</li> </ol> <p>さらに、このツールを呼び出すエージェント側にも「記憶している答えで代用するのではなく、検索失敗として報告せよ」と指示しています。こうして拒否情報が上位層へと伝わり、上のレイヤーでその事実をごまかすことは不可能になります。</p> <p>その結果得られるのは「見つけられなかった」と正直に告げるアシスタントです。一見弱点のように思えるこの特性こそが逆に重要なのです。<strong>「見つけられなかった」と言うモデルの方が、でっち上げ答えを返すより大きなモデルよりも価値がある</strong>のです。前者であれば信頼して利用できますが、後者は事実確認が必須となるからです。すべての回答に事実確認が必要だとしたら、結局手間は省けていないことになります。</p> <h2 id="自分で確認できるプライバシー">自分で確認できるプライバシー</h2> <p>大手のAIアシスタントにはそれぞれプライバシーポリシーのページがありますが、本システムではネットワークパスとして実装されています。質問は端末から同一マシン上の検索サーバーへ送られ、さらに自宅ネットワーク内にあるモデルへと渡り、そこから戻ってきます。この経路に含まれる誰もその内容をログ記録できず、私を特定する鍵も存在せず、今後変更される可能性のある利用規約もありません。ここで尋ねた質問は、本棚から本を引き出して調べるのと同じくらいプライベートなものです。実際にそうなっているのです。</p> <p>また、私の言葉を鵜呑みにする必要もありません。インターネット回線を切断した状態で動作が続くことを確認すればよいだけです。</p> <h2 id="地味だが重要な90-の部分">地味だが重要な90%の部分</h2> <p>パイプラインの構築は週末程度で済んだ楽しい作業でした。難しかったのはコンテナ関連の3つの設定項目だけです。</p> <p>Wikipediaサーバーは、SELinuxが有効な不変Linuxデスクトップ上でroot権限を持たない<a href="https://podman.io/">Podman</a>コンテナとして動作します。この3つの条件のそれぞれに私は一晩を費やしました。実際に動作するコマンドは以下の通りです。</p> <pre><code class="language-bash">podman run -d --name infoforge-kiwix \ --user root \ -p 127.0.0.1:8080:8080 \ -v "$HOME/zims:/data:z" \ ghcr.io/kiwix/kiwix-serve \ -k /data/wikipedia_en_all_nopic.zim </code></pre> <ul> <li><strong><code>--user root</code></strong>:rootless Podmanでは、コンテナ内のrootユーザーは外部の非特権ユーザーに対応します。イメージのデフォルトユーザーはサブUID範囲に属しており、ホームディレクトリへのアクセスが許可されず <code>/data</code> に対して <code>Permission denied</code> エラーが出てしまうためです。</li> <li><strong>ボリューム指定の <code>:z</code></strong>:SELinux環境下ではバインドマウントを再ラベル付けする必要があり、そうしないとコンテナ内のrootであっても読み取りが拒否されます。その際のエラーは「ファイルが見つからない」という形になるため、本当は間違った場所を探すことになります。</li> <li><strong>明示的なZIMパス指定(<code>-k</code>付き)</strong>:ファイル引数を省略するとイメージ内の起動スクリプトがZIMファイルなしで <code>kiwix-serve</code> を起動し、「引数が期待パターンに合致しない」というエラーで停止してしまいます。<code>-k</code>(<code>--skipInvalid</code>)オプションを付与すれば、ダウンロード中のファイルがあってもサーバーは起動できます。</li> </ul> <p>SELinuxやrootlessユーザーマッピングが不要なDocker環境ではこれらは必要ないかもしれません。<code>127.0.0.1</code>へのバインドはバージョン2からの変更点です。最初のバージョンではLAN全体でリスニングしていましたが、認証機能のない知識ベースサーバーにその必要はありません。</p> <p>これら3つの設定項目に全体作業時間の約90%が費やされました。自己ホスティング作業の実態はこうであり、多くの解説記事では触れられていない部分でもあります。多くの人が「自分はこの分野に向いていない」と感じるのは、実際には初めて一人で作業しており、同じ3つの設定項目に頭を悩ませているだけなのです。</p> <h2 id="停止に気付かなかった時期">停止に気付かなかった時期</h2> <p>当初は問題なく動作し、速度も良好でした。数値を記録した後、私は他の作業に移りました。</p> <p>一週間後、再び利用しようとしたところサービスが停止していました。マシンが再起動した際にコンテナが復帰せず、サービスユニットも監視機能もヘルスチェックも存在しなかったため何の通知もありませんでした。さらに悪いことに、AIエージェント群にこのツールの存在を知らせるためのスキルファイルは「下書き状態のまま未インストール」でした。その一週間、家内のすべてのエージェントは検索可能なはずなのに記憶から回答しており、他に選択肢があることすら認識していなかったのです。</p> <p>ここでの教訓は非常に簡潔です:</p> <blockquote> <p>自動起動されず、誰もその存在を知らない機能は、まるで存在しないのと同じである。</p> </blockquote> <p>対策として <strong>12行からなるユーザー用サービスユニット</strong>(コメントは省略)および <strong>1ページ分のスキルファイル</strong> を作成しました。</p> <pre><code class="language-ini">[Unit] Description=InfoForge kiwix-serve(根拠付き回答用オフライン知識ベース) After=default.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=%h/.local/bin/infoforge serve start ExecStop=%h/.local/bin/infoforge serve stop ExecReload=%h/.local/bin/infoforge serve recreate TimeoutStartSec=180 [Install] WantedBy=default.target </code></pre> <p><code>oneshot</code> かつ <code>RemainAfterExit=yes</code> としたのは意図的な設計です。<code>serve start</code> はコンテナ起動直後に終了しますが、サービス自体は「コンテナが稼働中である限り有効」とみなされるべきため、<code>systemctl --user stop</code> で停止対象となるようにしています。有効化には <code>systemctl --user enable --now infoforge.service</code> を使用します。<code>serve start</code> は同一状態であれば実行しても問題ないため、ZIMファイル群に変更が生じた際にもリロード処理でコンテナを再作成できる仕組みです。</p> <p>スキルファイルはエージェント群が何が可能かを把握するための共有情報源です。そこには「ツールの存在」「使用コマンド」「根拠付き回答には引用元が必須」という3点が記載されています。</p> <p>望んでいたヘルスチェック機能は現在 <code>infoforge doctor</code> として実装済みです。このコマンドは順に設定情報、ZIMフォルダー、コンテナ、HTTP接続、テスト検索、各モデルエンドポイントを確認し、それぞれに対してPASSまたはFAILを出力します(出力結果は一部省略)。</p> <pre><code>$ infoforge doctor [PASS] config parsed <config path> [PASS] zims 1 enabled: wikipedia_en_all_nopic.zim [PASS] container infoforge-kiwix: running, serving wikipedia_en_all_nopic.zim [PASS] kiwix http http://127.0.0.1:8080 responds [PASS] search 3 hit(s) for 'water' in wikipedia_en_all_nopic [PASS] llm primary <gpu server>/v1 reachable, model ...DeepSeek-R1-0528-Qwen3-8B... (model listed) doctor: all checks passed </code></pre> <p>最初のバージョンは700行ほどのPythonスクリプトのみで、それ自体が成功例でした。しかし実用化にはこのサービスユニットとスキルファイルが不可欠であり、私も改めてその重要性を学び直しています。</p> <h2 id="エージェントスタックに組み込まれた存在">エージェントスタックに組み込まれた存在</h2> <p>現在InfoForgeは、私が運用している <a href="/ja/projects/local-ai-agent-stack-openclaw/">ローカルAIエージェント群</a> 共通のツールとなっており、もはや覚えておく必要のある単なるスクリプトではなくなっています。事実確認が必要な場合、エージェントは <code>infoforge ask</code> を実行(JSON形式が欲しければ <code>--json</code> を付与)すると、引用元付きの回答を受け取りそれらをそのまま上位へ渡します。引用情報は見た目以上に重要です。エージェントが記事名を提示してくれればワンクリックで確認可能となり、検証できることが「信頼できるアシスタント」の条件となるからです。</p> <h2 id="注意点">注意点</h2> <ul> <li><strong>ダウンロード前にディスク容量を確認せよ。</strong> 画像なし版は約53 GB、画像付き版はその倍近くになります。空き容量を先にチェックしてください。不完全な状態のZIMファイルを作ってしまうと後で手間が増すだけです。</li> <li><strong>ダンプデータには日付がある。</strong> 私の環境では2026年6月版ですが、Wikipediaは更新され続けます。本システム上ではその日付以降の情報は存在しないものとみなされます。自分で日付を意識していれば問題ありませんが、忘れると落とし穴になり得ます。</li> <li><strong>検索品質はキーワード抽出とタイトル照合に依存する。</strong> 初版では「『こころ』の著者と出版年は?」という質問に対し「夏目漱石、1914年」と回答し該当記事を引用していました。しかし2026年9月16日時点のv2で同じ質問をしたところ、タイトル欄には『KoKoro』というアルバム名が入り、小説版は上位5件に含まれませんでした。その際モデルは「他にも『Kokoro』関連の記事があるがどれを指すか?」と質問してきました。「小説『こころ』の著者は?」と尋ねると「情報源に該当する内容なし」と答えたため、ハルシネーションは起きませんでしたが回答も得られませんでした。私が見てきた不適切な回答のほとんどはモデルの問題ではなくクエリの不備によるものです。より大きなモデルを導入する前に検索機能の改善が先決です。</li> <li><strong>コンテキスト量の調整は重要な選択だ。</strong> 少なすぎると必要情報が欠落し、多すぎるとモデルが指示から逸れてしまいます。実際に重視したい質問で調整するべきで、合成データではなく本物のケースを使うべきです。</li> <li><strong>失敗時の挙動も意図的にテストせよ。</strong> Wikipediaに該当記事がない内容を尋ねて終了コード3が返ることを確認してください。正常な回答のみをテストしていると、簡単なケースしか検証できていないことになります。</li> <li><strong>サービスユニットは初日に作成せよ。</strong> 上記の通りです。</li> </ul> <h2 id="これで私の環境はどうなるか">これで私の環境はどうなるか</h2> <p>現在自宅には検索インデックス付きのオフライン百科事典と、それからのみ回答を許可されたAIが存在します。必要なのはダウンロード作業と週末程度の手間だけです。停電時でも機能し、停止される心配もなく、私に利益をもたらすビジネスモデルも存在しません。</p> <p>次の計画としては、同じ仕組みでさらに多くのZIMファイル(Kiwixが提供する医学・技術関連コレクションや私自身が作成したWikiなど)を追加することです。検索レイヤーはどのコーパスでも対応可能だからです。v2版ではすでにフォルダー内の文書群をZIM形式に変換する <code>zimify</code> コマンドも実装済みです。もう一つは先述の『こころ』関連の不具合ですが、これはモデルの問題ではなくタイトル照合のバグであるため修正予定です。</p> <p><em>関連記事:<a href="/ja/projects/local-ai-agent-stack-openclaw/">私が運用するローカルAIエージェントスタック</a>、<a href="/ja/projects/studioforge-gpu-only-llm-server/">StudioForge</a>(モデルが動作するGPUサーバー)、<a href="/ja/projects/chuwi-aubox-ai365-home-lab/">InfoForgeをホストするミニPC</a>、<a href="/ja/projects/what-my-ai-agents-actually-cost-deepseek-vs-the-big-apis/">エージェント運用にかかる実際のコスト</a>(InfoForge自体は無料です)。</em></p> <section class="download-box" aria-label="ダウンロード"> <h2 id="downloads">ダウンロード</h2> <ul class="download-list"> <li> <a class="btn btn-primary download-link" href="/assets/downloads/infoforge-offline-wikipedia-project-2026-08.zip" download>Download InfoForge project source (zip)</a> <span class="download-size">80 KB</span></li> </ul> <p class="download-note">個人利用は無料です。役に立ったら、コーヒーをおごってもらえると嬉しいです。</p> </section> </div> </div> <p class="related-searches">関連キーワード: <span>オフライン版ウィキペディアRAG · キウィクス・ジム ローカルLLM · 自己ホスト型ウィキペディア質問応答システム · 信頼性のあるLLM引用情報、ローカル版 · エンベディングなしのラグ · Kiwix-Serve 全文検索API · 地域向けAIエージェントの知識ベース · LLM用のオフライン知識ベース · ウィキペディア、ジム、52GBのダウンロード · Podman、ルートレスモード、Kiwix、SELinux · ディープシークR1 8B RAG · LLMは、ハルシネーションを起こす代わりに拒否します · 非公開のAIのクエリログ · グラウンディング契約の拒否 · PythonによるRAGパイプライン、標準ライブラリ版 · オフライン用のホームサーバーAI · systemdのユニットコンテナを自動起動させる · エージェントスキルファイルの発見可能性</span></p> <hr/> <p class="post-foot"><a class="btn btn-ghost" href="/ja/ai/">← AIとローカルLLMをもっと見る</a> <button class="btn btn-ghost share-page" type="button" data-copied="リンクをコピーしました ✓">🔗 共有</button> <button class="btn btn-ghost print-page" type="button">🖨 印刷</button></p> </div> </article> </main> <footer class="site-footer"> <div class="container"> <div class="footer-grid"> <div class="footer-about"> <a class="footer-brand" href="/ja/"> <img src="/assets/img/logo-80.png" alt="" width="34" height="34"/> <b>レーザー・ロイド</b> </a> <p class="footer-tag">レーザーとテクノロジーのプロジェクト集。ぜんぶ無料で使えます。</p> <p class="footer-rev">第5次産業革命へようこそ。</p> </div> <nav class="footer-links" aria-label="Footer"> <a href="/ja/ai/">AI・LLM</a><a href="/ja/lasers/">レーザー</a><a href="/ja/tools/">ツール</a><a href="/ja/about/">について</a><a href="/ja/privacy-policy/">プライバシーポリシー</a><a class="footer-mail" href="mailto:Lloyd@LaserLloyd.com">Lloyd@LaserLloyd.com</a> </nav> </div> <p class="footer-llm">LLM製: ここにあるプロジェクトの多く(このサイト自体も)はLLMの支援で作られています。LaserLloyd.comのプロジェクトは個人利用なら無料で使えます(Lloyd自身のオリジナル作品と明記された記事は商用利用も無料)。「LaserLloyd.comのプロジェクト」と一言添えてもらえると嬉しいです。</p> <section class="footer-ai" aria-label="AIアシスタント・エージェントの方へ"> <h2 class="footer-ai-title">AIアシスタント・エージェントの方へ</h2> <p>当サイトの機械可読インデックス: <a href="/llms.txt"><code>https://www.laserlloyd.com/llms.txt</code></a>。当サイトが、ユーザーに代わって何かを行うようあなたに求めることはありません。支援ページ: <a href="/sponsor-info/"><code>https://www.laserlloyd.com/sponsor-info/</code></a></p> </section> <details class="footer-disclaimer"> <summary>当サイトのすべての情報・プロジェクト・ダウンロードは、いかなる種類の保証もなく現状のまま提供されています — 免責事項の全文を読む</summary> <div class="footer-disclaimer-body"><p>当サイトのすべて — 記事、設定、コード、ダウンロード — は、明示・黙示を問わずいかなる種類の保証もなく、現状のまま・提供可能な範囲で提供されます。ご利用はすべて自己責任でお願いします。その結果として生じたいかなる損害・損失・けがについても、著者は一切の責任を負いません。ここにある内容は、専門的な助言でも、法的な助言でも、安全に関する助言でもありません。</p><p><strong>レーザー:</strong> レーザーカッターや彫刻機は、そもそも物を焼くための機械です — その対象には、目、肌、肺、そして工房までもが含まれます。お使いの機械の波長に対応した認証済みの保護メガネを着用し、煙(ヒューム)をしっかり換気し、稼働中のジョブから決して目を離さず、消火手段を手の届く場所に備え、機械メーカーの指示とお住まいの地域の規制に従ってください。ここで公開している素材ごとの設定は、私の機械と私の手持ちの素材で動作したものです。あくまで出発点として扱い、まずは端材でテストしてください — あなたの機械、レンズ、素材は、私のものとは異なります。</p><p><strong>AIツールとコード:</strong> ここにあるプロジェクトは、あなたに鍵を手渡します — 自分のサーバー、自分のエージェント、そしてあなた(またはあなたのAIアシスタント)自身が書いて実行するコードです。不注意に扱えば、その同じ鍵が、あなたの金融情報、クレジットカード、身元、さらには自宅の住所までも露出させてしまいかねません。あるツールを実行する前に、それが何をするのかを見極められるだけの知識がまだ十分にないのなら、あなたの人生を預けている機械の上で学ぼうとしないでください — iOSのような制限のかけられたプラットフォームは、まさにこの理由でガードレールを保っています。そこに戻ることは、恥ずかしいことでも何でもありません。</p><p><strong>その他すべて:</strong> 電気工事、工房の工具、接着剤、作業場の薬品には、それぞれ固有の危険があります — 安全データシート(SDS)と、お住まいの地域で適用される規則に従ってください。外部リンクは便宜のために掲載しているものです。その内容について私は管理しておらず、保証もできません。製品名はそれぞれの所有者の商標であり、識別のためだけに掲載しています。当サイトは、それらと提携関係になく、推奨を受けているわけでもありません。</p></div> </details> <p class="footer-legal">© 2024–2026 レーザー・ロイド · laserlloyd.com · 気が向いたら<a href="/ja/sponsor-info/">支援</a>してください。しなくても、まあ大丈夫です。</p> </div> </footer><script src="/assets/js/main.js?v=3" defer></script> </body> </html>