仕事上でわかったことのうち顧客に関わる情報が無い物、一般公開して差し障りのなさそうな事をたまーに投稿しています。 ちなみに、記事上に載せた私が書いたコードは、用途問わず再利用いただいてかまいませんが、保障は一切いたしませんので、あしからず。 ですます調の記事とである調の記事が混ざりますが..こちらも、あしからず。
Translate
2018年3月28日水曜日
2018年3月15日木曜日
Google Home アプリの実機テストは複数のアプリ同時にできない
対話システムの流れで
最近はいわゆるスマートスピーカ
Google Homeやら
Alexaやらのアプリケーション作成方法を調べている。
Alexaアプリ(スキルというらしいが..)の開発は
とても入りやすかった。
Amazon社がクラスメソッド社におそらくお金を出して作らせた
チュートリアルが無料公開されている。
Alexaスキル開発トレーニング(全6回)
https://developer.amazon.com/ja/alexa-skills-kit/training/building-a-skill
ぜんぶきちんと日本語だけど..一部UIがかわっているところがあり
そのあたりと..アクセス制御のあたりをうまいことやらないと動かない
という落とし穴はあるもののカン・経験・度胸のKKDエンジニアであれば
突破可能だ。
かわってGoogle、
きちんとガイドにはなっているものの..
全部の開発オプションが日本語対応されていないこともあって
一部しか日本語になっていない..
とはいえGetStartがあるのでこれに従って作ることは可能だ。
Amazon/Alexaスキルと比べるとGoogleのほうが複雑だが
なんとかSilly Name Makerを日本語で動かすことができた。
Amazonのトラップよりこっちは
UTF-8でindex.jsをつくらないとだめなことと
firebase.jsonを手書きで修正しないとfirwbase deployできないこと
くらいの経度な落とし穴だ。
なんとなくなれたので、もう1つプロジェクトを起こして
アプリを作り、さて実機テストしてやろうとしたのだけど..
あれ?片方しかうごかんなあ..
と、おもってAction Simulatorをあげたら..
..ん?一瞬 enableうんたらというカードがちょろっと出たなあ..
..もしやと思って、もう一方のプロジェクトも
Action Simulatorをあけたら..
同じ様に、右上に一瞬カードが表示された。
..どうも1つしかテストを有向にできないらしい..
無効状態がこれで..
有効がこんなかんじ..
※2018/3/16追記
上記画面でEnableにして画面を閉じてすぐに実機テストしたら動いていたのに
翌朝やってみたら動かなくなっていた..
で、Actions on Google consoleをひらいたら..Enableにします的メッセージが..
どうもEnableにしても、しばらくしたら自動でDisableになってしまうのか..
p.s.
Googleがgactions-CLI を翻訳したら
「怒りのCLI」
になるのか..
ランボーが、使ってそうなCLIだ...
2018年3月2日金曜日
TensorFlow 1.6.0でimportすらできない
本日正式版リリースになったTensorFlow1.6.0。
TeosnrFlow1.6.0をインストールして
jupyter notebook から
しただけで
が出る問題がまだ解けない。
(コマンドラインだと illegal エラー(Core dumped)とかでる)
どうも
にある既知バグ(というか仕様ですと言い張られてる)
にあたるのだとおもうが..
のクワッドコアですら「古いCPU」なのか..
を実行してみたが..なにも表示されなかったし..
..しっかし、RCが出てずっと悩んでるけど
Twitterで騒いでいる日本人は全く見ない..
..日本人って、だれも本気でTesnsorFlow やってないのかね..
ps.
ちなみにAnacondaでpip installできるのは執筆時点で1.5.0まで;-p
..何やねん..
ps2.
FloydHubもなかなか1.6対応してくれんなあ..ともやもやしている
昨今、こんなツィートがあった
OracleのIaaSだとうごきそうだ..
※2018/03/16 追記
TensorFlow1.7.0-rc0 がでたのでだめもとでやってみたら..
ダメでした..
そりゃそうね..
AVXじゃだめだったんだよなあ.. AVX2 対応マシンかあ..
TeosnrFlow1.6.0をインストールして
jupyter notebook から
import tensorflow as tf
しただけで
The kernel appears to have died. It will restart automatically.
(カーネルが停止したようです。 自動的に再起動します。)
が出る問題がまだ解けない。
(コマンドラインだと illegal エラー(Core dumped)とかでる)
どうも
1.6.0リリースノート
https://github.com/tensorflow/tensorflow/releases/tag/v1.6.0
にある既知バグ(というか仕様ですと言い張られてる)
Prebuilt binaries will use AVX instructions. This may break TF on older CPUs.
(事前ビルドされたバイナリはAVX命令を使用します。 古いCPUでTFが破損する可能性があります。)
にあたるのだとおもうが..
processor : 7
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x3
cpu MHz : 1200.000
cache size : 8192 KB
のクワッドコアですら「古いCPU」なのか..
grep avx /proc/cpuinfo
grep avx2 /proc/cpuinfo
を実行してみたが..なにも表示されなかったし..
..しっかし、RCが出てずっと悩んでるけど
Twitterで騒いでいる日本人は全く見ない..
..日本人って、だれも本気でTesnsorFlow やってないのかね..
ps.
ちなみにAnacondaでpip installできるのは執筆時点で1.5.0まで;-p
..何やねん..
ps2.
FloydHubもなかなか1.6対応してくれんなあ..ともやもやしている
昨今、こんなツィートがあった
oraclemagazine : RT OracleIaaS: .TensorFlow 1.6 released with CUDA 9, cuDNN 7 and AVX support. Try it with GPU shapes available with Oracle Cloud #IaaS https://t.co/kmi4iglYVG pic.twitter.com/uXLDyyhU7h (via Twitter https://t.co/Iw8CbZ5u5k) #Oracle pic.twitter.com/mti0c0wP3p— Oracle Databases (@Oracle_Tutorial) 2018年3月10日
OracleのIaaSだとうごきそうだ..
※2018/03/16 追記
TensorFlow1.7.0-rc0 がでたのでだめもとでやってみたら..
ダメでした..
そりゃそうね..
AVXじゃだめだったんだよなあ.. AVX2 対応マシンかあ..
Google Home を買ったので Actions on Google のマニュアルを読んでみた
Google Home を買った。
厳密には mini なのだけど、とりあえず買った。
朝希少した時くらいので「OK Google、今何時?」と聞くときと、
朝家を出る前に「OK Google 今日、傘要る?」と聞く以外
特に使っていないのだけど..
とはいえ、どう動いているか、
アプリとか作って売れるのかがきになり
Actions on Google のガイドを読んだ
URLは、ここ: https://developers.google.com/actions/
いつものように翻訳文を載せていないのは
1/7 ほど翻訳されていて、残りは英語だけど
Chromeの翻訳ボタンで十分ことたりるからだ。
で、基本構成は
以下、想像を入れて書いているので
鵜呑みにしないでください。
Google Home:
初期設定にはスマホアプリが必要で
スマホアプリを動かすにはGoogleアカウントログインしないとだめ。
スマホとBluetoothで初期設定してGoogleアカウントとWiFiAPを登録したら
Google Homeはインターネット上のGoogleアシスタントサーバの様なクラウドサービスと
基本やり取りしながら応答音声を返す。
OSや構造はこうかいされていないようなので、
OSの構造を理解したいのなら類似OSのAmbient OSをしらべるのもいい。
Googleアシスタント:
サーバのようなものが有り、ユーザ発話によって登録されているActionPackageのなかから
最適なActionを選んで起動しその後はActionとユーザにやり取りを任せる。
ActionPackageはJSON型式で記述可能(Action SDK使用時)で、
Dialoflow開発の場合のActionプロジェクトで作成しているのはおそらくこのJSON構成なのだとおもう。
ActionPackage:
これを読むとDialogflowで定義していた内容の関連がよくわかる。
・パッケージにはManifestがMAX1つ存在、必要なサーフェス情報等
・パッケージ内にAction群とEntity群、ConversationFulfillmentを定義
・Actionは、MAX1つまでのIntentとMax1つまでのFulfillmentで構成
・Intentは、Max1つまでのトリガとParameter群で構成
・Entityは、名前と類似単語群で構成
Fullfillmentを名前でcall しているのは単にAbstractFactoryパターンなわけではなく
ConversationActionを含むFulfillmentがありその本体が
Firebaseではない場合はURL指定できるようにしている。
ここがスマートホームへの拡張のミソになっている。
Fulfillment:
特定のIntentで必要なEntity群情報をユーザの発話から読み切ったら呼び出される
アプリケーション実体。
DBへアクセスしてもいいし、NoSQLであってもいい、MQTTへなげてもいいし、
XSSに違反しないのであればコグニティブだったりそうでなかったりするRESTAPIを読んでも良い。
リファレンスアプリがFirebaseなのは使ってほしいのはもちろんだけど、
XSS問題でGoogleサービス囲い込みや、このアプリ瞬間だけ起動なのだからEC2的な
常時インスタンス化しなくてもいいしょ?というGoogleアーキテクトの思いが感じられる。
..とかいってるけどAlexaスキルのドキュメントでも同じLambda推奨だけどね;-p
Fullfilmentはnodeパッケージ開発できるようにもなっており、
独自に開発もできるらしい。
それでサードパーティクラウドをよびだすこともできるし、
サードパーティクラウド自体がFulfillmentしてもいいようにできている。
で、ポイントはActionPackageのマニフェスト。
このアクションパッケージを実行するにはこんなサーフェス機能がいるよ。
というのがかける。
これは、HueなどのIoTデバイスを前提としたアクションパッケージを定義できるようにしているのだ。
しかもガイドの中をよむと、カメラ、食器洗い機、ドライヤ、ライト、冷蔵庫、スイッチ、サーモスタット、掃除機、洗浄機、コンセント(アウトレット)、シーン(?)..
..Google、白物家電屋の征服に入ったか!
Alexaを持つAmazon陣営も当然そうだろう。
あ!、Amazonは小売りという強力な立場を傘にきることができるし..
危険だ、日本の家電製造業..逃げてー!
厳密には mini なのだけど、とりあえず買った。
朝希少した時くらいので「OK Google、今何時?」と聞くときと、
朝家を出る前に「OK Google 今日、傘要る?」と聞く以外
特に使っていないのだけど..
とはいえ、どう動いているか、
アプリとか作って売れるのかがきになり
Actions on Google のガイドを読んだ
URLは、ここ: https://developers.google.com/actions/
いつものように翻訳文を載せていないのは
1/7 ほど翻訳されていて、残りは英語だけど
Chromeの翻訳ボタンで十分ことたりるからだ。
で、基本構成は
以下、想像を入れて書いているので
鵜呑みにしないでください。
Google Home:
初期設定にはスマホアプリが必要で
スマホアプリを動かすにはGoogleアカウントログインしないとだめ。
スマホとBluetoothで初期設定してGoogleアカウントとWiFiAPを登録したら
Google Homeはインターネット上のGoogleアシスタントサーバの様なクラウドサービスと
基本やり取りしながら応答音声を返す。
OSや構造はこうかいされていないようなので、
OSの構造を理解したいのなら類似OSのAmbient OSをしらべるのもいい。
Googleアシスタント:
サーバのようなものが有り、ユーザ発話によって登録されているActionPackageのなかから
最適なActionを選んで起動しその後はActionとユーザにやり取りを任せる。
ActionPackageはJSON型式で記述可能(Action SDK使用時)で、
Dialoflow開発の場合のActionプロジェクトで作成しているのはおそらくこのJSON構成なのだとおもう。
ActionPackage:
これを読むとDialogflowで定義していた内容の関連がよくわかる。
・パッケージにはManifestがMAX1つ存在、必要なサーフェス情報等
・パッケージ内にAction群とEntity群、ConversationFulfillmentを定義
・Actionは、MAX1つまでのIntentとMax1つまでのFulfillmentで構成
・Intentは、Max1つまでのトリガとParameter群で構成
・Entityは、名前と類似単語群で構成
Fullfillmentを名前でcall しているのは単にAbstractFactoryパターンなわけではなく
ConversationActionを含むFulfillmentがありその本体が
Firebaseではない場合はURL指定できるようにしている。
ここがスマートホームへの拡張のミソになっている。
Fulfillment:
特定のIntentで必要なEntity群情報をユーザの発話から読み切ったら呼び出される
アプリケーション実体。
DBへアクセスしてもいいし、NoSQLであってもいい、MQTTへなげてもいいし、
XSSに違反しないのであればコグニティブだったりそうでなかったりするRESTAPIを読んでも良い。
リファレンスアプリがFirebaseなのは使ってほしいのはもちろんだけど、
XSS問題でGoogleサービス囲い込みや、このアプリ瞬間だけ起動なのだからEC2的な
常時インスタンス化しなくてもいいしょ?というGoogleアーキテクトの思いが感じられる。
..とかいってるけどAlexaスキルのドキュメントでも同じLambda推奨だけどね;-p
Fullfilmentはnodeパッケージ開発できるようにもなっており、
独自に開発もできるらしい。
それでサードパーティクラウドをよびだすこともできるし、
サードパーティクラウド自体がFulfillmentしてもいいようにできている。
で、ポイントはActionPackageのマニフェスト。
このアクションパッケージを実行するにはこんなサーフェス機能がいるよ。
というのがかける。
これは、HueなどのIoTデバイスを前提としたアクションパッケージを定義できるようにしているのだ。
しかもガイドの中をよむと、カメラ、食器洗い機、ドライヤ、ライト、冷蔵庫、スイッチ、サーモスタット、掃除機、洗浄機、コンセント(アウトレット)、シーン(?)..
..Google、白物家電屋の征服に入ったか!
Alexaを持つAmazon陣営も当然そうだろう。
あ!、Amazonは小売りという強力な立場を傘にきることができるし..
危険だ、日本の家電製造業..逃げてー!
登録:
投稿 (Atom)
ClaudeをOpenAI O1のように思考させるDifyサンプルを試す
Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。 このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...