Niek/chatgpt-web

ChatGPT web interface using the OpenAI API

ChatGPT‑web – 任意の OpenAI 互換モデル向けの軽量で自己ホスト型チャット UI

何であるか – ブラウザから直接大規模言語モデルのチャットエンドポイント(OpenAI、Anthropic、Google Gemini、Mistral、xAI、OpenRouter など)に話しかけることができる単一ページ型の Web アプリケーション。プロバイダー名と API キーを入力すると、アプリはそのエンドポイントが提供するモデルを検出し、すぐに会話を開始できます。

なぜ重要か – すべての会話履歴はブラウザのローカルストレージに保存されるため、第三者のサーバーに送信されることはありません。UI はオープンソース(GPL‑3.0)であり、どこにでもホスト可能で、Tauri を使ってデスクトップアプリにバンドルしたり、Docker でローカルで実行したりできます。商用サイトで得られるのと同じチャット体験を提供しながら、データのプライバシーを守り、任意の互換プロバイダーを選べます。


コア機能(README に記載)

  • プロバイダー非依存 – OpenAI チャット仕様に従う任意の API と互換。OpenAI、Anthropic、xAI、Google Gemini、Mistral AI、APIpie、OpenRouter、OrcaRouter に加え、汎用的な「カスタム」モードも用意されています。
  • ローカルのみのストレージ – チャットはブラウザのローカルストレージに保存され、サーバー側の永続化は行われません。
  • カスタマイズ可能なモデル設定 – 各チャットごとに温度、システムプロンプト、その他のパラメータを調整可能。
  • 音声 I/O – 音声入力(音声認識)と音声出力(テキスト読み上げ)をサポート。
  • プロンプトライブラリawesome-chatgpt-prompts コレクションから選ばれた 100 個の人気プロンプトを標準搭載。
  • エクスポート – チャットを Markdown ファイルとして保存でき、共有やアーカイブに利用可能。
  • コード処理 – コードブロックを検出し、構文強調表示を適用し、ワンクリックでコピーできるボタンを追加。
  • 画像生成 – 選択したプロバイダーが画像エンドポイントを提供している場合、show me an image of ... と入力することで画像をリクエストできます。UI は自動的にプロバイダー固有の画像モデル(例:OpenAI なら gpt-image-2)を選択します。
  • ストリーミング応答 – モデルの出力が到着するたびにリアルタイムで表示し、ChatGPT のリアルタイム感を再現。
  • モバイル対応 – レスポンシブレイアウトでスマートフォンやタブレットでも快適に利用可能。
  • デスクトップアプリビルド – Tauri(Rustベース)を使用して、Windows/macOS/Linux 用のネイティブデスクトップアプリにパッケージ化可能。
  • Docker 対応docker compose ファイルで UI とモック API を同時に起動可能。テストやオフラインデモに最適。

一般的なワークフロー

  1. ホストされたページ(または自前デプロイ)を開き、https://niek.github.io/chatgpt-web/ にアクセス。
  2. 設定画面からプロバイダーを選択し、API キーを貼り付け、利用可能なモデルの一覧を取得。
  3. 新しいチャットを開始し、任意で事前ロードされたプロンプトを選択するか、独自のシステムプロンプトを入力。
  4. メッセージを入力または音声で発話。アプリは選択したエンドポイントにリクエストを転送し、応答をストリーミングで表示。
  5. チャットはローカルに保存され、いつでもエクスポートまたはストレージをクリア可能。

開発者向けの導入方法

  • ローカルで実行
    npm ci          # 依存関係を正確にインストール
    npm run dev     # Vite 開発サーバーを起動(http://localhost:5173)
    
  • 本番用ビルド
    npm run build   # 静的 `dist/` フォルダを生成。任意の静的ホスティングに利用可能
    
  • バンドルされたプロンプトリストの更新
    npm run update-prompts   # 公開 API から最新の上位100件のプロンプトを取得
    
  • Dockerdocker compose up -d で UI とモック API を起動。.envVITE_PROVIDER=customVITE_API_BASE=http://localhost:5174 を設定し、UI をモックに接続。
  • デスクトップアプリ – Rust をインストール後、npm run tauri dev で開発用ウィンドウを起動、または npm run tauri buildsrc-tauri/target にバイナリを生成。

どのような人にとって有用か

  • プライバシーを重視するユーザー – 第三者サイトに会話ログを送信せずにチャット UI を使いたい人。
  • 開発者 – 複数の LLM プロバイダーをテストしたり、モデルの挙動を並列比較したい人。
  • 教育者 / 教訓者 – クラスでのデモ用にシンプルで自己ホスト可能なインターフェースが必要な人。
  • オープンソース愛好家 – プロジェクトをフォーク・拡張・自プロジェクトに埋め込みたい人。

ライセンスとコミュニティ

  • ライセンス:GPL‑3.0(完全なソースコード公開。ホスト・変更・再配布は同ライセンス下で可能)。
  • 貢献者all-contributors モデルを採用。多数の人がコード、アイデア、デザイン、ドキュメントに貢献しています。
  • イシューと PR:GitHub でオープン。README には新しいプロンプトの追加、モック API のカスタマイズ、デスクトップビルドの手順についてのガイドが記載されています。

まとめ

ChatGPT‑web は、任意の OpenAI 互換チャットサービス向けの実用的でプライバシー最優先のフロントエンドです。音声、画像生成、プロンプトライブラリ、エクスポートといった便利な機能を備えつつ、ブラウザ内または小さなデスクトップアプリとして軽量に動作します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト