2024/08/08 09:44

X-SmartTalkerはこちらから利用できます


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にすればそれ以前のデータは読まなくなります。


以上がデータベースの中身についての解説になります。

コメント

このアクティビティは気に入りましたか?