0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SlackとDatabricksの連携に便利なPythonアプリをDatabricksクラスター上で動かす方法

Last updated at Posted at 2023-06-28

はじめに

SlackとDatabricksを連携する際に、連携するためのPythonアプリを別で動作させる必要があり、Databricks上で動かしたいなーと思っていたところ、こちらの記事が出てきました。
Databricksクラスターのドライバーで動作するLLMアプリへのアクセス (@taka_yayoi)

他のアプリも同じ要領で動作させられるのでは? と思いこちらのSlack連携アプリを動作させてみました。
Databricksのデータに SQLDatabaseChainを使ってSlackからアクセスしてみた

これで、Databricksだけで環境を揃えることが出来るようになりました。

image.png

ノートブック

以下をDatabricks上にインポートしてください。

利用方法

  1. Slack Appを作成します。
    こちらの記事を参考に、Slack Appを作成し、Bot Tokenと App Tokenを取得してください。  

  2. OpenAI APIのSecret Keyを取得します。

  3. 上記のキーを Databricks Secretに登録します。

  4. 対象とするデータベースやテーブルをノートブック内に指定します。(ノートブック内のテーブルはサンプルとしてデフォルトで用意されております)

  5. ノートブックを全て実行

以上です。

コードの紹介

今回は Flask AppとSlack Voltを組み合わせて動作させました。ポートに対して外部からアクセス出来るようにする必要があります。コードの全体はノートブックをご覧ください。

from flask import Flask, request
 
flask_app = Flask("dbchain")
handler = SocketModeHandler(app, SLACK_APP_TOKEN)
 
@flask_app.route('/', methods=['POST'])
def slack_events():
  return handler.start(request)
 
if __name__ == '__main__':
    handler.start()
    flask_app.run(host="0.0.0.0", port="7777")

最後に

本番環境などの場合は、別でアプリサーバを用意した方がいいかと思いますが、デモや開発用途としては利用出来ると思います。是非お試しください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?