koide c8d46ca842
All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 26s
Add: DGX Spark AnythingLLM記事 + ワンライナースクリプト
2026-02-20 05:14:16 +00:00

244 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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エージェントを構築する
## はじめに
ローカルLLMOllamaを使って動作するエージェントの最適解として **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://<DGX_SPARK_IP>: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月時点の情報です。*