Dialogflow(チャットボット)

【ログイン】
■DialogflowGoogle Cloud Platformプロジェクトのセレクタページ
【作業手順】
①Dialogflowエージェント作成
②プロジェクト作成
③サービスアカウントの作成、キー作成
④環境変数の設定
⑤Cloud SDK をインストール
⑥Dialogflow クライアント ライブラリをインストール
【用語】
■Dialogflow
 言語を理解し分類する。言語解析エンジン。
■エージェント
 エンドユーザーとの会話を処理する仮想エージェント。
アプリやサービスが理解できる構造化データに変換する。
■インテント
 1 回の会話ターンにおけるエンドユーザーの意図を分類する。(マッチング)
 └ トレーニング フレーズ
 └ アクション
 └ パラメータ
 └ 回答
■フォローアップ インテント
 インテントのペアのコンテキストを自動的に設定出来る。

■エンティティ
 └ エンティティタイプ
    エンドユーザー表現のデータの抽出方法を指定する。
 └ システムエンティティ
    さまざまなタイプのデータに対応する事前定義。
 └ カスタムエンティティ
    カスタムデータを一致させる。

■コンテキスト
 ある人が「They are orange」と発話した場合、they が何を指すのかを理解するのに必要。
インテントを正しく一致させる。
 └ 入力コンテキスト
 └ 出力コンテキスト

■Dialogflow コンソール
 ウェブユーザー インターフェース
 ・エージェントを作成
 ・ビルド
 ・テスト
■Google Cloud Platform(GCP)Console
 Dialogflow リソースの設定と管理に使用する。
■プリンシパル
 リソースへのアクセスを許可できるエンティティであり、ID とも呼ばれます。
■ユーザー アカウント
  Googleアカウントとして管理され、開発者、管理者、Google Cloud とやり取りするユーザーのことを指す。
■サービス アカウント
 Cloud IAMによって管理されるもので、人間のユーザー以外のものを指す。
【参考サイト】
・Dialogflowとは動作原理料金プラン
・使用手順

Java開発

【開発環境】
フレームワーク・・・SpringBoot
Html・・・Thymeleaf
DB・・・MySQL
DB接続・・・mybatis
Webサーバー・・・Joboss
統合開発環境・・・Eclipse
PC・・・Windows10
【おススメサイト】
・CMAN・・・HTMLの各項目が見やすい
・初心者向けCSS(スタイルシート)入門・・・CSSの仕組みを初心者向けに分かりやすく説明している。
【開発手順】
①Eclipseインストール
②EclipseへのSpringBootの
 インストール
 ※Eclipseマーケットプレース検索時に、
  複数のspringがある場合、
[参考サイト]
・Eclipse、STSインストール~プロジェクト起動JDK、JRE設定

③新規プロジェクト作成
[参考サイト]
・spring bootプロジェクト作成

④JBoss(Webサーバー)ダウンロード
[参考サイト]
・Red Hat JBossダウンロード
 ※20200423現在 コロナの影響かダウンロードできない。

⑤MySQL(DB)ダウンロード


【その他】
・フレームワークが消えた場合。
 →フレームワークのダウンロード
【アノテーション】
<springアノテーション>
アノテーションが付与されたクラスをSpringのDIコンテナにbeanとして登録する。

■@Controller
 ・画面遷移の制御
 ・ドメイン層の Service の呼出 (主処理を実行する)
 ・リクエストの窓口になるクラス
 [参考]
  ・Controller、Service、Repositoryの違い

■@Service
 ・業務処理を提供する。
 ・ビジネスロジックを実装するクラス

■@Repository
 ・データ層のクラス(DAO等のDBアクセスを行うクラス)に付与する。
 ・データ永続化を行うクラス

■@Component
 ・Spring MVCに限らず、SpringのDIコンテナに
  beanとして登録したいクラスへ付与する。

■@RequestMapping
 ・Controllerの処理対象のパスを指定
 [参考:各種属性]
 └ ■Post
    
 └ ■Get

■@SpringBootApplication
 下記のアノテーションが使用可能となる。
 ・@Configuration・・・設定を記述するクラス
 ・@EnableAutoConfiguration・・・
 ・@ComponentScan

■@ModelAttribute
 メソッド内の処理よりも先に実行される。
 画面の値をコントローラーで使用する。

■@Autowired

■@AssertTrue
 boolean型メソッドの作成。


------------------------
<入力チェック>Validation
Controllerに下記を記載する。
■@Validated
 チェックしたいFormに付加する。

Formに下記を記載する。
■@NotNull
■@Max,@Min
■@Size(max=5,min=1)
■@Pattern
■
■
【Javaクラス】ビジネスロジック
-----------------------------
<単語>
■Model
 データの値を格納

■redirect

■model
 入っている値を画面(html)に返すための変数


■Map
 Javaでキーと値をセットにして扱いたい時に使うデータ構造

■messages.properties
 メッセージを設定する。このファイルからメッセージを取込み表示する。
 [参考]
  ・設定手順
  ・バリデーションでの設定

■enum
 [参考]
  ・基本設定~リスト設定
  ・ラジオ・チェックボックス
  ・enum値からデータを取得配列(Object型)

■List

■for
 [参考]
  ・拡張for文...etc

----------------------------
<各条件>
■画面遷移
 参考:構成

■セレクトボックスから値を取得
 [参考]
  ・チェック、ボタン、セレクトから取得
【HTML】画面に表示する内容の設定
■h1~h6
 見出しタグ・・・h1=大きい文字~h6=小さい文字
■span
 グループ化タグ・・・表示する文字をグループ化して、文字色などを変える。
 例)<span style="color:red">赤色</span>
■div
 グループ化タグ・・・文字の高さや幅、改行など、細かく設定できる。
 参考サイト:https://saruwakakun.com/html-css/basic/div-span
■meta

■button(デフォルトtype=submit)
 innerHTMLで見た目をcssで自由に設定できる。
 └submitとbuttonの違い
  submit・・・押しただけで送信される。
  button・・・何も指定しなければ、押せるだけで、何も送信できない。

■input
 [参考:type]

■form
 入力・送信フォームの作成。
 └ method
   └ post・・・値のみを送信する。
          サーバー側のデータを変更するような送信の場合。
   └ get・・・サーバー側のデータを変更せずに取得する場合。
 [参考:各属性methodの違い]

■table
 テーブル(表)を作成。
 └ TR・・・行
 └ TD・・・列
 └ TH・・・見出し
 [参考]
  ・テーブル、枠、CSS
  ・セル結合

■iframe
  分割された各フレームに表示するファイルと表示方法を指定。
  [参考:http://www.htmq.com/html5/iframe.shtml]

■submit
 送信処理。押下時に即送信される。
 [参考]
  ・

■メッセージ読み込み
 [参考]
  ・html直接参照
  ・エラーメッセージ

■if
 [参考]
  ・複数条件のif文
  ・空文字の判定方法
  ・真・偽判定

■block
 [参考]
  ・block,each,if,with,

■#クラス名(ユーティリティオブジェクト)
 [参考]
  ・#string,#objects・・・etcフラグメント
 mainのhtmlに別のhtmlに記述している内容を呼び出して表示する。
 [参考]
  ・
■eachattr・・・定義されていない属性値の設定ができる。
■href(<a>タグの属性)・・・出発点を記述する。「到達点」として指定のできるのはname属性やid属性。

■style
 ・styleタグ・・・cssの中身をすべてHtml上に記載する。
 ・style属性・・・各タグにcssのプロパティを書き込む。

■$,#,@,*の使い方th:utext・・・改行コードを含む文字列で改行コードをエスケープせずに表示する。(messages.propertiesに定義している値も使用可能)
 注意・・・XSS攻撃の危険有り
【その他】
■ポートの使用状況確認方法(8080)
https://qiita.com/hirorin/items/e26d3aec0bfc97b9a173

■ファイル内文字の文字化け
 ①ファイルの文字コード=UTF-8か確認。
 ②Eclipseの当該ファイルプロパティが
  UTF-8か確認。

■色コードテーブル各行色分け
【CSS】文字色やフォント、固定文字の設定ファイル
 ・CSSの使い方(基礎)
【JavaScript】
■document
 htmlの内容を取得する。
 [参考]
  ・各種プロパティ、
  ・使用例/チェックボックス、ラジオボタン等
  ・各種プロパティ2

■function
 [参考:function,ボタン,リンク,input]

■replace
 置換

■値取得
 
■const
 「定数」。値は再代入による変更はできず、再宣言もできません。

■ifgetElementById
【Eclipse】
■ショートカット
 └ インシデント・・・Ctrl + i (範囲選択必要)
 └ getter/setter・・・Alt + Shift + S → Generate getters and settersを選択

【DB接続手順】
①MySQLセットアップ~データベース・テーブル・ユーザー作成
 参考:https://sibrog11.com/2020/04/27/mysql関連/

②設定ファイルの作成(java)
 ■application.properties・・・MySQL接続設定
 ■entity・・・テーブル情報設定
 ■Mapper・・・select等のsql文の設定
 ■controller・・・データの取得等の処理記述
 ■xml・・・select等のsql文の設定
 ■html・・・controllerから取得したデータを元に画面表示設定
 参考:DBデータ表示


【XML】
■SQL文
 [参考:updateupdate2]

■select、update、delete・・・etc
 [参考]
  ・パラメータ

 └ parameterType = "map"
    Javaでキーと値をセットにして扱いたい時に使うデータ構造
    [参考]
   ・select使用例

クラウドプラクティショナー(AWS認定試験)


【勉強方法】
参考サイト
 ・試験概要~準備・勉強方法
 ・勉強方法
 ・問題集

問題集
 ・https://learn-aws.cafe
 ・https://it試験合格.tokyo/2019/09/15/awsクラウドプラクティショナーの勉強法/


awsトレーニング
 ※AWSアカウント作成後にAmazonアカウント作成必要

問題集

【AWSホワイトペーパー】日本語版
・アマゾン ウェブ サービスの概要クラウドコンピューティングのアーキテクチャAWS 料金体系の仕組みその他のホワイトペーパー一覧

【おススメ参考書】

<AWS認定 クラウドプラクティショナー>
・勉強方法から説明してくれるため、完全に初めて勉強する方におススメ。
※Kindle版で買った場合、本文をコピーできないため、URLのコピー&ペーストが出来ず不便な部分がある。

amazon:AWS認定 クラウドプラクティショナー

2020/03/05(木)

今朝は5:00起床。

前日に23:00ごろ寝たら、5:00の目覚ましの直前に勝手に目が覚めた。6h睡眠の体質になったのか?w

で、朝食にして、30mぐらい時間があったので、ちょっとandroidモバイルアプリ作成。

android studioのデバッグ機能がイマイチ使えていないことが発覚したので、使い方を調べることにした。


今日の考察


【バランス信仰に騙されるな】堀江さんメルマガ

例えば、小学生のころ、給食の時間に「三角食べをしましょう」という教えについて、どこに科学的根拠があるのか。

おかずをアテにご飯をかきこみ、最後に味噌汁をすすって終わりにしたところで、何の問題もなかろう。ということだった。

常に物事の理由を考えるようにしたらいいよね。


今日の取組み


【DMM VR動画アプリ】

以前に堀江さんのメルマガで紹介があったアプリ。

僕的にはDMMはアダルトコンテンツのイメージが強いが、そこがVRで動画を出しているということで、早速試してみた。

まず、アプリをダウンロードし、DMMのサイトで動画をレンタル。(7日間レンタルできるのもあってリーズナブル。もちろんネットで買うこともできる)

あと、VRゴーグルが必要。(ヘッドホン付きじゃなければ別途イヤホン必要) 今回は普段通勤で使っているイヤホンを使用。

VRゴーグルにスマホをセットして使用。

使った感想としては、臨場感がすごい良い!めっちゃ近くにいるみたいな感覚でなかなか良かった!

ただ、動画のピントが少し合わず、気になったのと、VRゴーグル付属のリモコンが壊れているのか、電源が入らないから、スマホセットしたら動画を操作できない。

安物だとこんなものなのかな。

スマホをセットするんじゃなく、ゴーグルにディスプレイがあるタイプだと、ピントの問題も解消しそう。

体験するだけなら、安物でも十分。

[良かった所]

  • 臨場感がかなりある。目の前にいるみたい。

[課題]

  • スマホセット型はピント調節が重要。ボケて見えると萎える。
  • イヤホン一体型は音質が悪い?
  • リモコンがないとスマホ操作ができない。
  • アダルト以外で有効なVR動画は何か?
  • 使ってると雲ってくる。
  • リモコンが無いと、スマホを操作できない。

課題


【PGでのnullの扱いについて】

今日結合テスト中に、前後のテーブルの同項目にどっちもnullが入っているにも関わらず差分として判定されていることが発覚した。

SQLにNVLを追加して対応したが、単体テストからやり直し。

気をつけよう。


PC動作高速化手順

参考サイト1(main)

https://ferret-plus.com/7815

常時

①不要なプログラムを停止する。(batch化)

不要なPG一覧:https://www.wpbnavi.com/121

②スタートメニューの透明効果の無効化

③Windows Defenderの無効化

他のウィルス対策ソフトに入っている場合は無効化する。

④アニメーションエフェクトの無効化

⑤仮想メモリの設定を変更する

⑥省電力設定を解除する

⑦デフラグを行う

⑧自動で立ち上がるソフトを停止する

⑨ディスクのクリーンアップをする

遅延発生時

①容量の大きいフォルダをcドライブ外へ移動させる

②自動メンテナンスの時間に作業しない。また時間を最適化する

③ソフトの優先順位を変更する