アストロラーベ開発部門

Misskey運用チームが利用するボット、アストロラーベを開発しています。

主要言語は「Python」です。全ソースコード・使用ファイルをNextCloudで配布しています。

必須ファイルの直接ダウンロード。Model等を全て同梱したものです。

https://cloud.seitendan.com/index.php/s/wtGNoL3BBYMtiaF

githubでのインストールも可能です。(様々な必須ファイルのインストールが必要なため、あくまで補足的な利用です)

misskey_bot_astrolabe | github

https://github.com/takumin3211/misskey_bot_astrolabe/tree/master

アストロラーベの自己紹介

『太古の昔から、人々の物語を支えた天測航法装置”アストロラーベ”より生まれました。
あなたが望む世界に、あなたと一緒に赴きます。
「さて、次はどこに向かいましょうか?」』

主要機能

能動実行型の機能(自動化された機能)

  • マルコフ連鎖機能:ホームTLとグローバルTLを元に自動で文章を生成してノートします。
  • 挨拶:おはよう、おやすみの挨拶が出来ます
  • 日次報告:一日の投稿数や稼働時間をノート出来ます。
  • RSS投稿:その名の通り一日に何回か、RSSで記事を配信してくれます
  • ナウプレイング:音楽名とアーティスト、アルバム名をランダムで投稿する機能です。
  • ご飯紹介:夜にご飯ガチャを自動実行してご飯を紹介してくれます
  • アニメ紹介:一定の確率でアニメを紹介してくれます
  • ワードクラウド:四時間に一回、GTL全数記録に基づくワードクラウド画像・参加インスタンス数・参加ユーザー数、ランダムでインスタンス名とユーザー名を投稿する

受動実行型の機能(利用者の行動に応じた機能)

  • 呼び出し:「アストロラーベちゃん」と呼ぶと一定の確率でリプライしてくれます(フォロワー限定)
  • フォロー返し(フォロー返しの機能)
  • リアクション:おはよう、おやすみ、ごはん、かわいい、等に反応してカスタム絵文字を付けてくれます(フォロワー限定)
  • 自由トーク:メンションして文章を送ると内容に応じた返信をします。
  • 機能紹介:メンションして「help」「info」「機能」と送ると機能を教えてくれます。
  • 死活報告:メンションして「死活」「世代」「version」と送るとバージョンと時間の乗った返信が来て死活確認等できます
  • ご飯ガチャ:「献立」「ご飯ガチャ」と送ると517の料理名からランダムで一つ送ってくれます
  • ふつおた機能:ふつおた 名前 本文、とするとラーベちゃんが代理投稿してくれる

サーバ運用の補佐と、Botの管理をする為の機能(他のサーバ管理者が利用する時の為の機能)

  • 登録された管理者だけ、停止・再起動が出来ます。また、起動の通知(再起動通知)を受け取れます
  • 代理投稿:「代理」「投稿」「代理投稿」の以後の文を「ホーム」範囲で投稿します。
  • ログ取得:「ログ」と送ると書き込み中のログを見せてくれる
  • ログ破棄:「ログクリア」と送ると書き込み中のログを棄却出来る
  • システムチェック:空き容量の減少、CPU使用率の上昇を検知すると通知してくれます(一日一回の検出)

実装予定

実装中

Future:V.01.94.17 ふつおたの精査、95Updateへの更なる準備
Future:V.01.95.00 【予約系】ふつおたの後尾検出による予約機能(予約機能の動作検証)、内閣府の祝日CSVのDL機能と投稿一括生成機能(wget→with→dataflame→冒頭合致(年)→日次変換→index取得して何の日か→当てはめて一括生成→予約テーブル登録)、リマインダー機能(リプID保持必須)
Future:管理者に対して予約テーブルを見る機能、予約テーブルを削除する機能、QRコード生成、削除機能

将来実装予定

  • カラーコードベースのラッキーカラー機能
  • 名言等を極めて低確率でノートする機能
  • ひらがなガチャ
  • サーバメンテナンス機能

技術調査及び構想中

  • リプライベースの翻訳機能
  • 時間指定のリマインダー
  • 選択肢に応じた疑似ADVゲーム
  • 呼び名登録機能
  • Misskeyの外部への実装
  • 仮想SSH機能
  • LLMモデルの精度向上

更新履歴

  • V.01.94.16.31 2023/12/21 【メイン系(アストロラーベ)】V.01.94.16.00以後発生していた大量のバグ修正、リマインダー機能の実装に備えた準備、【管理者機能】JSON閲覧機能の追加
  • V.01.94.16.00 2023/12/11 【管理者機能】JSONリセット機能の追加
  • V.01.94.15.00 2023/12/11 【メイン系(アストロラーベ)】スケジュール系のバグ修正、スケジュール系の耐障害性向上、【管理者機能】ログ機能の文修正、【試験実装】ふつおた予約機能の試験実装(動作確認)
  • V.01.94.14.00 2023/12/10 【メイン系(アストロラーベ)】V.01.94.11以後発生していた様々なバグの修正、安定性の向上
  • V.01.94.13.00 2023/12/09 【メイン系(アストロラーベ)】MisskeyAPI関連の仕様変更、95Updateに向けた準備(投稿予約機能、日次系投稿の大規模改修)
  • V.01.94.12.00 2023/12/09 【メイン系(アストロラーベ)】日次系のロジック変更、学習機能に時差演出を追加
  • V.01.94.11.00 2023/12/09 【メイン系(アストロラーベ)】RSS系の取得ロジック変更(全数投稿に向けた拡張性確保)、DBメンテナンス(誤字等の修正)
  • V.01.94.10.00 2023/12/05 【メイン系(アストロラーベ)】翻訳機能の実装、ワードクラウドの件数に関するバグ修正
  • V.01.94.03.00 2023/12/05 【メイン系(アストロラーベ)】システムチェックとワードクラウドの時間重複による起動問題の修正、グローバル系取得の更なるバグ修正
  • V.01.94.02.00 2023/12/04 【メイン系(アストロラーベ)】スクレイピングがサーバ環境で正常に動作していなかった問題を修正、グローバル系取得のバグ修正
  • V.01.94.01.00 2023/11/28 【メイン系(アストロラーベ)】確率系の一部廃止、日次系のトリガー変更
  • V.01.94.00.00 2023/11/28 【共通】バージョン表記を「メジャーバージョン(根本的な改変):マイナーバージョン(大規模な変更):リビジョン(細かな変更):ビルド(バグ修正など)」に変更。【メイン系(アストロラーベ)】RSSの拡充(二つ)、Wikipedia記事紹介、スケジュール系のバグ修正、ワードクラウドの動作改善、ログ機能のバグ修正、ログレベルの変更機能、TL勉強機能の実装。
  • v.1.93.00 2023/11/25 【メイン系(アストロラーベ)】Linux実行環境への対応、軽微な問題の修正、安定性の向上
  • v.1.92.01 2023/11/– 【メイン系(アストロラーベ)】再読込の際、処理が高速に行われる問題の更なる修正、管理者用としてログ取得機能、ログ放棄機能、起動メッセージにログレベルを追加
  • v.1.92.00 2023/11/– 【メイン系(アストロラーベ)】ワードクラウド機能の実装。再読込の際、ループがサーキットになる問題の修正、起動メッセージの修正、起動報告のDMが複数回送られる問題の修正
  • v.1.91.00 2023/10/– 【メイン系(アストロラーベ)】ふつおた機能の実装、投稿管理の外部化(JSON)、設定のINI化、リフォロー機能の修正、MisskeyAPI利用の内製化、コード見直しによるウェブソケット切断時の再読込範囲の削減
  • V1.01.07 2023/10/24 【メイン系(アストロラーベ)】「おやすみ」のリアクションが正常にされていなかった問題を修正、ログ出力のレベルを最重度に限定しログ出力文字数を大きく低減。
  • V1.01.06 2023/10/08 【メイン系(アストロラーベ)】天気を気象庁から取得しノートする機能の実装、代理投稿する機能の実装(管理者限定)、アニメ投稿機能が動作しない不具合の修正、システムチェックのノートを管理者へのメンションに変更、内製した絵文字追加への変更、日次の時間と日の重複を解決
  • V0.07.00 2023/09/20 【メイン系(アストロラーベ)】マルコフ連鎖による自動生成の定期ノート機能(グローバルTLの取得機能)、自動フォロー返し機能
  • V0.06.01 2023/09/14 【メイン系】ご飯ガチャ機能(リプライ)、ご飯投稿機能(定期)、アニメ投稿機能(定期)の実装、管理機能の搭載(特定ユーザのみリプライで再起動等が出来る機能)、非同期処理に関する問題の修正、ウェブソケットの例外キャッチの強化【メンテナンス系】簡易的なスクレイピング機能の搭載、CSVの重複データ削除機能の搭載
  • V05.01 2023/09/07 【通常運用系】ナウプレ機能、初回起動と運用のpyファイルの分離、日次報告ノート機能のコード整理、RSSノート回数の増加、呼び出し機能の回数減少、微細・重大なバグの修正。【メンテナンス系】アストロラーベメンテナンスウィザードのリリース。CSV=>DB、DB=?CSV、m3u=>CSV 、DBのテーブル一覧表示、DBの内容閲覧等の機能を初期から搭載してます
  • v0.04.00 2023/08/28 呼び出し機能、リアクション機能、システムチェック機能を追加しました。また、定期投稿系の問題を解決し、スケジュール機能を独自実装しました(より柔軟な乱数利用が可能になりました)。新規運用しやすいように、logとmodelフォルダを自動で生成するようにしました。
  • v0.03.00 2023/08/26 RSS機能を搭載、ログ出力機能を搭載、死活報告機能を追加(「機能紹介」より短く効率的な表示を実現)、各種PATHの自動取得機を追加、時間指定投稿が正常に動作しない問題を解決等
  • v0.02 2023/08/22 設定項目をsetting.pyに分離し、レポジトリを公開しました。
  • v0.01 2023/08/21 挨拶投稿、日次投稿、機能紹介、自由トーク機能を搭載して運用を開始しました。

導入時の注意点

起動するべきメインファイルはmain.pyです。modelフォルダの中にLLM(LLAMA系言語モデル(「chronos-13b.ggmlv3.q4_K_M」を使っています))を入れて下さい。

setting.pyの中にMisskeyのトークン、BotのID、管理者のID等を記入して下さい。 

カスタム絵文字等、星海天測団Misskey支部に最適化されている為、適宜api.dbの中を弄る等して調整してください(メンテナンスウィザードに機能が搭載されています)

cashフォルダの中に、「cash1.txt」「cash2.txt」「cash3.txt」の空ファイルを作って下さい

既知の問題

2023/12/21 スケジュール系の動作不全。JSONリセット関連の障害と推定し原因特定中。

修正済みの問題

  • 【2023/12/21修正済み】2023/11/25 システムチェック機能がLinux環境に適合していない
    →調査中、ただし低い優先順位
  • 【2023/11/25修正済み】2023/10/21 ランダムが正常に動いていない、極めて少ない選択肢から抽選を行っている可能性がある
  • 【2023/08/26修正済み】2023/08/23 起動時「time_db」が見つからない、というSQLiteのエラー
  • 【2023/08/26修正済み】2023/08/23 LLM後、返答をリプで飛ばすとウェブソケットのコネクションクローズが受信されにゃいエラー
  • 【2023/08/23修正済み】2023/08/23 全ての返信が「ホーム」に返信されている問題。返信元の公開範囲を引き継げるように変更予定。