AIチャットボットと画像生成システムの構築ガイド:ChatGPTとMidjourneyを統合した最新プラットフォーム

システム概要

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

未認証状態

システムにアクセスすると、認証コードの入力を求められます。

認証成功例

正しい認証コードを入力すると、システムの全機能にアクセスできるようになります。

タグ: ChatGPT Midjourney AI Node.js NestJS

6月16日 21:42 投稿