【Bot】Wikipediaを調べてくれるようにする
ほろよいてっく向け。
ネタバレが過ぎたので拡張しておく。
今回使う技術
では開始
いつもの通りインストール
pip3 install wikipedia
responce.pyの修正
下記を追加
import wikipedia …略… @respond_to('(.*)について知りたい件') def searchWiki(message, something): response_string = '' wikipedia.set_lang('ja') try: wiki_page = wikipedia.page(something) message.reply('なるほど、{0}についてですね。'.format(something)) message.reply(wiki_page.url) except wikipedia.exceptions.DisambiguationError as e: message.reply('エラー、wikiの結果が上手く返ってきませんでした。')
完成!
話しかけてみる
まとめ
テストしていた「ガンダムについて教えて」という問い合わせは曖昧さ回避のページに飛んでしまっていたため、いきなり例外処理を実施する必要があったのだが通常のレスポンスが来てるのかと勘違いしてしばらくハマってしまった。
A3RTの時もそうだったがガンダムは意外とテストしやすいワードなのかもしれないw
おわり
検証端末を管理した時の小ネタ
この投稿はソフトウェアテストの小ネタ Advent Calendar 2017 - Qiitaの13日目の記事です。
はじめに
スマホなどの検証端末ってたくさんありすぎていざ操作する時に操作性が違ったり、思った操作ができなくて困る事ありますよね。
今回はそんな端末管理の時に少しでも便利になるように取り組んだ小ネタみたいなのをQ&Aで紹介したいと思います。
記号が打てない問題
Q.端末のキーボードが揃ってなくて記号などを入力するときの操作が困ってます…
A.端末導入時のインストールマニュアルを用意しましょう!
端末導入時に開発チームで共通の入力アプリを用意しておくことが有効です。
Android系とiOS系の2種類ぐらいだったらなんとか覚えられます。
その他下記も決まってると便利です
似たような端末多すぎ問題 & 起動するまでOSバージョンわからない問題
Q.OSのバージョン依存のテストをするとき、目当ての端末を探すのに困っています…
A.ひと目で分かるような工夫をしましょう!
管理番号のシールが貼られたりすることはよくあると思いますが、思い切ってテプラで色々貼っちゃうのがおすすめです。
例
- 端末名(わかりやすい名前とか)
- バージョン情報
- 特別なアプリを入れてる端末
- 特殊な設定をしている端末
端末コンシェルジュ問題
Q.要望に合う端末を教えてほしいとお願いされるよ!
A.みんなが見れる場所に端末一覧を用意しましょう!
「横幅が小さい時に体裁が崩れないことを確認したい! 」
「このバージョン以前でバグが起きてるらしいのだけど…」
なるべく本人が欲しい端末をみつけられるように端末一覧を用意しましょう。
同時に選定する際のチェックポイントになりそうな項目(バージョン、サイズなど)も同時に見れると便利かと思います。
これと同時に新しい端末を何を買うか聞かれる場合もあるかと思いますので、ブラウザシェアと一覧を比較したりして今足りない端末をすぐに伝えられると便利かと思います。
端末が行方不明になる問題
Q.あれっ!あの端末どこに言ったっけ…。
A.事前に共通アカウントの設定をしておけば探しやすくなります!
端末の導入時に共通のアカウントを設定しておけば、端末がなくなったときに探すことができます。(電源が入っているのが前提ですが…)
Androidoの場合
Android 搭載端末を紛失したときに見つけられるように準備しておく - Google アカウント ヘルプ
iOSの場合
すべてのデバイスで「iPhone を探す」を設定する - Apple サポート
遠隔で画面ロックができてメッセージを出せる他、遠隔で音を出すことも可能です。(オフィスでやると目立ちますが…。)
ブックマークも共有できるのでアカウントを統一しておくと便利です。
まとめ
いかがでしたでしょうか。
その他、会議室管理システムを端末管理システムに作り変えたりとかしたのですがこれは意外と流行らず…だったり、
場所場所によって最適な方法はそれぞれあるとおもいますのでなにかの参考になればと思います。
おわり
riririusei99
急・SlackBotを作ってみたまとめ
この記事は3部構成になっています。
序・SlackBotを作ります - riririusei99’s blog
破・SlackBotを会話APIと連携させる - riririusei99’s blog
急・SlackBotを作ってみたまとめ - riririusei99’s blog←今ココ
はじめに
この投稿はチームスピリット Advent Calendar 2017 - Adventarの10日目の記事になります。
adventar.org
ほろよいてっく向けのネタのために書く(3日目)
ついにこのシリーズも大団円を迎えます!!
使った技術(再掲)
SlackBot
github.com
A3RT (TalkAPI)
a3rt.recruit-tech.co.jp
pya3rt
github.com
jaconv
github.com
やってみたこと
ざっくりとしたアーキテクチャ & コンセプト
- シンプルな実装で特定のワードの時はBot機能が実行され、それ以外の時は会話機能に切り替わること
- 本来複雑である会話部分のロジックをリプレイス可能な仕組みにできそうだったので有効活用したかった
- 会話APIを使ったが「Botと話してる感を前面に出すこと」で親しみやすさを意識した
まとめ
Slackbotを特に複雑な操作をせずにA3RT(Neural Network)に連携することができた。
A3RT自身の会話機能の向上や、その他優秀な会話APIが生まれてくれば会話機能は切り替えが疎結合なのでさらに高機能になると思う。
これは重要なことで、AIや機械学習を一から学習して自前でAIを用意することなく、自前のBot開発の部分に注力できるからだ。
今後はAIや機械学習を使ったテクノロジーの技術者が増えることも重要だけど、そういった技術者が用意してくれた技術を使って日々のライフハックや面白いサービスを用意していくことも大事なことだと思う。
…なのでこれから出てくる技術が体型的に理解して、どんな部分に役にたてるのか考えられる人も今後需要がありそう。
AIや機械学習が有効活用される時代がもうきてるんだなぁと思った。
しばらくは全てを仕事を任せるのではなくて、協業するような働き方をしていくのかなぁとか予想している。
※イメージ画像
…と言う「俺たちの旅はここからだ!!」的なエモい話でまとめたいと思います。
3日連続で記事を書くのは大変だったけど、個人的に面白い3日間でした。
まさかこんなにたくさんの人に見てもらうシリーズになるとは思いませんでした。
おわり
riririusei99
破・SlackBotを会話APIと連携させる
この記事は3部構成になっています。
序・SlackBotを作ります - riririusei99’s blog
破・SlackBotを会話APIと連携させる - riririusei99’s blog←今ココ
急・SlackBotを作ってみたまとめ - riririusei99’s blog
はじめに
この投稿はチームスピリット Advent Calendar 2017 - Adventarの9日目の記事になります。
adventar.org
ほろよいてっく向けのネタのためにやる(2日目)。
前回作成したSlackBotにオリジナル感を出していきます。
今回取り扱うもの
A3RT (TalkAPI)
a3rt.recruit-tech.co.jp
Talk APIはChatbotを作成するためのAPIです。Recurrent Neural Network(LSTM)を用いた入力文からの応答文生成による日常会話応答機能を提供します。
ふむふむ。とりあえず流行りには乗っかってみる。
pya3rt
github.com
pythonでA3RTに接続するため用
jaconv
github.com
ロボ感を出すために探してきました
今回やりたいこと
それでは開始
A3rt API Tokenの取得
下記 URLからTokenの取得 https://a3rt.recruit-tech.co.jp/product/talkAPI/
インストール
# 必要なものインストール sudo pip3 install pya3rt jaconv
DEFAULT_REPLYの削除
今回はDEFAULT_REPLYに特定の動作を追加するため、slackbot_settings.pyを修正する。
slackbot_settings.py
# SlackBot API Token API_TOKEN = "<your-api-token>" # Defalut Replyはココ <<コレもついでに削除 DEFAULT_REPLY = "Sorry but I didn't understand you" <<コレを削除 # Plugin Directory PLUGINS = ['plugins']
Default Reply に会話APIと連携する
response.py
from slackbot.bot import respond_to from slackbot.bot import default_reply import pya3rt import jaconv # ココにBotとしての機能を載せる @respond_to('ジーク') def zeon(message): message.reply('ジオン!!') # それ以外は会話機能になる @default_reply() def talkA3rt(message): apikey = '<your-A3RT-api-token>' client = pya3rt.TalkClient(apikey) api_response = client.talk(message.body['text']) # レスポンスがokの時返事を返す if api_response['message'] == 'ok': reply_message = api_response['results'][0]['reply'] message.reply(jaconv.hira2kata(reply_message) + '…ロボ') # 普通の返事 # message.reply(reply_message) # APIエラーの時はエラーとAPIのメッセージを返す else: message.reply('エラー、ウマク返事ガデキマセン [ERROR:' + api_response['message'] + ']')
会話してみる
- 組み込んだBotの返事
- TalkAPIからの会話機能の返事
- TalkAPIから通常以外のレスポンスが来た時の返事
あからさまなレトロ感のあるBotになりましたね!
まとめ
今回は最近流行っているスマホゲームから着想を得て、語尾に特定の文字をつける&出力をカタカナにしてロボ感を出してみました。
疲れた時、誰かとお喋りしたくなった時に使いたいです。
※Typoした時はAPIにアクセスしに行ってしまうのでBot機能を使う時は注意しましょう。
序・SlackBotを作ります
この記事は3部構成になっています。
序・SlackBotを作ります - riririusei99’s blog←今ココ
破・SlackBotを会話APIと連携させる - riririusei99’s blog
急・SlackBotを作ってみたまとめ - riririusei99’s blog
はじめに
この投稿はチームスピリット Advent Calendar 2017 - Adventarの8日目の記事になります。 adventar.org
ほろ酔いてっく向けのネタのためにやる。
Slackってフロントエンドだよね。ブラウザから使うし間違いない!
CTFでもちょこちょこ使うPythonの勉強がてらPython3で挑戦します。
今回使うもの
SlackBot
github.com
それでは開始
Python3のインストール
# brewでinstall brew install python3 # 確認 python3 -V
SlackBotのインストール
# pipのアップデート pip3 install --upgrade pip # SlackBotを入れる sudo pip3 install slackbot
Slack側のBotアカウントの作成
ここでBotアカウントの作成する
https://my.slack.com/services/new/bot
Bot側でSlackBotの作成
基本的にはREADMEを読み進めていく感じ
はじめにslackbot_settings.py
とrun.py
を作る
# ディレクトリ作って mkdir slackbot cd slackbot # ファイルを作る touch slcakbot_settings.py run.py mkdir plugins cd plugins touch __init__.py response.py
slackbot_settings.py にてメモったAPI Tokenを貼る
# SlackBot API Token API_TOKEN = "<your-api-token>" # Defalut Replyはココ DEFAULT_REPLY = "Sorry but I didn't understand you" # Plugin Directory PLUGINS = ['plugins']
response.py に返事をしてほしいことをいろいろ書く
from slackbot.bot import respond_to from slackbot.bot import listen_to import re @respond_to('hi', re.IGNORECASE) def hi(message): message.reply('I can understand hi or HI!') # 絵文字のリアクション message.react('+1') @respond_to('I love you') def love(message): message.reply('I love you too!') @listen_to('Can someone help me?') def help(message): # メンションをつけてくれます message.reply('Yes, I can!') # チャンネルに向けて発言してくれます message.send('I can help everybody!') # スレッドで返信 message.reply("Here's a threaded reply", in_thread=True)
Botの起動
python3 run.py
話しかけてみる
まとめ
意外とさっくりできた。
ブログにまとめるのが時間かかってるので、もう少し気楽に書こう。
もう少しいろいろカスタマイズして楽しいBot遊びをしたい。
次回はAPI連携とオリジナル感を出したい。
次回: 破・SlackBotを会話APIと連携させる - riririusei99’s blog
おわり
anovaを使ってローストビーフを作った話
こんにちは。
大学生の時はブログをやってたのですが、久々に覗いてみると4年で350件も書いていたと思うとすごいなぁと思いました。
当時はブログをキレイにしたいと思い、いろいろやってた経験が今のIT系に就職する動機になっているのだから人生よくわかりませんね。
本投稿はチームスピリット Advent Calendar 2017 - Adventar 第4日目の投稿になります。
今回のお題
会社の積極的な刷り込みブランディングの賜物によってAnovaを導入することになりましたのでそのレポートです。
Whats's Anova?
Anovaとはざっくりいうと鍋に入れた水温を制御することで低温調理法をお手軽にできる調理器具です。 なるほどなるほど、低温調理ね…以前どこかの漫画で聞いたことある気もするけど、「なるほどわからん」という感じでしたが…。
とある勉強会?で食べたサラダチキンが非常に美味しく、かつコスパも良い食事というのを知ってしまい…。
気づいたらAmazonでポチっていまいた。(前日徹夜だったから変なテンションだったのかなぁ…。)
Anovaを使ってみましょう(ローストビーフ)
Anovaが届きましたのでさっそく使ってみました。
レシピについては検索するといっぱい出てくるようなのでそちらを参考にしてみて下さい。
初回食べ比べということで2種類のブロック肉(1kg)を用意しました。
この肉たちに塩コショウを振って味付けします。
赤ワインと玉ねぎとにんにくをいれて3時間調理します。
3時間の間はAnovaが勝手に温度を調整してくれるので自由時間です。
低温調理が終わったタイミングで肉の表面を焦げ目が付く程度に加熱します。
切った直後のローストビーフです。
本来は冷やすんですが、早く食べたくてすぐに切って食べてしまいました。
それっぽく盛り付けたら完成です!
わさび醤油とかと一緒に食べると非常に美味しかったです。
まとめ
Anovaを買うことで以下の恩恵を受けられるようになりました
- 複雑な温度管理をAnovaがリモートでやってくれるようになった
- 寝ている間に調理するなど時間を有効活用できるようになった
- 味気ない食卓にアクセントが生まれた(コレが一番大事)
調理してみてのの注意点もまとめておきますね
低温調理するときの水を入れる鍋はなるべく大きいものにしましょう
→小さめの鍋だとすぐに温度はあがるのですが蒸発してしまって水を定期的に継ぎ足すAnovaの番をする羽目になります
コンセントのケーブルが短い
→キッチンの付近にコンセントがないと調理スペース以外でAnovaを起動するようになります
以上、Anovaの使用レポートでした。今回はこの辺で。
riririusei99