![見出し画像](https://assets.st-note.com/production/uploads/images/143500861/rectangle_large_type_2_5a15306360abf7084ae0c7904811ac7b.png?width=800)
【配布】生成AIで投資情報分析BOT作成 ~AIで自動情報収集&分析 (Dify x Gemini x Discord)~ #3 BOTの使い方と配布
こんにちはRcatです。
今回が本シリーズまとめとなります(今後アップデートはあるかもしれないが)。
というわけで出来上がった 自動分析Discord BOTの使い方と配布を行いたいと思います。
はじめに
概要
この記事で初めて見る方向けに簡単に説明し直します。
今回やることは投資の情報収集と分析の自動化です。
システム全体を図のようにすると以下のようになっており、Yahooの掲示板から投資に関する投稿を取得し、Difyを使ってAIで分析を行い、Discordを使ってチャットで分析結果を報告します。
もちろん分析は自動だけではなく、手動で細かく指示して行うこともできます。
![](https://assets.st-note.com/img/1717918260296-jcGYg4yx5O.png?width=800)
関連記事の紹介
初回
システムの紹介前半です。実行環境やツールについてはこちらをご確認ください。
2回
システムの紹介後半です。
DIfy系目次記事
Discord サーバーとBOTの準備
まずは準備をしていきます。
![](https://assets.st-note.com/img/1717919544073-HEsU2GbbDm.png?width=800)
まずやることは新しいサーバーを立てて新しくボットを作成し、招待することです。
Discordとは何か、どうやってボットを作って招待するのかなどについては、以下の画像生成AIを使ったBOTの記事で解説しています。
チャンネル
このBOTを使う上で必要なチャンネルは以下の通りです。赤枠で囲ってある部分が必須です。
上記の画像にあっても、ここで書いていないものに関しては自動的に作成されるので、あえて用意する必要はありません。
system
システムの終了を指示するのに必要です。log
システムからのログを出力するのに必要です。指示
システムを都合上必要ですが、配布用ボットでは使えません。掲示板
掲示板カテゴリーの中に必要です。掲示板管理コマンドを実行するのに必要です。
カテゴリ
掲示板
個別の掲示板を包括するカテゴリです。この中に自動的にチャンネルが作成されるため、絶対に必要です。
この中に掲示板という名前のチャンネルが1つ必要です。
配布データとBOTの実行
配布データの内容
![](https://assets.st-note.com/img/1717923498188-SX1p7ZqgLo.png?width=800)
create.sh
Pythonの仮想環境を構築します。FinanceBOT_bd.py
本作のBOTです。finance_databese.py
本作の本体です。requirements.txt
ライブラリのリストです。create.shを使うと自動的にインストールできます。R_Financebot.service
systemdに登録する場合、参考にしてください。start.sh
ボットを起動するためのスクリプトです。token.ini
この中にボットのトークンを書き込みます。
BOT起動環境の構築
本作はPythonでできています。
配布の中のcreateを実行することで、自動的に環境構築を行うことができます。
実行するにはstartを使用してください。
詳しくは以下の記事で紹介しているので参考にしてください。
データベースの用意
インストールさえすれば後は特に設定の必要はありません。。
第1回をご確認ください。
ソースの書き換え
データベースに関してはソースコード内でユーザー名とパスワードの設定を行っています。
各スクリプト内で以下の行をご自身の設定に合わせて変更してください。
![](https://assets.st-note.com/img/1717926177919-hYEXi9325K.png)
![](https://assets.st-note.com/img/1717926160171-SEyxcxP3or.png)
Difyの用意
Difyのインストールについては、引き続き第1回をご確認ください。
インストール後、チャットボットの作成とAPIキーの取得が必要です。
チャットボットの作成
配布データの中にエクスポートした、Difyのチャットボットがあるので取り込んでください。
それぞれのAPIキーを作成してください。
![](https://assets.st-note.com/img/1717925789966-DmnEmChxJ3.png)
HTTPリクエストの変更
Difyワークフロー内のHTTPリクエスト先をご自身のBOT稼働PCのアドレスに変更してください。一部のニュース取得機能等で使用します。
ソース内のキー書き換え
DifyのAPIキーは直接ソースに書き込んであるので、編集して変更する必要があります。具体的には以下の箇所です。
![](https://assets.st-note.com/img/1717925882109-EMgxu4BIkc.png)
![](https://assets.st-note.com/img/1717925977650-Yh7U5M7Tdh.png)
![](https://assets.st-note.com/img/1717925949295-DGHX4CgAhX.png)
Difyに関する設定はキーだけではなく、サーバーの設定も必要です。
現在はrcatのローカルIPアドレスが入っているので、ご自身のローカルIPアドレスに変更するか、公式サーバーを使っている場合はそのアドレスを入れてください。
画像認識の用意
この項目は任意です。
ボットが落ちるのでライブラリのインストールは必須ですが、画像認識ツールのインストールを行わない場合は多分環境未構築として判定されるはずです。
詳しい方法については、以下の記事を確認してください。
使い方
指示を出して行う動作の説明です。
【掲示板チャンネル】掲示板を追加する
新しい掲示板を監視対象にするには、掲示板カテゴリーの掲示板チャンネルにて、addコマンドを使います。
このコマンドを使用すると、自動的に銘柄用のチャンネルが作成されます。
構文は次の通りです。
"add 銘柄名 YahooファイナンスRSS URL"
RSSに関しては初回の記事をご確認ください。
![](https://assets.st-note.com/img/1717919751261-11p3vCAGYN.png?width=800)
最近ニュースになって、底値を狙いで監視を始めましたw
【掲示板チャンネル】掲示板を削除する
監視対象から外すには"del"コマンドを使います。
"del 銘柄名"
![](https://assets.st-note.com/img/1717919923691-Fdj9pzgFHU.png)
【掲示板チャンネル】全ての掲示板を分析する
この後紹介しますが、掲示板を個別に分析することができます。
個別の分析を全ての掲示板において行う場合は、ここで一括で指示できます。AIの課金や制限などを考慮し、計画的に使ってください。
構文 : "allai"
(最近使ってないので画像はありません)
【掲示板チャンネル】活発な掲示板だけを分析
この機能は後から追加された機能でフリーコマンド認識機能です。
具体的なコマンド構文が決まっておらず、AIが自動でコマンドを判別します。
![](https://assets.st-note.com/img/1717920219689-DkhuGHfeI2.png)
![](https://assets.st-note.com/img/1717920280282-m3I1gcvSzs.png)
この応答の後、各掲示板チャンネルで活発な掲示板のみ分析が行われます。
この機能は、この後紹介する自動分析による分析と同じです。
【個別銘柄チャンネル】分析を行う
個別の銘柄、チャンネルにて投稿から分析を行うことができます。
この機能もフリーコマンド機能です。
このコマンドでは次のパラメータが変更可能です。
データ数
分析に使用するコメントの数です。有用度
コメントの有用度でフィルターをかけます。追加の指示
フリーフォーマットで指示を追加できます。
これらのパラメーターを正しくAIが認識するかは入力次第です。
例えば以下のような入力の場合、正しく認識されています。
私が有用な情報と言っているので、レベルが1になっています。
200件と言っているので、カウントが200になっています。
2行目で別の指示を言っているので、アペンディクスに追加されています。
![](https://assets.st-note.com/img/1717920686930-4bRWdP6Iu1.png)
この場合の応答は以下のようになります。
投稿のスパンが長いので、かなりの数の投稿を使ったか、あるいは絞り込んだかということが分かります。
また、一番最後に別途指示したことを実行してくれているので、追加指示もきちんと通っていることが分かります。
![](https://assets.st-note.com/img/1717920636468-3ir90W7Djz.png?width=800)
【個別銘柄チャンネル】AIに質問
出力された応答に対して返信を行うことで、チャットを開始することができます。ただし、チャットの開始はAIの応答であり、入力されたコメントなどは考慮されないので、その点は注意です。
例えば、株式分割についてまとめてもらいましたが、一般的にはどのような影響があるのか質問する例です。
返信に返信を重ねることで、前回までの履歴を考慮してチャットを行い続けることができます。
![](https://assets.st-note.com/img/1717921016481-Y86PsWDFwZ.png?width=800)
【個別銘柄チャンネル】コメントの取得
掲示板の投稿情報を取得します。
こちらもフリーコマンド認識機能です。
注意すべき点はDiscordの文字数制限が2000文字なので、それを超えないように取得することです。
![](https://assets.st-note.com/img/1717922042503-isBika1Dfp.png?width=800)
【systemチャンネル】BOTの終了/再起動
システムチャンネルからはbotの終了を指示することができます。
![](https://assets.st-note.com/img/1717921167418-ClZq0I9tcd.png)
配布している起動スクリプトから起動している場合、再起動を行うことができます。これはスクリプトが無限ループになっていて、特定の終了コードで終わらない限り再起動するようになっているからです。
![](https://assets.st-note.com/img/1717921172864-nfG6bgquoA.png)
【画像認識チャンネル】ニュース情報を追加する
銘柄に関するニュースを入力する機能です。
主にスマホアプリから情報を取り込むために開発されました。
画像認識が使用できる環境の場合、自動的に画像認識チャンネルが作成されます。
後は作成されたチャンネルにニュースを含むスクリーンショットをアップロードするだけです。
正しく認識できた場合データベースに蓄積され、手動で分析の指示をするか、allaiでの分析の場合考慮されます。
自動的に行われる動作の説明です。
【自動】掲示板監視
追加された掲示板を自動的に監視し続けます。
過去10件のコメントの投稿時間から約10件投稿されるであろう間隔が計算され更新が行われます。
更新の最長間隔は時間帯によっても変化します。東証開場時間は30分ですが、最長の土日は3時間です。
サーバーに負荷をかけないよう、この辺りのソースコードは編集しないでください。
更新状況はログチャンネルで確認できます。
![](https://assets.st-note.com/img/1717921715502-ltCXso7quZ.png)
【自動】コメント有用度分析
掲示板監視機能で取得したコメントの有用度のランク付けをします。
分類は不明、有用、普通、不要、失敗です。
不明から順にレベル0からレベル3です。失敗は-1です。
何も指示せず分析する場合は不要以外が使用されます。
コメントがどのように分類されているかは、取得コマンドを使って確認するか、データベースを直接見ます。
![](https://assets.st-note.com/img/1717922042503-isBika1Dfp.png?width=800)
【自動】活発な掲示板検出
投稿数と投稿間隔を分析し、現在活発な掲示板を抽出します。
その間に1日50件以上のコメントがあり、かつ活発であると判断されたものは、随時簡易分析に回されます。
稼働しているのは日中で、1時間おきに回っています。稼働時間は各自調整可能です。
例えば、以下のような出力が得られます。
この場合、以下の5件の個別銘柄が自動で分析されます。
![](https://assets.st-note.com/img/1717922215161-UZZHGtDQXY.png)
自動分析はかなりコンパクトにまとまるように指示されています。
基本的に"今"を分析するための機能なので、株価の情報も拾うのが特徴です(それが信用できるかは別)。
![](https://assets.st-note.com/img/1717922220291-T4pybp4jfV.png)
データの配布
最後にデータの配布を行います。
中身の詳細については、上で紹介している配布データの内容をご確認ください。
注意点
事前に利用規約に同意の上購入してください。
本作はダブルクリックで起動するようなものではありません。
記事の内容を見て理解できるか、あるいは挑戦してみようと思える方向けのものとなります。起動できないからと言ってサポートや返金などはありません。
ただし、配布用にいくらかのコードを削っているため、動作確認ができているコードとは若干違うものとなっていますので、もしかしたらエラーで落ちてしまう可能性があります。初期の購入者のみエラーメッセージをいただければ対応します。
配布URL
ここから先は
情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。