Ikarai's blog

Ikarai's blog

记录学习,记录生活

Linuxシステムに明日方舟AmiyaBotグループチャットボットを展開する

この記事を書く目的は二つあります。一つは学習ノートとして、次回再展開する際に復習するためです。二つ目は未熟なチュートリアルとしてですが、全体の流れは他の人から学んだものです。
実際には家で暇を持て余して何かをするために探していました


エラーが発生しなかった場合のみを示します
エラーが発生した場合は、まず検索エンジンで遭遇した状況やエラーメッセージを検索してください
または公式サイトの FAQ や公式チャンネルを確認してください


まず、私も初心者で、興味のあるものに出会うといじってみたくなります。もし間違っているところがあれば指摘してください。公式ドキュメントInitial-heart 大佬のチュートリアルに基づいて展開を完了しました。ただし、大佬のチュートリアルは Windows システムでの展開ですが、考え方は同じで、この記事は Linux システムでの展開です。

始める前に、私の展開環境と使用するツールを紹介します。
阿里云サーバーを使用して展開し、オペレーティングシステムは Ubuntu 20.04 です。
オープンソースの SSH ツール Tabby を使用します。ダウンロードリンク:公式サイト
FTP ツール FlashFXP 公式サイト は有料ソフトですが試用できます。または:百度云盤 (提取码) 蓝奏云 (密码)
スライド検証アシスタント(携帯電話またはエミュレーターにインストール) Github リンク

Tabby の使用方法:ソフトを開いたら設定 - 構成と接続を選択し、新しい構成をクリックして SSH 接続を選択し、サーバーのパブリック IP とユーザー名、パスワードを入力します(このソフトでは Ctrl+C を使用してテキストをコピーしないでください。マウスの左ボタンでテキストを選択し、右クリックでコピーしてください。同様に、テキストを貼り付けるには右クリックしてください。また、ファイル名を入力する場合は、ファイル名の最初の 1 文字または複数の文字を入力してから Tab キーを押すと補完されます)。
FlashFXP の使用方法:メニューバーのセッション - クイック接続を選択し、サーバーのパブリック IP とユーザー名、パスワードを入力します。
次に正式に始めます。


{mtitle title="mirai の展開"/}

mirai-Releaseを開き、最新バージョンを選択し、使用するファイルを見つけます。
mirai1
右クリック - リンクアドレスをコピー
mirai2
次に Tabby に移動し、以下のコマンドを入力して Enter を押し、mirai という名前のフォルダーを新規作成します。
mkdir mirai
次のコマンドを実行して現在のディレクトリ内のすべてのファイルを表示します。
ls
新しく作成されたことが確認できます。
mkdir
次のコマンドを実行して mirai ディレクトリに入ります。これはフォルダーをダブルクリックして開くことと理解できます(cd ..は一つ上の階層に戻る)。
cd mirai
cd mirao
次のコマンドを実行して mirai をダウンロードします。URL は先ほどコピーしたリンクです。
wget URL
wget
ダウンロードが完了するのを待ちます。
wget mirai
再度lsコマンドを実行すると、ダウンロードしたファイルが表示されます。
ls mirai
次のコマンドを実行してファイルの権限を設定します。
chmod 777 ファイル名
chmod1
設定後、ファイル名の色が変わります。
ls2
次のコマンドを実行してファイルを実行し、ダウンロードを開始します。
./ファイル名
./mcl1
インストール中にいくつかの選択肢が表示されます。
Java をインストールしますか:y を選択してインストール
Java のバージョン:最高バージョンを選択
JRE & JDK:JDK を選択
バイナリアーキテクチャ:x64 を選択
./mcl
./mcl
後で MCL をダウンロードするかどうか尋ねられます。y を選択してダウンロードします。
./mcl
これが表示されればインストールが完了したことになります。任意のキーを押して終了します。
./mcl
lsを実行すると、インストールされたファイルが表示されます。
ls
次のコマンドを実行して MCL を起動します。初回起動時に初期化が必要で、ランタイムライブラリとプラグインをダウンロードします。
./mcl
完了後にこのメッセージが表示されます。
./mcl
初期化が完了しました。Ctrl+C を押してプロセスを終了できます。
次に FlashFXP に移動し、パスに従ってこのファイルを見つけ、右クリック - 編集します。
fxp
QQ 番号を account に、パスワードを value に入力します。protocol には IPAD を推奨します。
注意、コロンと値の間には必ずスペースが必要です!
注意、コロンと値の間には必ずスペースが必要です!
注意、コロンと値の間には必ずスペースが必要です!
入力が完了したら保存して閉じます。
txt
./mclを再度実行します。
このように表示され、最後のメッセージを選択して右クリックでコピーし、携帯電話に送信します。
url
スライド検証アシスタントを開き、この文字列を貼り付けて次へ進みます。
phone
検証が完了しました。
phone
提供されたチケットをコピーし、コンピュータに戻ります。
phone
右クリックで貼り付け、Enter を押します。
ticket
次に SMS 認証が必要です。yes と入力して Enter を押します。
phone
SMS 認証コードを入力し、ログイン成功です。
success
最後にこのようなメッセージが表示され、mcl が正常に起動しました。
success
Ctrl+C で終了します。

{mtitle title="mah のインストール"/}

mah-Releaseを開き、最新バージョンを選択し、使用するファイルを見つけます。
mah
コンピュータにダウンロードし、次に別の方法で mah をインストールします。
もちろん、前述の方法を続けて使用し、cdコマンドで mirai/plugins ディレクトリに移動し、wget URLの方法でインストールすることもできます。
FlashFXP では、左側がローカルコンピュータのファイル、右側がサーバーです。
左側から右側にファイルをドラッグするだけです。
fxp
fxp
再度./mclを実行して mcl を起動し、初期化が完了するのを待ってから Ctrl+C で終了します。
./mcl
このディレクトリに移動し、空白の部分を右クリックして更新します。
fxp
新しく表示されたフォルダーに入ります。
fxp
右クリックして setting.yml を編集します。
fxp
元の内容を削除し、以下の内容を貼り付けて verifyKey の値を変更します。

## 有効なアダプター、http、ws、reverse-ws、webhookが内蔵されています
adapters:
  - http
  - ws

## 認証プロセスを有効にするかどうか。trueの場合、接続時にverifyKeyの検証が必要です
## 公開接続時に有効にすることをお勧めします
enableVerify: true
verifyKey: 1234567890

## 一部のデバッグ情報を有効にする
debug: false

## シングルセッションモードを有効にするかどうか。trueの場合、コンソールでログインしたボットにセッションを自動的に作成します
## 有効にすると、インターフェース内の任意のsessionKeyにパラメータを渡す必要がありません
## コンソールに複数のボットがログインしている場合、動作は未定義です
## コンソールにボットが一つだけログインしているときに有効にします
singleMode: false

## 過去のメッセージのキャッシュサイズ
## 同時に、httpアダプターのメッセージキューの容量でもあります
cacheSize: 4096

## アダプターの個別設定、キー名はアダプター項目の設定と同じです
adapterSettings:
  ## 詳細はhttpアダプターの使用説明設定を参照してください
  http:
    host: localhost
    port: 8080
    cors: ["*"]
    unreadQueueMaxSize: 100

  ## 詳細はwebsocketアダプターの使用説明設定を参照してください
  ws:
    host: localhost
    port: 8060
    reservedSyncId: -1

{mtitle title="AmiyaBot の展開"/}

上部の構成と接続をクリックすると、接続履歴が表示されます。新しいウィンドウを作成します。
t
t
それぞれ右クリックして名前を変更し、mirai と AmiyaBot を別々に制御できるようにします。
t
まず第一歩、git をインストールします。
最初の方法(後続のステップで git が認識されない場合がある):
ダウンロードをクリックし、FlashFXP を使ってルートディレクトリに置くか、wgetコマンドでダウンロードします。
git
chmod 777 ファイル名で権限を与えます。
tar -xzvf ファイル名で解凍します。
第二の方法:
順にapt-get update -y apt-get upgrade -yを実行して apt ツールを更新します。
apt install gitで git をインストールします。
git --versionでインストールされた git のバージョンを確認し、確認できればインストール成功です。
次に、リポジトリをクローンします。
git clone https://github.com/AmiyaBot/Amiya-Bot.git
clone
cd Amiya-Bot
cd
pip install -r requirements.txtで依存関係をインストールします。
pip
playwright install --with-deps chromiumで Chromium をインストールします。
Chromium
このディレクトリに移動し、右クリックして編集します。
fxp
host を 0.0.0.0 に変更し、authKey のパスワードは空白でも構いませんが、安全のために入力することをお勧めします。
server
最後に
python3 amiya.pyで実行します。
mirai ウィンドウ:cd mirai./mcl
AmiyaBot ウィンドウ:cd Amiya-Botpython3 amiya.py
両方が正常に起動したら次のステップに進み、コンソールに接続します。

{mtitle title="コンソールに接続"/}

まずサーバーのコンソールに移動します(阿里云を例に)。インスタンスを選択して詳細に入ります。
ali
セキュリティグループ - ルールを設定します。
ali
手動で追加をクリックし、ポート範囲を 8088/8088 に設定し、許可対象を 0.0.0.0/0 に設定して保存します。
念のため、ローカルでも 8088 ポートを開放します。具体的な操作はコントロールパネルを開き、ファイアウォールを選択します。
pc
高度な設定
pc
受信ルール - 新しいルールを作成します。
pc
ポートを選択します。
pc
TCP を選択し、下に 8088 を入力して保存します。
pc
ブラウザでコンソール http://console.amiyabot.comを開きます。
サービスアドレスはhttp:// サーバーのパブリック IP:8088、キーは server.yaml に記入した authKey です。
co
インスタンス管理を選択します。
con
下の図のように設定します(制御可能なインスタンスには記入しても記入しなくても構いません。内容はあなたのグループ番号です)。
con
完了後はこのようになります。
con
次に、プラグインストアに移動して必要なプラグインをインストールできます。各プラグインには設定と使用方法の説明があります。
con
さて、今はグループやプライベートチャットでウサギとインタラクションができます。
今は正常に動作していますが、Tabby を閉じるとプロセスも閉じてしまいます。コンピュータをずっとシャットダウンせずに Tabby を実行し続けるわけにはいきません。解決策は次に紹介する screen です。

{mtitle title="screen でプロセスを維持"/}

次のコマンドが実行できない場合は、システムに screen がインストールされていない可能性があります。Ubuntu システムで以下のコマンドを実行してインストールします。
apt-get install screen
まず、以下のコマンドを実行して mirai という名前のセッションを作成します。
screen -S mirai
screen
実行後、何も変わっていないように見えますが、実際には screen が実行されています。
次に./mclを実行して mcl を起動し、起動が完了したら Ctrl+A+D を押します。この時、セッションは一時的に中断されますが、セッション内で実行されたコマンドは中断されません。
同様に、cdコマンドで AmiyaBot ディレクトリに移動し、AmiyaBot という名前のセッションを作成し、python3 amiya.pyで amiya.py を起動し、再度 Ctrl+A+D を押してセッションを中断します。これで、いつでも Tabby を閉じることができ、プログラムは実行され続けます。
screen
セッションを中断する方法を学んだら、セッションを復元する方法はどうでしょうか?
まずscreen -lsでセッションリストを確認し、screen -r セッション名またはscreen -r id番号でセッションを復元できます。
screen
セッションを終了するには:exit


残りの内容(大体書かない予定):
1.Nginx リバースプロキシによる暗号化接続、参考にしてください(このチュートリアル
2. 動画版
3. プラグイン中の公招と ChatGPT の設定


多くの内容はインターネットや自分の試行錯誤から来ており、100% の正確性は保証できません。誤りや抜けがあれば指摘してください。

PS:おそらく宝塔パネルをインストールしたため、コンソールにアクセスすると常にインターフェースリクエスト失敗のメッセージが表示されます。あまり続けたくないので、これでいいでしょう。この文章はおそらく更新されることはないでしょう。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。