add sample code of dialogflow#317
Conversation
…isten /text and send to Dialogflow
@k-okada リンクをクリックしてみたところ, |
|
なんと,,,
個人を一人づつ足していくのはサステイナブルではないので,
gakusei-kyoin@ を追加してみました.これで見えたりしないのかな...
--
◉ Kei Okada
2021年12月27日(月) 22:03 Yoshiki Obinata ***@***.***>:
… [image: Screenshot from 2021-12-27 21-51-58]
<https://user-images.githubusercontent.com/27789460/147473471-9708417e-62a9-441f-bc3a-0bd5c4a972ea.png>
ですね
—
Reply to this email directly, view it on GitHub
<#317 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADYNXHYCDTGYV47QNOSUADUTBORPANCNFSM5K2H27GA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
FYI: |
|
@k-okada 同じエラーで見えてないです... Fetch1075のページに飛んでからプルダウンを開いてみましたが,そこにも岡田先生が作ったと思われるエージェントはありませんでした. |
|
73B2だと |
|
Principal ***@***.****** is of type "group". The principal should
appear as "group:gakusei-kyoin@***. See
https://cloud.google.com/iam/help/members/types for additional
documentation.
というエラーメッセージを見逃していました.これでどうかな.
2021年12月28日(火) 13:01 Yoshiki Obinata ***@***.***>:
… ***@***.***アカウントを共用利用することになっているので,そちらを追加するのはどうでしょうか
—
Reply to this email directly, view it on GitHub
<#317 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADYNXAWUKAPWVRDLGMPINLUTEY3ZANCNFSM5K2H27GA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
見えました,ありがとうございます.確認しましたが使い方はこれで大丈夫だと思います.@a-ichikura @MiyabiTane が使うときはもう少し馴れ馴れしいロボットになる?と思われるので,Intents の Default Fallback Intentの Responsesをフランクな表現にしたほうがいいかもしれない? |
なるほど,そうしておいてください. で,実際にどういう場面で使い物になるか,という話だけど,あらかじめ許容内容がかなり決められると,曖昧性を許容して理解してくれそうだけど,少し,自由度を持たそうとすると結構大変じゃないかなと思ったんだけど正しいだろうか? |
|
@k-okada デモ作成ありがとうございます。BNF記法勉強してDecorateのインテントを変更しようと思います。 初歩的質問で申し訳ないのですが、dialogflowの仕組みとして、文章が入力されると、まずどのインテントがふさわしいかを選び(帰り値:action、その確信度intent_score)、そのインテントに登録されたEntityに基づいた判定を行い、その結果を返しているという理解で正しかったでしょうか?
|
|
@k-okada いくつかの会話例を考えて、それをカバーするようなBNFを作ってみました。 また、dialogflowのDecorateインテントを更新しました。 |
|
いくつかの会話例を考えて
イイ感じです.で,僕の理解レベルではdialogflowの仕組みの理解はただしいとおもいます.
BNFの個々の単語にあたる部分がEntityになっていて,完成した文章にあたる部分をIntentにして,適当な文章をいれたらintetとentity
が返ってくるかと思います.
Decorate Intentの Action and parameters の Enter action name に
deccorate とかいれると,action に値が入ると思います.
が使いたいintentと私が使いたいintentは一緒にしてしまった方が
これはよくわかっていないけど,例えば日本語を表すBNFがあるとすると,これを一つのIntentにすればなんでも理解できそうな気がするけど,たぶんそういう事をするのではなくて,ロボット側で対応できる機能に対応するIntentを作っていくんじゃないかな,と思いました.
あと,Entityは例えば色,とかだったら,https://github.com/mizo0203/google-home-shiritori
みたいに既存の辞書をつかって作っている人もいるのかな,とおもいました.
…--
◉ Kei Okada
2021年12月29日(水) 17:00 Miyabi Tanemoto ***@***.***>:
@k-okada <https://github.com/k-okada> いくつかの会話例を考えて、それをカバーするようなBNFを作ってみました。
https://gist.github.com/MiyabiTane/e5af75f9d8b29afed7c1b553eb912f33
また、dialogflowのDecorateインテント
<https://dialogflow.cloud.google.com/?authuser=1#/agent/eternal-byte-236613/editIntent/6d3f1ed4-8056-41c4-8f6f-d642283a6b38/>
を更新しました。
—
Reply to this email directly, view it on GitHub
<#317 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADYNXFNTXQEQY3EFDPPLHLUTK5U5ANCNFSM5K2H27GA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
intentが機能にあたるという理解ができました、ありがとうございます。 こだわりポイントができたらそこに辞書を使うことも考えてみようと思います、ありがとうございます。 |
…ironment generates futures==3.3.0, but it is not released on python3 (the latest version is 3.1.0)
[dialogflow_task_executive] Fix merging #317
|
@MiyabiTane @k-okada 結論から言えばDialogFlowが思った以上に柔軟で、それでも問題なく扱えると思います。 例えば上げている例で を追加して、 のような遷移図を想定した時に、clear_object と clear_direction を requiredにして、例えばdirectionのpromptを以下のように設定して置くとできます。(<amb_direction> があれば1、なければ2が返ってきます) Attributeに関しては実際の場面だとオブジェクト依存になるから、そこは Session Entity を使えばできる気がします https://cloud.google.com/dialogflow/es/docs/entities-session |
|
@Affonso-Gui このツリーの絵はどうやって作ったのかな? で,僕の提案は,会話にまつわる記述方法を以下のようにクリアに定義できるようにしてからプログラム化することで,論文・発表の図・説明に役に立つし,その記述でできるのは何で,出来ないのは何だから,自分はこう変えました,という説明につながるかな,と思っています. で,雑談的なものだと,もう少しリアクティブ・ランダムな反応の記述が必要でbehaviortree とか使えないのかな?と思った次第です > @Affonso-Gui |
|
@k-okada このツリーは考えただけでlibreofficeで簡単に描いているだけですが、prologで実装しようとすればこの感じなんでしょうか。 object(baloon).
object(flag).
object(flowers).
color(red).
color(white).
color(black).
clear_direction(up).
clear_direction(down).
clear_direction(right).
clear_direction(left).
amb_direction(here).
amb_direction(there).
suggestion(maybe).
suggestion(perhaps).
clear_object(X,Y) :- color(X), object(Y).
ask_object('What object?').
ask_which('Which one?').
ask_place('Where do you want to move it?').
ask_specs('Could you be more specific?').
answer_ok('Sure!').
answer_agree('I agree!').
chat(X) :- ask_object(X).
chat(X,Y) :- object(Y), ask_which(X).
chat(X,Y,Z) :- clear_object(Y,Z), ask_place(X).
chat(X,Y,Z,A) :- clear_object(Y,Z), amb_direction(A), ask_specs(X).
chat(X,Y,Z,A) :- clear_object(Y,Z), clear_direction(A), answer_ok(X).
chat(X,Y,Z,A,B) :- clear_object(Y,Z), clear_direction(A), suggestion(B),
answer_agree(X).実行例: ?- chat(X).
X = 'What object?'.
?- chat(X,red,flag,here).
X = 'Could you be more specific?' .
?- chat(X,red,flag,right,maybe).
X = 'I agree!'. |
|
確かにdialogflowは根本的に目的思考なので、もっとhuman-likeなbotを作成するならdialogflowをtask executiveとしたもっと大きな構造を定義しても良いと思います。で、その時にチャットだけでなく、よりmulti-modalな情報、環境の変化や割り込みイベントを考慮したい場合にはbehavior tree のreactivityが役に立つと思います。ランダム/確率的手法はデフォでは behavior treeに含まれていないが、いくつかのextensionでそれがカバーされています (chap 4. in https://arxiv.org/pdf/1709.00084.pdf )。 例えばバッテリーが低ければチャージ、人を発見したら挨拶、話しかけられたら応答、暇だったら見回り、みたいなエージェントをこういう風に書けたりします。因みにこれはgroot(https://github.com/BehaviorTree/Groot )でかいていて、最近roseus対応もしています jsk-ros-pkg/jsk_roseus#681 ファイル: https://gist.github.com/Affonso-Gui/ca139af8ccafbce960e314ffa2f41cbd |
| if($ENV{ROS_DISTRO} STREQUAL "indigo") | ||
| message(WARNING "following requirements.txt syntax is not support on 14.04") | ||
| message(WARNING "google-api-core[grpc]==1.31.5 # via google-cloud-language") | ||
| find_package(catkin) | ||
| catkin_package() | ||
| return() | ||
| endif() |
There was a problem hiding this comment.
@k-okada Because of these lines, PR2 cannot run dialogflow_task_executive...
PR2 is still Indigo...
|
This PR drops Indigo dependencies.... |
|
@k-okada 作成したエージェントはこちらです↓ |
|
@MiyabiTane 対応するので僕にそのプロジェクトの権限をください |
|
あとdialogflowアカウントにも権限を付与してください |
|
@mqcmd196 |
|
@mqcmd196 |
|
project_idも正しく指定してみましたがダメそうでした |
|
@MiyabiTane |
|
@mqcmd196 |
|
@mqcmd196 |
|
@mqcmd196 行けました!ありがとうございます!! |
|
@a-ichikura @kochigami
action: 分類結果, intent_score: 確か度 |









@MiyabiTane @a-ichikura 以下のようなサンプルプログラムを作ってみました.
google speech や google NLPのキーを持っていれば,
でサンプルが動くと思います.出力が見づらいですが以下のような処理になっています.プログラムはsamples/client.l です.
で, @mqcmd196 @sktometometo に質問ですが,使い方,これであっているのかな?
https://dialogflow.cloud.google.com/?authuser=1#/editAgent/eternal-byte-236613/
のTutorialにサンプルのIntent を作って,色々皆の簡単な例を追加してくれると良いんですが,
@MiyabiTane が考えていることをイメージして https://dialogflow.cloud.google.com/?authuser=1#/agent/eternal-byte-236613/editIntent/6d3f1ed4-8056-41c4-8f6f-d642283a6b38/ をつくってみましたが,「上」「下」「右」「左」に飾って,という言葉から「上」「下」「右」「左」をEntity @direction として作りましたが,「ちょっと右に動かして」とかやると,「ちょっと」「だいぶ」「きもち」みたいなEntity 書いていくのかなぁ,とか思って,そういうもの(?)
となると,まずは自分の考えているドメインの文法をBNFで定義しよう,みたいなことになるのかな?とか思ったり...
https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%82%AB%E3%82%B9%E3%83%BB%E3%83%8A%E3%82%A6%E3%82%A2%E8%A8%98%E6%B3%95