Peekobot は、100 行弱の ES6 バニラ JavaScript (および一部の CSS) で記述された、Web サイト向けのシンプルで選択主導型のチャットボット フレームワークです。
/docs
フォルダーにボットの例があります。
いじることができる CodePen もあります。
小さく、シンプルで、依存関係はありません (古いブラウザーとの互換性が必要な場合を除く)
会話を単純な JavaScript オブジェクトとして定義します
選択/ボタン主導の会話
URL や会話の他の部分にリンクするオプション
私は async/await および CSS カスタム プロパティを使用しているため、大まかに言えば、Internet Explorer と Opera Mini はサポートされていません。
Babel などを使用して、JavaScript に IE11 互換性をもたらすことができます。
必要に応じて、CSS カスタム プロパティを手動でインライン化することもできます。
Peekobot はパッケージやライブラリではありません。 npm install
できません。スターター キットまたはフレームワークとして考えてください。アイデアは、そのコピーを取得して、それを使って独自のことを行うということです。
もし使ったら、私にラインを送って、あなたが作ったものを見せてください!他の人がそれを使って何をしているのか見てみたいです。ありがとう! ?
Peekobot を使用するには、次のことを行う必要があります。
Peekobot のスクリプトとスタイルを HTML に追加する
Peekobot マークアップを HTML に追加する
会話を定義する
peekobot.js
ファイルとpeekobot.css
ファイルをプロジェクトにダウンロードします。
これを行うには、GitHub からこれらのファイルの生のコードを取得するか、プロジェクトのクローンを作成します。
次に、Peekobot のスクリプトとスタイルを HTML に追加します。
これらはhead
中に入れるべきです:
<!-- Peekobot カスタム プロパティ (CSS 変数) - これらを設定します。 --><スタイル>:root { --peekobot-高さ: 80vh; --peekobot-アバター: url(); }</style><!-- Peekobot スタイル --><link rel="stylesheet" href="peekobot.css">
ここでチャットボット ウィンドウの高さを変更したり、チャットボットがチャットで使用する「アバター」URL を定義したりできることに注意してください。これは小さく、正方形で、円形の中に収まる必要があります。私の CSS は 24 ピクセル四方で表示されるため、48 ピクセル x 48 ピクセルの画像で問題ありません。
これらは JavaScript をロードするために HTML の下部に配置する必要があります。
<script src="conversation.js"></script><script src="peekobot.js"></script>
チャットボットを表示する HTML 本文に Peekobot マークアップを追加します。
<div id="peekobot-container"><div id="peekobot-inner"><div id="peekobot"></div></div></div>
会話定義は、 chat
という JavaScript 変数に配置する必要があります。これをconversation.js
ファイルで定義します。必要に応じてインライン化できます。
chat
変数はオブジェクトである必要があります。チャット オブジェクト内:
最初のプロパティ名/キーは数値 1 である必要があります
後続のプロパティ名には数値または文字列を使用できます。文字列を使用すると、会話の一部をグループ化できます。
各プロパティ値は会話のエントリです。
会話エントリには次のものが必要です。
会話のこの時点でチャットボットが発言するtext
プロパティ
どちらか:
next
プロパティ。チャット オブジェクトの数値キーを記述することで次のチャット エントリを定義し、チャットボットがユーザーからの入力なしにいくつかのことを順番に言う必要がある場合に使用されます。または
ユーザーが選択できる選択肢を定義するoptions
プロパティ。 これはオプション オブジェクトの配列です。
オプション オブジェクトには次のものが必要です。
ユーザーの選択のラベルであるtext
プロパティ、およびそのいずれか
チャット オブジェクトのプロパティ キーを記述することで次のチャット エントリを定義するnext
プロパティ。ユーザーがこのオプションを選択したときに使用されます。または
ユーザーが移動するリンクを定義するurl
プロパティ
チャット オブジェクトの簡単な例は次のとおりです。
const chat = {1: {text: 'おはようございます',next: 'question1'},question1: {text: '朝食と一緒に紅茶かコーヒーはいかがですか?',options: [{text: 'Tea', next: 'response1'},{text: 'Coffee',next: 'response2'}]},response1: {text: '素晴らしい - 美味しい飲み物私自身そう言っています。'},response2: {text: 'ご希望どおり'}}
絵文字やその他の拡張文字を使用するには、必ず UTF-8 を指定することをお勧めします。
おそらく、あなたはいずれにしてもこれを行っているか、あるいは Web サーバーまたは CMS があなたのためにこれを行っている可能性があります。しかし、そうでない場合は、 <head>
に正しいmeta
タグがあることを確認する価値があります。
<meta charset="utf-8">
これは私にとって初めての正式なオープンソース プロジェクトです。これはかなりきちんとしていて、機能しますが、おそらく未完成です。私の主な懸念事項は次のとおりです
アクセシビリティ: このコードのアクセシビリティについてはあまり調べていません。おそらく何らかの作業が必要です
セキュリティ - 一部のスクリプトがボットのスクリプト コードをハイジャックする可能性は十分にあります。
問題を提起してこれらの問題を解決する方法についてアイデアがある場合はお知らせください。
名前が必要だったので、少し急いでこれをリリースしました。それは以下のマッシュアップです:
ピコボット
いないいないばあ
ピコボットやナノボットなど、他のすべての「小型ボット」の名前が採用されたため、これを選択しました。それはちょっとうまくいきます。
Peekobot が気に入った場合、または Peekobot が何らかの形で役に立った場合は、お気軽にコーヒーをおごってください。
ジェスパー・ヨハンソン