
X-SmartTalkerのデータベースの中身について解説して行きます。
①インストール
最初に、データベースの中身を見やすく表示する為のツール導入について説明します。
DB Browser for SQLiteを使います。
インストール方法については既に解説してくれているサイトがいくつもあるのでピックアップしてリンクを貼ります。
https://www.javadrive.jp/sqlite-db-browser/install/index1.html
https://dskevin.hatenablog.com/entry/2022/02/20/090000
インストール完了後、起動するとこのような画面が表示されます。
「データベースを開く」ボタンからデータベースを選択して中身を表示します。
②概要
X-SmartTalkerの初回実行時に、以下のDBが自動生成されます。
- conversations.db
- 会話履歴を保存しています。
- auto_posts.db
- 自動投稿指示のデータを保存しています
- scheduled_posts.db
- スケジュール投稿の予定を保存しています。
- emotion_data.db
- Twitterで話したことがある各ユーザーのデータを保存してしています
- twitter_bot.db
- twitterの投稿をどこまで読んだか保存しています。
- image_info.db
- 自動投稿画像管理に利用していましたが、現在は他のDBに統合したので未使用になりました。
- likes_data.db
- いいねの管理をするためのDBですが、Twitterの仕様変更で現在機能を凍結しています。
③詳細
・conversations.db 会話履歴の見方
- timestamp 投稿を読んだ時間/書いた時間です。
- platform Twitter固定です。(未使用) (開発者のみDiscordとの連携に利用しています。)
- channel_id (未使用) (Discordで利用しています。 )
- message_type メッセージの種類を区別するために利用しています。
- role ユーザーかAIかを区別するために利用しています。
- username 会話相手のユーザー名です。
- twitter_unique_id TwitterAPIの内部で利用しているIDです
- user_id 公開されている@から始まるIDです
- content 会話履歴の本文です。
- tweet_id TweetのIDです。
- referenced_tweet_id 返信元のTweetのIDです。
- division_mark 分割投稿かどうか区別するために利用しています。
この中では主にcontentに注目します。返信内容が変だった時、後の会話に引きずらないようにするため、ここで履歴を修正したほうが良い場合があります。
・scheduled_posts.db スケジュール投稿の管理
- immediate_posting 即時投稿の判別に利用します(即時投稿はすぐに投稿して消えるので全て0です)
- scheduled_time 投稿する時間を保存しています。
- message_type メッセージの種類を区別するために利用しています。
- role ユーザーかAIかを区別するために利用しています。
- username 会話相手のユーザー名です。
- twitter_unique_id TwitterAPIの内部で利用しているIDです
- user_id 公開されている@から始まるIDです
- content 投稿内容本文です。
- referenced_tweet_id 返信元のTweetのIDです。
- quote_tweet_id 引用TweetのIDです。
- attachment_image 添付画像です
- auto_post_instruction_id どの自動投稿指示によって生成されたかを判別するためのデータです
この中では主にcontentとattachment_imageに注目します。内容が変だった時、後の会話に引きずらないようにするため、ここで履歴を修正したほうが良い場合があります。attachment_imageにはこの投稿に添付される画像の保存場所が書いています。(システム設定画面の画像処理フォルダでどこに保存するか設定を変更できます。)
ここで裏技が使えて、attachment_imageをmp4動画の保存場所に書き換えると動画投稿ができます。(動画は別途自作する必要があります。)
KLING AI等を使って画像を動画にして投稿する用途でよく使っています。
絵と同じフォルダに動画を置いた場合次のように書き換えできます。
C:/Users/81903/Desktop/しいな_絵素材/DALLE\scheduled_post_image_006.png
↓
C:/Users/81903/Desktop/しいな_絵素材/DALLE\xxx.mp4
・emotion_data.db 各ユーザーのデータを管理
- user_id 公開されている@から始まるIDです
- twitter_unique_id TwitterAPIの内部で利用しているIDです
- joy、sadness、anger、disgust
- 感情解析AIを使って、感情値の変化を保存していましたが、AIの性能が上がって普通に感情表現が豊かになったので未使用になりました。
- conversation_count
- 今日の会話回数を保存しています。0時更新です。1人のユーザーがあまりにも話しかける回数が多い場合に返信を抑制するために利用しています。(5回までは無条件に返信、30回以降は返信しない)
- followed フォローしたユーザーか保存しています。
- profile 会話相手のプロフィールを自由に記載できます。
- likes いいねの数を記録していましたがTwitterの仕様変更で現在機能を凍結しています。
- enable_DM DMに反応するか設定できるようにしていましたが、Twitterの仕様変更で現在機能を凍結しています。
- look_timeline タイムラインを読むかどうかの設定です。
この中では主にprofileとlook_timelineに注目します。特記事項のあるユーザーはここに何でも記載できるので、これによりAIの対応を変化させることができます。
look_timelineを1にすると、そのユーザーのタイムラインを常に全て読むようになります。投稿自動で返信を書いたり書かなかったりするようになります。
・twitter_bot.db
このDBの中にはテーブルが2つあるので、まずtwitter_infoを選択します。
- since_id リプライ(@ツイート)をどこまで投稿を読んだか記録しています。
- dm_since_id DM機能は未使用になりました。
- timeline_since_id タイムラインをどこまで読んだか記録しています。(emotion_data.dbのlook_timeline で設定した所)
長期間アプリを落とした後に、古すぎる投稿に返信をしたくない場合等にはここを直接書き換えて、このツイートIDよりも古い投稿は見ないようにするようなときに使えます。since_idとtimeline_since_idをどちらも何でもいいので最近のツイートのidにすればそれ以前のデータは読まなくなります。
以上がデータベースの中身についての解説になります。