サマリー
Javascriptを使ったフロントサイドのサーバーフレームワークであるNode.jsとReactを用いたシンプルなchatbotの実装について述べる。
基本的な動作としては、会話のルールを書いた後に、jsonファイルにそれらを落とし込み、書き込まれたシーケンスの流れに沿って会話が進むルールベースのものとなる。
環境設定
まずNode.jsをインストールする。nodeのサイトのダウンロードページにアクセスすると以下のようなページに行く。それぞれのOSに合わせてインストーラーをダウンロードする。

基本的には特別な設定は無く、「next」を押していくことでダウンロードは完了する。最終的にダウンロードできたかどうかは、ターミナルで「node –version」を入力してバージョンが表示されれば完了している。また、nodeのパッケージ管理ツールであるnpmも同時にダウンロードされているはずなのでそちらも「npm –version」でダウンロードされていることを確認する。
npmは企業内で利用する際にはプロキシ設定が必要となる。
npm config set proxy (それぞれのプロキシアドレス:例http://proxy.example.com:8080
npm config set https-proxy (それぞれのプロキシアドレス:例http://proxy.example.com:8080
次に、JavascriptのフレームワークであるReactのフレームワークを作成する。まず、任意のフォルダーのディレクトリ下で、ターミナルを動作させて、reactのテンプレート(名称は任意(今回はmy-app))を作成する。
npx create-react-app my-app
次に作成したmy-appディレクトリに移動して、Reactを動作させる
cd my-app
npm start
reactが立ち上がるとブラウザ(http://localhost:3000)で以下のようなReact画面が見える。
生成したmy-appのフォルダーの中は以下のような構成となっている。
これらの中で「src」フォルダーの中は以下のようになる。
基本的にはApp.jsファイルの中のコードを書くこととなる。デフォルトで書かれてあるコードは以下となる。
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
react-simple-chatbotの利用
ここでChatbotのライブラリとしてreact-simple-chatbotを利用する。
ドキュメンテーションのボタンをクリックすると、インストールの手順が現れる
ターミナルで「npm install react-simple-chatbot -save」を入力してライブラリをインストールする。
先程のApp.jsのファイルを以下のものに書き換える。
import React from 'react';
import Sample from './sample';
import './App.css';
function App() {
const style = {
width: "50%",
margin: "0 auto",
marginTop: 150
};
return (
<div className="App">
<div style={style}>
<Sample />
</div>
</div>
);
}
export default App;
さらに同じフォルダー内にsample.jsファイルを作成し、以下のようにcahtbotのシーケンスをコードする。
import React from 'react';
import ChatBot from 'react-simple-chatbot';
export const Sample = () => {
return (
<ChatBot
steps={[
{ id: '1',
message: 'What is your name?',
trigger: '2', },
{ id: '2',
user: true,
trigger: '3', },
{ id: '3',
message: 'Hi {previousValue}, nice to meet you!',
end: true, },
]}
/>
)
}
export default Sample
後は、基本的には、エクセル等上で作成したルールシーケンスを上記のjsonデータ構造に変換していくだけで良い。
作成が終了した時点でターミナルで「npm start」してブラウザで動作を確認することができる。
コメント
[…] Node.jsとReactを使ったchatbotの実装 […]
[…] Node.jsとReactを使ったチャットボットシステムの実装 […]
[…] Reactプロジェクトを開始するときの最も一般的な方法、以前Node.jsとReactを使ったchatbotの実装でも述べた「create React App」を利用するものとなる。具体的なnode.jsのインストールとcreate react a […]
[…] Reactプロジェクトを開始するときの最も一般的な方法、以前Node.jsとReactを使ったchatbotの実装でも述べた「create React App」を利用するものとなる。具体的なnode.jsのインストールとcreate react a […]
[…] を元にしたシンプルな具体的なチャットボットの実装に関しては、「Node.jsとReactを使ったチャットボットシステムの実装」にて述べている。ここでは、ルールのコードと動作のコードを分 […]
[…] この応答をchatbot上でやりとりする方法としては、”Node.jsとReactを使ったチャットボットシステムの実装“や、”ClojureとJavascriptを使ったチャットボットの実装とAI機能の統合̶ […]