0
0

More than 3 years have passed since last update.

#1 PythonなチャットボットとJupyterLabの理解 |リーガテックの神を目指す駆け出しITコンサルがインフラエンジニアに転身するまで

Last updated at Posted at 2021-03-08

背景

……そこで、せっかくですから、私のルーツであるインフラ系に立ち返り、法律に詳しいインフラエンジニアになるべく(なんだそれは)、独自に技能の研鑽を始めることにしました。
そして、夜は司法書士試験の勉強です。もうパーフェクトですよね。私はリーガテックの神になる、これはもう、間違いがございません。

それをQiitaに投稿する目的は、

  • 同じような習熟度の仲間が見れば役に立つ
  • アウトプットをした方が定着する

というだけです。頑張ってまいります!

PJ概要

諸元 内容
言語 python
インフラ heroku
目的 slack連繋のチャットボット

現在、私が簡単に設計したものを同期が作ってくれたアプリがあり、内容としては上記の表のような感じです。

しかしながら、heroku環境では500時間しか無料では動かせないようであり、止まってしまいました。そこで、AWSの研鑽も兼ねて、これをAWSに移行してみよう!というチャレンジをします。

JupyterLabの便利なショートカット

アプリ側の実装者・同期さまの環境はJupyterLab(Anacondaに附属しているのですね。初めて知りました)。まずはこれを理解せねばなりません。

コマンド 結果
Shift+Etr セル内のコードを実行して下に追加
Ctrl+Etr セル内のコードを実行
D^2 セルを削除
A 上にセルを追加
B 下にセルを追加
Ctr+/ コメントアウト
途中まで書いてTab オートコンプリートによる補完

他にもここを叩くと色々出てくるようです。すごい。

スクリーンショット_2021-03-08_12_38_12.png

その他気になった点はこんな感じです。
(分かりやすいReadme.mdに助かる。。。)

  • どうも、terminalみたいなイメージで使って良いようmasu.Chromeから開くとあたかもクラウドサービスのような感じになりますが、実際にはローカルホストで動いてます。
  • .ipynbはあくまでもノートブック。実行ファイル部分を出力するには、メニューからexport as executable。すると、実行できない部分はコメントアウトされた状態で、`.pyが出力されるよ。
  • Variable Inspectorというextensionはおすすめ。インストールしたら右クリックで使えるよ。

わからない!

JLabを見渡しつつ、本体となるpythonのコードも読み込みます。

いくつか、見覚えのない点が、、

import Botって?

from slackbot.bot import Bot, respond_to
という記載が。importは分かるのですが、Botって何でしょう。
respond_toも聞いたことが。。ない。。

from slackbot.bot import Bot
これが根拠となっていそう。ここで、fromimportの区別ができていない自分に気づく……
……

Pythonでライブラリやモジュールを読み込む際には「import」および「from」を使いますが、この2つは使い方がややこしく、違いをあまり分からずに使っている方もいると思います。

ですよね〜!(下記参考文献より)

……ということで、モジュールをバイパスしてクラスとか関数を直接importする指令だったみたい。
やったぜ。

defってなんだ!?

pythonはちょっとだけやったことがあったのですが……defという表現を使った覚えがありません。
鍛錬が足りませんね。これも調べます。

色々みましたがこれが格別に分かりやすいです。
いままで、classは使ったことがありましたがdefは使っていませんでした。VB.netで世界観が止まっていたのだと実感します。
classより細かい単位化ができるということですね!

この辺でpythonコードを読解

疑問点はこれで解消したので、ここで同期さまが書いてくれたコードを読解!しようと思います。

スクリーンショット_2021-03-08_21_18_09.jpg
スクリーンショット_2021-03-08_21_37_03.jpg
スクリーンショット_2021-03-08_21_50_14.jpg

……なんか理解できた気がします!

気になった点

スクリーンショット_2021-03-08_21_56_16.jpg

Spreadsheetからデータを取ってくるコードの冗長性が高そうです。
効率化できないか次回以降検討してみます!

次回予告

次は、①冗長性問題の解決に取り組み、さらに、②現在の実行環境であるherokuの理解を目指します!

応用的だけどすごい勉強になる学習内容

@respond_toって何?という、知らなくても良いけど知ったらプロになれる疑問に答えてくれます。

参考文献

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