diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 105 |
1 files changed, 71 insertions, 34 deletions
@@ -1,64 +1,101 @@ # ollama-web -Ollama を用いた Web アプリケーションプロジェクト。 +Ollama をブラウザから利用するためのローカル Web UI です。 -## セットアップ +Starlette ベースの軽量なサーバーで、チャット、セッション保存、ファイル添付、Web 検索/取得ツール、PDF テキスト抽出を提供します。既定ではローカルホストのみで待ち受け、PIN ログインで UI と API を保護します。 -```bash -# 仮想環境の作成 -uv venv .venv +## Features -# 依存パッケージのインストール -uv pip install -r requirements.txt -p .venv +- Ollama モデルとのストリーミングチャット +- 会話セッションと添付ファイルのローカル保存 +- 画像添付のリサイズと vision モデル向け送信 +- Web 検索、URL スクレイピング、ファイル検索/取得、PDF テキスト抽出ツール +- PIN 認証、CSRF 保護、CSP、ローカル配布のフロントエンド依存ファイル +- SSRF 対策付きの外部 URL 取得 + +## Requirements -# 開発用パッケージのインストール +- Python 3.10+ +- Ollama が起動していること +- `uv` 推奨 + +既定では Ollama API を `http://127.0.0.1:11434` として扱います。 + +## Installation + +```bash +uv venv .venv uv pip install -e ".[dev]" -p .venv ``` -## プロジェクト構成 +`requirements.txt` から本番依存だけを入れる場合: +```bash +uv venv .venv +uv pip install -r requirements.txt -p .venv ``` -ollama-web/ -├── src/ -│ └── ollama_web/ # メインパッケージ -│ ├── __init__.py -│ └── main.py # エントリポイント -├── tests/ # テストコード -├── docs/ # ドキュメント -├── scripts/ # スクリプト類 -├── .gitignore -├── pyproject.toml # プロジェクト設定 (ruff, pytest, mypy 等) -├── requirements.txt # 本番依存パッケージ -└── README.md -``` -## 使い方 +## Usage + +ローカルPCだけで利用する場合: ```bash -# アプリケーションの実行 ollama-web +``` -# LAN内のスマホ等からアクセスする場合 -# PINを固定し、待受アドレスを明示してください +`OLLAMA_WEB_PIN` を設定していない場合、起動時にランダムな PIN がコンソールに表示されます。ブラウザで `http://127.0.0.1:8000` を開き、その PIN でログインしてください。 + +LAN 内のスマホなど別端末からアクセスする場合: + +```bash OLLAMA_WEB_PIN=123456 OLLAMA_WEB_HOST=0.0.0.0 ollama-web +``` + +PowerShell では次のように指定します。 + +```powershell +$env:OLLAMA_WEB_PIN = "123456" +$env:OLLAMA_WEB_HOST = "0.0.0.0" +ollama-web +``` + +## Configuration + +| Environment variable | Default | Description | +| --- | --- | --- | +| `OLLAMA_HOST` | `http://127.0.0.1:11434` | 接続先 Ollama API | +| `OLLAMA_WEB_MODEL` | `llama3.2` | 既定で選択するモデル | +| `OLLAMA_WEB_HOST` | `127.0.0.1` | Web UI の待受ホスト | +| `OLLAMA_WEB_PORT` | `8000` | Web UI の待受ポート | +| `OLLAMA_WEB_DATA_DIR` | `data` | セッションと添付ファイルの保存先 | +| `OLLAMA_WEB_MAX_UPLOAD_MB` | `20` | アップロードファイルの上限サイズ | +| `OLLAMA_WEB_PIN` | 起動時に自動生成 | ログイン用 PIN | +| `OLLAMA_WEB_SECRET_KEY` | 起動時に自動生成 | Cookie 署名鍵 | +| `OLLAMA_WEB_ALLOWED_ORIGINS` | 未設定 | CORS 許可オリジンのカンマ区切り | + +### Security Notes -# テストの実行 +- 既定の待受は `127.0.0.1` です。LAN に公開する場合だけ `OLLAMA_WEB_HOST=0.0.0.0` を明示してください。 +- `OLLAMA_WEB_PIN` 未設定時の PIN は起動ごとに変わります。継続利用する場合は固定値を設定してください。 +- CORS は既定で無効です。外部オリジンから API を呼ぶ必要がある場合のみ `OLLAMA_WEB_ALLOWED_ORIGINS` を設定してください。 +- Web 取得系ツールは localhost/private IP/metadata IP へのアクセスを拒否します。 + +## Development + +```bash +# テスト pytest -# リント +# Lint ruff check . # 型チェック mypy src/ ``` -## セキュリティ設定 +このリポジトリでは `pyproject.toml` に pytest、ruff、mypy の設定をまとめています。 -- 既定の待受は `127.0.0.1` です。LAN公開する場合だけ `OLLAMA_WEB_HOST=0.0.0.0` を指定してください。 -- `OLLAMA_WEB_PIN` 未設定時は起動ごとにランダムPINが表示されます。 -- CORSは既定で無効です。必要な場合のみ `OLLAMA_WEB_ALLOWED_ORIGINS` に許可オリジンをカンマ区切りで指定してください。 -- Cookie署名鍵は `OLLAMA_WEB_SECRET_KEY` で固定できます。 -## ライセンス +## License MIT |
