最近、全社規模のハッカソンを開催し、ストリーミングを使用して説得力のある必要な目的を暗殺するために互いに挑戦しました。ファイル ソース、Kafka、Memgraph、およびネット アプリケーション バックエンド。 今週は、チームメイトがどのように共同作業を行っているかを把握できる Slack ボットのようなものを取り上げます.
私たちのグループはハッカソンの 1 週間を費やして、Slack ファイルのストリーミングを利用してグラフ ユーティリティを作成しました。 コードに合わせて急上昇したい場合は、 GitHub リポジトリを試してください 。 Discord Neighborhood Chat!
データ提供
Slack ファイルで何かを実行したいということは分かっていました。 APIがすぐに使えるようになったことで、ボットもストレスなく遊べて、モデリングも比較的楽にできそうです
データ マネキン
ボットは、一定の距離にあるチャネルからファイルを完全に獲得できます。 ボットをチャネルに追加している間はいつでも、ボットが最後の X
を獲得します。 メッセージ (ボットの開始時にここで設定可能) を使用して、これらのメッセージを冷ややかなスタートとして使用します。
グラフ マネキンは簡単で、以下に図解されています:
すべてのユーザーは、グラフ内の特別なノードを表します. 顧客はチャネル内にメッセージを投稿します。 また、他のユーザーが投稿したメッセージに絵文字で反応します。
すべてのメッセージには一定量のフレーズが組み込まれています。 スタイリングの目的で、各ユーザーには、不規則な ID と名前は別として、アバターがあります。 グラフ内には、User
、 の 4 種類のノードがあります。 メッセージ
、
メモ と
Channel
,また、リアクション、投稿、通知依存、およびメッセージのエッジをデバイス化します。 この単純なグラフは、分析用のファイル マネキンを提供します。
完全なアプリ アーキテクチャ
Slack は、ユーティリティがイベントを介してメッセージを使用できるようにする API を提供します。 ローカルの Kafka クラスターはリージョンアップであり、プロデューサー (Slack-Kafka コネクター) はファイルを Kafka ブローカーに送信し、トリップを介して Memgraph によって有効な時間に消費されます。 次に、Memgraph はそのナレッジ グラフを有効な時間で更新し、ボット ハンドラーは、ユーザーが
からファイルをシークすると分析を消費します
この構造は、次の画像にも示されています:
ボットとの通信
ユーザーは、指示に従って Slack チャットでボットと通信します: /インパクトミー
ボットに表示されるチャネル全体について、あなたに関する情報を収集します。 ボットの返信には、メッセージに使用するフレーズと、すべてのチャネルで同僚の投稿に反応するために最もよく使用する感情表現が含まれます.
/Impact me in
であなたに関する情報を収集します。 ボットの返信には、メッセージに使用するフレーズと、選択したチャネル内の同僚の投稿に反応するために最もよく使用する感情表現が含まれます.
/自分と@ユーザーに影響を与える
あなたと @user の間の相互作用でファイルを収集します。 ボットの返信には、同僚がメッセージに追加したリアクションが含まれます。
/影響チャネルと反応
についての情報を集めるボットに表示されるすべてのチャネルでの反応。 ボットの返信には、あなたと同僚が使用する特定の反応に関する指標が含まれます。 これにより、ボットがフェーズにある最終チャネル全体で、誰が最も多く応答を利用し、誰が最も多く応答したかについての情報が得られる可能性があります.
/影響チャネル と反応
の反応情報を集める。 ボットの返信には、あなたと同僚が使用する特定の反応に関する指標が含まれます。 これにより、誰が最も多く応答を利用し、誰が最も多く受信したかについての情報が得られる可能性があります
メッセージを強化するためのヒントに関するファイルを収集します。 ボットの返信には、メッセージを強化するためにメッセージに追加する必要があるフレーズに関する提案が含まれており、ヒント内で追加の反応を間違いなくコンパイルします.
研究所で私たちは を脆弱にしました) )Memgraph Lab
ファイルを視覚化し、スキーマをよりよく理解します。 私たちが面白かったのは、グラフがどのようにしてすぐにリンクされ、強くリンクされた部分になり、これらの強いリンクされた部分をリンクしたこれらの方法でした.
グラフの貼り方の探索もできますMemgraph の組み込み NetworkX アルゴリズムとデマンド モジュールの使用。 強くリンクされた部分を検索するために、NetworkX アルゴリズム strongly_connected_components
を脆弱化します。 この アルゴリズム は nxalg 需要モジュール Memgraph MAGE。 下の画像は、私たちの膨大なグラフから、強く関連する 1 つの成分を示しています。
また、さまざまな部分のアルゴリズム (弱くリンクされた部分) を破棄するために、のと発音することもあります。 弱くリンクされた部分は、カスタム利用のフェーズです デマンド モジュール Memgraph Mage の内部
結論
Slack Influencer は、ストリームと組み合わせたファイル グラフのシンプルさと容量を指摘するために、Memgraph の内部ハッカソン向けに開発されました。 特に Memgraph で内部的に実行したときは、非常にストレスのない実験になりました。 GitHub リポジトリを試して
、私たちの で疑わしいものを取得できるようにしてくださいDiscord Neighborhood Chat! 𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺