システム概要
SparkAiはChatGPTを基盤としたAI対話システムとMidjourney画像生成システムを統合したプラットフォームです。OpenAI-GPT全モデルと国内AIモデルに対応しています。このシステムはGPTs、GPT音声対話、GPT-4モデル、インターネット接続機能、DALL-E3テキストから画像への生成、画像アップロードによる対話、GPT4-Allウェブ検索モデル、ドキュメント分析、Midjourneyの完全な画像生成機能、AI顔置換、画像合成、プラグイン機能、最近話題のSuno-v3-AI音楽生成モデルなどをサポートしています。
システムアーキテクチャ
- フロントエンド: Vite + Vue3 + TypeScript + NaiveUI + Tailwindcss
- 管理画面: Vite4 + Vue3 + Element-Plus
- バックエンド: Nodejs + NestJs
- データベース: MySQL5.7以上 + Redis
- 実行環境: Linux、Windows、MacOs(Linux推奨)
- ストレージ: ローカルストレージ | Alibaba Cloud OSS | Tencent Cloud COS | Chevereto
主要機能
音声対話機能
PCブラウザとモバイル端末の両方でサポートされ、自然な人間のようなトーンで対話可能です。
GPTsアプリケーション
カスタムGPTsの作成と利用が可能で、全サイト検索機能を備えています。
GPT4-Allウェブ検索モデル
最新のウェブ情報にアクセスし、リアルタイムの情報を提供します。
ドキュメント分析
アップロードされたドキュメントを分析し、質問に回答します。
Suno-v3-AI音楽生成
テキストから音楽を生成する最新のAIモデルに対応しています。
Midjourney部分編集・再描画
生成された画像の特定部分を編集・再描画する機能をサポートしています。
コア機能
- OpenAI GPT全モデルと国内AI全モデルに対応
- 画像生成システム + GPTs + MJ部分編集機能
- 音声対話機能とドキュメント分析機能
- Midjourneyの完全な画像生成機能とプラグインシステム
- Suno-v3-AI音楽生成大モデルのサポート
- 高速デプロイ:Baotaパネル対応、Dockerイメージ対応
- 簡単な設定:データベースとRedisの設定のみでサービスを迅速に起動可能
- レスポンシブデザイン:PC、モバイル、タブレットなどのデバイスに適応
- 多様なモデル対応:数十種類以上のモデルを接続可能な中継システム内蔵
- インターネット接続モード:モデルを拡張し、リアルタイムのウェブコンテンツを検索・要約
- 複数のレイアウトオプション:バブルリストなど様々な表示タイプをサポート
- 音声モード:AIとの直接音声対話をサポート
- 対話モデルのカスタマイズ:分類、名称、順序、機能のカスタマイズが可能
- 料金設定のカスタマイズ:モデルごとの料金タイプと金額を設定可能
- アカウントプール:無制限のキープールで、重み付けによる使用量制御が可能
- 対話セッションの分離:クラウドストレージによる複数デバイス間のデータ共有
- コンテンツフィルタリング:カスタム敏感語、Baiduコンテンツレビューなどのセキュリティ検出
- マルチモーダル対話:画像やドキュメントを含む多様な対話形式をサポート
- プラグインシステム:様々なプラグインをサポートし、継続的に拡張
- AI画像生成:Midjourney全機能、DallEサポート
- Dall-E-3画像生成:全パラメータ対応の独立モジュール
- マインドマップ生成:要件に基づいたマインドマップの自動生成とエクスポート
- 画像ギャラリー:AI生成画像の展示と管理画面からの推薦機能
- アプリケーションセンター:管理画面からのアプリ追加とカスタム設定
- GPTS:GPTSの使用と管理画面からのカスタム追加、全サイト検索機能
- ログインシステム:メール、SMS、WeChat QRコードなど多様なログイン方法
- メンバーシップシステム:基本とプレミアムの2種類の通貨タイプとカスタム課金モデル
- ショッピングシステム:カスタム商品パッケージ、永久パッケージ、期間限定パッケージ
- アフィリエイトシステム:A+Bアフィリエイトモデル、カスタム報酬設定
- プリペイドコードシステム:バッチ生成とユーザーによる redeem 機能
- チェックインシステム:毎日のチェックインによる報酬付与
- ゲストシステム:ログインなしでの一部機能利用
- ストレージシステム:ローカル、Alibaba Cloud OSS、Tencent Cloud COS、Cheveretoに対応
- 動的メニューシステム:メニューの有効/無効、追加、カスタムアイコン、外部サイト埋め込み
- 管理画面:サイトロゴ、名称、Baidu統計、AI名、歓迎メッセージなどのカスタマイズ
- ユーザー管理:管理者とデモアカウント、アカウントのロックと禁止機能
- キーワード応答:カスタムキーワードと応答コンテンツの設定
システムデモ
SparkAi公式デモサイト:
https://ai.sparkaigf.com
管理バックエンド:
https://ai.sparkaigf.com/sparkai/admin
テストアカウント:admin、123456
アクセスできない場合は、「SparkAiシステム紹介ドキュメント - 漸進的AIGCシステム」で最新アドレスを確認してください。
システム機能モジュール
AI全モデル対応
OpenAIの全モデルと国内AIモデルに対応しており、ユーザーは目的に応じて最適なモデルを選択できます。
GPTsアプリケーション
GPTsアプリケーション
全サイト検索機能をサポートし、既存のGPTsを簡単に検索して利用できます。
GPTsワークベンチ
GPTsの管理とカスタマイズを行うための専用ワークスペースを提供します。
ユーザーカスタムアプリケーション作成
ユーザーが独自のGPTsアプリケーションを作成し、共有することができます。
AIプロフェッショナル画像生成
テキストから画像/画像から画像(参照画像):
テキストプロンプトから高品質な画像を生成したり、既存の画像を参考に新しい画像を生成したりできます。
画像合成:
複数の画像を組み合わせて、新しい創造的な画像を生成します。
AI顔置換:
画像内の顔を別の顔に自然に置き換える機能を提供します。
Dall-E4画像生成
最新のDall-E4モデルを使用して、テキストから高品質な画像を生成します。
マインドマップ生成
要件に基づいてマインドマップを自動生成し、様々な形式でエクスポートできます。
AIギャラリー
AIによって生成された画像を展示し、おすすめのコンテンツを共有するプラットフォームです。
WeChatログイン対応
WeChat環境でのサイレントログイン、ブラウザでのWeChat QRコードスキャンログイン、メール登録ログイン、電話番号登録ログインなど、多様なログイン方法をサポートしています。
管理バックエンド(一部)
管理画面では、ユーザー管理、モデル設定、課金設定、コンテンツ管理など、システムの全ての側面を管理できます。その他の機能やバックエンドページはデモサイトで直接体験してください。
V6.0メジャーアップデートログ
【V6.0】SparkAi v6 アップデートログ
V6バージョンは大規模なリファクタリングを行い、他のシステムと統合した全く新しいバージョンです。
新機能
- モデル分類機能の追加:カスタムモデル名、カスタム順序、モデル設定、個別モデルのコンテキストToken制限、ターン制限、ファイルアップロード許可、インターネット接続許可などの設定が可能に
- TTS音声機能の追加:音声モード対話をサポートし、自動再生機能と6種類の音声選択が可能に
- プラグインシステムの追加:複数の内蔵プラグイン、設定による有効化、画像認識、PDFドキュメント分析、対話形式でのMidjourney、SD画像生成など、カスタムプラグインによるナレッジベース接続をサポート
- ローカルストレージ機能の追加:ファイルをサーバーに直接アップロード可能に、パフォーマンスを考慮し、非コアファイルのみローカルストレージに対応
- リストレイアウトの追加:2つのレイアウト方式をカスタム切り替え可能に
- GPTsアプリケーションの追加:全サイト検索をサポートし、公式の全GPTsを取得してシステムに直接追加可能に
- アプリケーションのモデルバインド機能:モデルにバインドされたアプリケーションはモデル切り替え不可に、未バインドのアプリケーションは切り替え可能に
- UI更新:全体的なスタイルをカードスタイルに変更、公告ボード更新、トップバー追加、対話とGPTsのグループ分離、アプリケーションセンターの変更、GPTs統合、全サイト検索追加
- サイドバー更新:選択/非選択時のダブルSVGアイコン設定、ダブル画像設定、画像リンク使用可能に
- レイアウト変更:ポイント残高表示の独立化、対話グループのクリア機能、ワークベンチ位置の移動
- 初期ウェルカムページの変更:九宫格をランダムアプリとGPTsに変更し、ランダム切り替えをサポート
- ツールバーの統合:多様なシーンと連動設定
- 入力ボックスのファイル貼り付けアップロードサポート
- ログインウィンドウ背景画像の変更:ポップアップ背景画像設定の追加、背景画像のカスタマイズをサポート
- 画像とドキュメントの送信機能追加:送信欄からのダウンロードをサポート
- 音声送信機能追加:一時停止と再開が可能な連続的な言語編成をサポート、録音中の直接送信をサポート
修正
- ユーザーが作成したアプリケーションが管理者によって拒否されても承認される問題を修正
- クライアントのネットワーク不安定による文字欠落の問題を修正
- 新しく生成された対話の最後の2メッセージが削除できない問題を解決
- 認証システムの全面アップグレード:新しい認証はドメインにバインドされ、単一の認証コードは同時に1つのドメインまたはIPのみをサポート
- コンテキスト設定エラーによるフリーズまたは無応答問題を修正
- 紹介人の表示エラー問題を修正:自分のみが表示される問題
- WeChatでプロモーションリンクが認識されない問題を修正
改善
- 最近の2メッセージの再送信時:現在の2メッセージを削除し、前の内容を継続して対話するように変更(新しい行で繰り返し質問するのではなく)
- 対話ストリームの出力速度制御:均一な出力速度で、よりスムーズな体感を実現
- ユーザー側のメッセージ読み込み、対話グループ読み込みにloadingスケルトン画面を追加
- 翻訳連想の不正確さ、一部シーンでの正常な翻訳と連想ができない問題を改善
- 管理画面のモデル設定:0に設定するとシステムが自動的にコンテキストを処理し、過大なtokenによるフリーズや無応答を防止
- 九宫格の削除:ランダムアプリ推奨に変更
- グローバルモデル設定の削除:混乱を避けるため、全モデルのプロキシアドレスはキー追加時に設定
- 公式アカウントAI自動返信機能の削除:一時的にこの機能をクローズ
- UIの美観向上:モバイル端末の適応性改善、チャットウィンドウの美化
- 対話グループ設定の変更をポップアップに統一:複数の設定情報を同時に変更可能に
デプロイメントチュートリアル
このセクションに進んだということは、Baotaパネルを使用してデプロイしたいということです。Baotaについてご存知ない場合は、Baota公式サイトで基本的な情報を確認してください。ここでは、既にBaotaパネルがインストールされていることを前提とします。
環境インストール
Baotaに必要な環境:
- Nginx >= 1.19.8
- MySQL >= 5.7 または MySQL 8.0
- PHP-7.4(システム必須環境ではない)
- PM2マネージャー 5.5
- Redis 7.0.11
- Nodeバージョン:>= v16.14.1
初期環境インストールにはLNMPワンクリック環境パッケージの使用を推奨します。
注意①: MySQL 8.0バージョンを使用する場合、データベースを作成する前にrootパスワードをリセットする必要があります。
注意②: サーバーポートをBaota運用パネルに同期してください(重要)。
Nodeバージョンの選択
PM2を使用してNodeバージョンを切り替えます(必須):
Nodeバージョンをv16.14.1以上に切り替えます(ここではv16.19.1)。
pnpmモジュールのインストール
pnpmがインストールできない場合、BaotaのデフォルトのTaobaoソースが使用できなくなっているためです。コマンドコンソールを開き、公式ソースに切り替えて、pnpmモジュールを個別にインストールします。
まずnpmを公式ソースに設定:
npm config set registry https://registry.npmjs.org/
pnpmを個別にインストール:
再度ターミナルを開き、必要なnode関連環境があるか確認します。以下のコマンドをそれぞれ実行し、バージョン番号が表示されればインストール成功です。
node -v
npm -v
pnpm -v
「-bash: pnpm: コマンドが見つかりません」と表示される場合は、以下のコマンドを実行します(上記のコマンドで全てバージョン番号が表示された場合は不要)。
curl -fsSL "https://github.com/pnpm/pnpm/releases/latest/download/pnpm-linuxstatic-x64" -o /bin/pnpm; chmod +x /bin/pnpm;
インストールできない場合は、以下のコマンドを実行:
curl -fsSL "https://mirror.ghproxy.com/https://github.com/pnpm/pnpm/releases/latest/download/pnpm-linuxstatic-x64" -o /bin/pnpm; chmod +x /bin/pnpm;
Redisのインストール
BaotaパネルでRedisをインストールします。
デプロイと実行
新しいサイトの作成
Baota - ウェブサイト - サイトの追加
SSL証明書の設定
商用SSL証明書がない場合は、Baotaの無料証明書を使用し、Let's Encrypt証明書を申請します。
HTTPSを強制に設定して保存します。
SparkAiシステムソースコードのアップロード
ウェブサイトのルートディレクトリに移動します。
新しく作成したサイトの元のファイルを削除します。
システムプログラムをアップロードし、ウェブサイトのルートディレクトリに解凍します。
ソースコードパッケージを解凍します。
.envファイルの設定
.env.exampleファイルをコピーし、.envファイルに名前を変更します。
.env設定ファイルをサイト情報に合わせて修正します。
mysqlは必須設定項目で、redisサービスも必須です。そうでないとプロジェクトを起動できません。jwt tokenは必ず個人の秘密鍵に変更してください(元の基础上にランダムな英字を追加するだけです)。Baotaのデータベース情報は下図のように直接確認できます。
プロジェクトの起動
ポートの開放
Baotaパネルのセキュリティで9520ポートを開放します(設定ファイルで他のポートをカスタマイズした場合は、対応するポートを開放してください。システムの他のポートと競合しないように、デフォルトの9520ポートを推奨します)。
依存関係のインストール
ウェブサイトのルートディレクトリでSSHターミナルを開きます。
開いたディレクトリがウェブサイトのルートディレクトリでない場合は、ウェブサイトのルートディレクトリに切り替えます。
cd /www/wwwroot/あなたのウェブサイトディレクトリ
BaotaのデフォルトはTaobaoの古いソースなので、Taobaoの最新ソースに切り替えます:
npm config set registry https://registry.npmmirror.com
pnpm iコマンドを使用して依存関係をインストールします。
pnpm i
pnpm startコマンドでプロジェクトを起動します。
pnpm start
起動ログの確認
pm2 logと入力して詳細なログを確認し、下図のように表示されれば成功です。
pm2 log
スーパーユーザーの作成に成功しました。ユーザー名は[super]、初期パスワードは[sparkai]です。
リバースプロキシの追加
サイトに9520ポートを追加します。Baotaのセキュリティでこのポートを開放する必要があります。そうでないとアクセスできません。
ターゲットURL:http://127.0.0.1:9520
デプロイ完了
デプロイが完了しました。ドメインにアクセスし、ドメイン認証コードを入力してください。
デフォルトのフロントエンドアドレスはドメインアドレスです:本例ではdemo.sparkaigf.com
デフォルトのバックエンドアドレスはドメインアドレス/sparkai/adminです:本例ではdemo.sparkaigf.com/sparkai/admin
システムのデフォルトスーパーアドミニストレーターアカウントはsuper sparkaiです。
システム認証の有効化
ご自身のシステムのフロントエンドドメインにアクセスします:本例ではdemo.sparkaigf.com
未認証状態
システムにアクセスすると、認証コードの入力を求められます。
認証成功例
正しい認証コードを入力すると、システムの全機能にアクセスできるようになります。