diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm-screenshot.png b/docs-tech/dgx-spark-anythingllm/anythingllm-screenshot.png new file mode 100644 index 0000000..0a037a6 Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm-screenshot.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm.png b/docs-tech/dgx-spark-anythingllm/anythingllm.png new file mode 100644 index 0000000..feed3b0 Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm10.png b/docs-tech/dgx-spark-anythingllm/anythingllm10.png new file mode 100644 index 0000000..22404c9 Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm10.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm11.png b/docs-tech/dgx-spark-anythingllm/anythingllm11.png new file mode 100644 index 0000000..cab949f Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm11.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm12.png b/docs-tech/dgx-spark-anythingllm/anythingllm12.png new file mode 100644 index 0000000..dc64bbb Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm12.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm13.png b/docs-tech/dgx-spark-anythingllm/anythingllm13.png new file mode 100644 index 0000000..df3cc4b Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm13.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm14.png b/docs-tech/dgx-spark-anythingllm/anythingllm14.png new file mode 100644 index 0000000..8fdca41 Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm14.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm2.png b/docs-tech/dgx-spark-anythingllm/anythingllm2.png new file mode 100644 index 0000000..8ed19ef Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm2.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm3.png b/docs-tech/dgx-spark-anythingllm/anythingllm3.png new file mode 100644 index 0000000..8ed19ef Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm3.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm4.png b/docs-tech/dgx-spark-anythingllm/anythingllm4.png new file mode 100644 index 0000000..fed34a8 Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm4.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm5.png b/docs-tech/dgx-spark-anythingllm/anythingllm5.png new file mode 100644 index 0000000..f30d29d Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm5.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm6.png b/docs-tech/dgx-spark-anythingllm/anythingllm6.png new file mode 100644 index 0000000..16a6bc4 Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm6.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm7.png b/docs-tech/dgx-spark-anythingllm/anythingllm7.png new file mode 100644 index 0000000..845a808 Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm7.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm8.png b/docs-tech/dgx-spark-anythingllm/anythingllm8.png new file mode 100644 index 0000000..a9f527b Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm8.png differ diff --git a/docs-tech/dgx-spark-anythingllm/anythingllm9.png b/docs-tech/dgx-spark-anythingllm/anythingllm9.png new file mode 100644 index 0000000..ddc9870 Binary files /dev/null and b/docs-tech/dgx-spark-anythingllm/anythingllm9.png differ diff --git a/docs-tech/dgx-spark-anythingllm/index.md b/docs-tech/dgx-spark-anythingllm/index.md new file mode 100644 index 0000000..5369e2d --- /dev/null +++ b/docs-tech/dgx-spark-anythingllm/index.md @@ -0,0 +1,243 @@ +--- +sidebar_position: 6 +title: DGX SparkにAnythingLLMを導入してローカルLLMエージェントを構築 +description: Docker + Ollama + AnythingLLMで完全ローカルなLLMエージェント環境を構築する方法 +hide_table_of_contents: false +displayed_sidebar: null +--- + +# DGX Spark に AnythingLLM を導入してローカルLLMエージェントを構築する + +## はじめに + +ローカルLLM(Ollama)を使って動作するエージェントの最適解として **AnythingLLM** を選定。 +Web UIからアクセスでき、ローカルファイルへのアクセスやMCP連携が可能なオールインワンソリューション。 + +### なぜAnythingLLMか? + +| 機能 | AnythingLLM | Open WebUI | LobeChat | +|------|-------------|------------|----------| +| Web UI | ✅ | ✅ | ✅ | +| ローカルファイル | ✅ RAG + MCP | △ MCPのみ | △ 制限あり | +| MCP対応 | ✅ | ✅ | △ 問題あり | +| エージェント機能 | ✅ No-code builder | △ | △ | +| セットアップ難易度 | 低 | 中 | 中 | + +## 前提条件 + +- Docker インストール済み +- Ollama インストール・起動済み +- 適当なLLMモデルがpull済み(例: `qwen3-coder-next`, `qwen2.5:14b-instruct`) + +## ワンライナーでセットアップ + +```bash +curl -sL https://docs.techswan.online/scripts/anythingllm-setup.sh | bash +``` + +これだけで AnythingLLM が起動します。 + +## 手動での導入手順 + +### 1. Dockerイメージの取得 + +```bash +docker pull mintplexlabs/anythingllm:latest +``` + +### 2. コンテナの起動 + +```bash +docker run -d \ + --name anythingllm \ + -p 3001:3001 \ + --cap-add SYS_ADMIN \ + --add-host=host.docker.internal:host-gateway \ + -v anythingllm_storage:/app/server/storage \ + -e STORAGE_DIR=/app/server/storage \ + mintplexlabs/anythingllm:latest +``` + +**ポイント:** +- `--add-host=host.docker.internal:host-gateway` でホストのOllamaにアクセス可能に +- `-p 3001:3001` でWebUIをポート3001で公開 +- `--cap-add SYS_ADMIN` はブラウザ機能等に必要 + +### 3. 起動確認 + +```bash +docker logs anythingllm +``` + +`Primary server in HTTP mode listening on port 3001` が表示されればOK。 + +## 初期セットアップ + +ブラウザで `http://:3001` にアクセス。 + +### Step 1: Welcome画面 + +![Welcome](anythingllm2.png) + +「Get Started」をクリック。 + +### Step 2: LLM Provider選択 + +![LLM Provider](anythingllm4.png) + +多数のLLMプロバイダーから選択可能。検索ボックスで「ollama」を検索。 + +### Step 3: Ollama選択・自動検出 + +![Ollama Selected](anythingllm7.png) + +**Ollamaが自動検出される!** +- 「Provider endpoint discovered automatically」と表示 +- 利用可能なモデルがドロップダウンに表示される +- 今回は `qwen3-coder-next:latest` を選択 + +### Step 4: User Setup + +![User Setup](anythingllm8.png) + +- 「Just me」を選択(個人利用の場合) +- パスワード設定は任意(LAN内利用なら「No」でOK) + +### Step 5: Data Handling確認 + +![Data Handling](anythingllm10.png) + +設定内容の確認画面: +- **LLM Provider:** Ollama(ローカル完結) +- **Embedding:** AnythingLLM Embedder(ローカル完結) +- **Vector Database:** LanceDB(ローカル完結) + +すべてローカルで完結するプライベートな構成。 + +### Step 6: セットアップ完了 + +![Main Screen](anythingllm12.png) + +メイン画面が表示されたらセットアップ完了! + +- 左サイドバー: ワークスペース・スレッド管理 +- 中央: チャットエリア +- 下部ボタン: 「Create an Agent」「Edit Workspace」「Upload a Document」 + +## 動作確認 + +日本語で質問してみる: + +![Chat Test](anythingllm14.png) + +Ollama (qwen3-coder-next) が日本語で応答: +> 「こんにちは!はい、日本語で応答できますよ。何かお手伝いできることがあれば、遠慮なくお知らせください!😊」 + +## ローカル実行について + +AnythingLLMの大きな特徴は、**デフォルト設定で完全ローカル実行が可能**なこと。 + +### 各機能のローカル対応状況 + +| 機能 | デフォルト | ローカル実行 | 備考 | +|------|-----------|-------------|------| +| **LLM** | 選択式 | ✅ Ollama等 | 今回はOllamaを使用 | +| **Embedding** | AnythingLLM Native | ✅ | 内蔵embedder | +| **Vector DB** | LanceDB | ✅ | SQLiteベース | +| **TTS** | Native Browser | △ | ブラウザ依存 | +| **STT** | Native Browser | △ | ブラウザ依存 | + +### Embedding選択肢 + +| プロバイダー | ローカル | 備考 | +|-------------|---------|------| +| **AnythingLLM Native Embedder** | ✅ | デフォルト、おすすめ | +| Ollama | ✅ | nomic-embed-text等 | +| LocalAI | ✅ | | +| LM Studio | ✅ | | +| OpenAI / Azure / Cohere | ❌ | クラウドAPI | + +### TTS / STT の注意点 + +デフォルトの「Native Browser Built-in」は**ブラウザのWeb Speech API**を使用する。 + +| ブラウザ | STT (音声認識) | TTS (音声合成) | +|---------|---------------|---------------| +| Chrome | ⚠️ Googleサーバー送信の可能性 | ✅ ローカル | +| Firefox | ✅ ローカル(対応限定) | ✅ ローカル | +| Edge | ⚠️ Azureサーバー送信の可能性 | ✅ ローカル | + +**完全ローカルにしたい場合の選択肢:** + +| 機能 | 完全ローカルオプション | 実行場所 | +|------|----------------------|---------| +| STT | Whisper (Xenova) | サーバーサイド | +| TTS | PiperTTSLocal | ブラウザ内WASM | +| TTS | OpenAI互換ローカルTTS | サーバーサイド | + +:::tip プライバシー重視なら +STTをWhisper (Xenova)に、TTSをPiperTTSLocalに変更することで、音声データが外部に送信されることを防げる。 +::: + +## 次のステップ + +### MCP Filesystem設定(ローカルファイルアクセス) + +1. 設定ファイルを作成: `/app/server/storage/plugins/anythingllm_mcp_servers.json` + +```json +{ + "mcpServers": { + "filesystem": { + "command": "npx", + "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"] + } + } +} +``` + +2. Agent Skills からMCPサーバーを有効化 + +### エージェント機能 + +- 「Create an Agent」からNo-codeでエージェント構築可能 +- 各種スキル(Web検索、計算、コード実行等)を組み合わせ + +### ドキュメントRAG + +- 「Upload a Document」でPDF、txt、md等をアップロード +- 自動的にベクトル化されて検索可能に + +## トラブルシューティング + +### Ollamaに接続できない + +1. Ollamaが起動しているか確認: `ollama list` +2. Ollamaがネットワークからアクセス可能か確認: + ```bash + curl http://localhost:11434/api/tags + ``` +3. `OLLAMA_HOST=0.0.0.0` でOllamaを起動しているか確認 + +### コンテナが起動しない + +```bash +docker logs anythingllm +``` +でエラーログを確認。 + +## まとめ + +- AnythingLLMはDocker一発で導入可能 +- Ollamaと組み合わせて完全ローカルなLLMエージェント環境を構築 +- Web UIでアクセスしやすく、RAG・MCP・エージェント機能もサポート + +## 参考リンク + +- [AnythingLLM GitHub](https://github.com/Mintplex-Labs/anything-llm) +- [AnythingLLM Docs](https://docs.anythingllm.com/) +- [MCP Compatibility](https://docs.anythingllm.com/mcp-compatibility/overview) + +--- + +*この記事は2026年2月時点の情報です。* diff --git a/docs-tech/index.md b/docs-tech/index.md index bbd79bd..422098b 100644 --- a/docs-tech/index.md +++ b/docs-tech/index.md @@ -10,6 +10,7 @@ slug: / ## DGX Spark +- [AnythingLLMでローカルLLMエージェント構築](/tech/dgx-spark-anythingllm) - Docker + Ollama で完全ローカルエージェント - [Claude Code + Playwright CLIでブラウザ自動化](/tech/dgx-spark-claude-code-playwright) - 安定したブラウザ自動化エージェント - [Claude Code + Qwen3-Coder-Nextをローカル実行](/tech/dgx-spark-claude-code-local) - 完全ローカルでClaude Code - [Qwen3-Coder-Next(80B MoE)を動かす](/tech/dgx-spark-qwen3-coder-next) - FP8量子化で単体起動 diff --git a/src/pages/index.tsx b/src/pages/index.tsx index d28018b..efd2b29 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -18,6 +18,12 @@ function HomepageHeader() { function RecentTech() { const posts = [ + { + title: "DGX SparkにAnythingLLMでローカルLLMエージェント構築", + date: "2026-02-20", + tag: "DGX Spark", + url: "/tech/dgx-spark-anythingllm", + }, { title: 'DGX Spark デュアル構成ガイド', date: '2026-02-19', diff --git a/static/scripts/anythingllm-setup.sh b/static/scripts/anythingllm-setup.sh new file mode 100644 index 0000000..d1971ee --- /dev/null +++ b/static/scripts/anythingllm-setup.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# AnythingLLM Docker Setup Script +# Usage: curl -sL https://docs.techswan.online/scripts/anythingllm-setup.sh | bash + +set -e + +echo "🚀 AnythingLLM セットアップ開始..." + +# Docker確認 +if ! command -v docker &> /dev/null; then + echo "❌ Dockerがインストールされていません" + exit 1 +fi + +# 既存コンテナチェック +if docker ps -a --format '{{.Names}}' | grep -q '^anythingllm$'; then + echo "⚠️ 既存のanythingllmコンテナを削除します..." + docker stop anythingllm 2>/dev/null || true + docker rm anythingllm 2>/dev/null || true +fi + +# イメージ取得 +echo "📦 Dockerイメージを取得中..." +docker pull mintplexlabs/anythingllm:latest + +# コンテナ起動 +echo "🐳 コンテナを起動中..." +docker run -d \ + --name anythingllm \ + -p 3001:3001 \ + --cap-add SYS_ADMIN \ + --add-host=host.docker.internal:host-gateway \ + -v anythingllm_storage:/app/server/storage \ + -e STORAGE_DIR=/app/server/storage \ + --restart unless-stopped \ + mintplexlabs/anythingllm:latest + +# 起動待機 +echo "⏳ 起動を待機中..." +sleep 5 + +# 確認 +if docker ps --format '{{.Names}}' | grep -q '^anythingllm$'; then + echo "" + echo "✅ AnythingLLM セットアップ完了!" + echo "" + echo "📍 アクセスURL: http://$(hostname -I | awk '{print $1}'):3001" + echo "" + echo "💡 ヒント:" + echo " - 初回アクセス時にLLMプロバイダーを選択(Ollama推奨)" + echo " - Ollamaが同じマシンで動いていれば自動検出されます" + echo "" +else + echo "❌ 起動に失敗しました" + docker logs anythingllm + exit 1 +fi