
npm install react-chatbot-kit
import React from "react";
const MessageParser = ({ children, actions }) => {
const parse = (message) => {
if (message.includes("안녕")) {
actions.handleHello();
} else {
actions.handleUnknownMessage();
}
};
return (
<div>
{React.Children.map(children, (child) => {
return React.cloneElement(child, {
parse: parse,
actions,
});
})}
</div>
);
};
export default MessageParser;children을 순차적으로 처리하며, 각 자식 컴포넌트에 parse와 actions를 추가.import React from "react";
const ActionProvider = ({
createChatBotMessage,
setState,
children,
}) => {
const handleHello = () => {
const botMessage = createChatBotMessage("나도 반가웡");
setState((prev) => ({
...prev,
messages: [...prev.messages, botMessage],
}));
};
const handleUnknownMessage = () => {
const botMessage = createChatBotMessage(
"죄송해요 무슨 말씀이신지 잘 모르겠어요 ㅜㅜ"
);
setState((prev) => ({
...prev,
messages: [...prev.messages, botMessage],
}));
};
return (
<div>
{React.Children.map(children, (child) => {
return React.cloneElement(child, {
actions: { handleHello, handleUnknownMessage },
});
})}
</div>
);
};
export default ActionProvider;createChatBotMessage: 챗봇의 응답 메시지를 생성하는 함수.setState: 챗봇 상태를 업데이트하는 함수. 새로운 메시지를 상태에 추가.handleHello: 사용자가 "안녕"이라고 입력했을 때 챗봇의 반응을 처리하는 함수.handleUnknownMessage: 챗봇이 이해할 수 없는 메시지를 처리하는 함수.React.Children.map: 자식 컴포넌트에 액션을 전달하여, 자식 컴포넌트에서 액션을 사용할 수 있게 하는 메서드.import { createChatBotMessage } from "react-chatbot-kit";
const config = {
initialMessages: [createChatBotMessage(`Hello world`)],
};
export default config;initialMessages: 챗봇이 로드될 때 처음으로 표시할 메시지를 설정하는 배열입니다.createChatBotMessage: 주어진 텍스트를 챗봇 메시지 객체로 변환하는 함수입니다.import React from "react";
import Chatbot from "react-chatbot-kit";
import config from "../chatbot/config";
import MessageParser from "../chatbot/MessageParser";
import ActionProvider from "../chatbot/ActionProvider";
import "react-chatbot-kit/build/main.css";
function ChatBot() {
return (
<div>
<Chatbot
config={config}
messageParser={MessageParser}
actionProvider={ActionProvider}
/>
</div>
);
}
export default ChatBot;
Chatbot: 챗봇의 UI 및 동작을 관리하는 기본 컴포넌트.config: 챗봇의 초기 메시지 및 설정을 포함하는 객체.MessageParser: 사용자의 메시지를 분석하여 적절한 액션을 호출하는 컴포넌트.ActionProvider: 사용자의 입력에 대한 챗봇의 반응을 정의하는 컴포넌트.react-chatbot-kit의 기본 스타일을 포함한 CSS 파일.