はじめに
SlackとDatabricksを連携する際に、連携するためのPythonアプリを別で動作させる必要があり、Databricks上で動かしたいなーと思っていたところ、こちらの記事が出てきました。
Databricksクラスターのドライバーで動作するLLMアプリへのアクセス (@taka_yayoi)
他のアプリも同じ要領で動作させられるのでは? と思いこちらのSlack連携アプリを動作させてみました。
Databricksのデータに SQLDatabaseChainを使ってSlackからアクセスしてみた
これで、Databricksだけで環境を揃えることが出来るようになりました。
ノートブック
以下をDatabricks上にインポートしてください。
利用方法
-
Slack Appを作成します。
こちらの記事を参考に、Slack Appを作成し、Bot Tokenと App Tokenを取得してください。 -
OpenAI APIのSecret Keyを取得します。
-
上記のキーを Databricks Secretに登録します。
-
対象とするデータベースやテーブルをノートブック内に指定します。(ノートブック内のテーブルはサンプルとしてデフォルトで用意されております)
-
ノートブックを全て実行
以上です。
コードの紹介
今回は 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")
最後に
本番環境などの場合は、別でアプリサーバを用意した方がいいかと思いますが、デモや開発用途としては利用出来ると思います。是非お試しください。