Read this in other languages: English.
μ΄ μ ν리μΌμ΄μ μ IBM Watson Conversationμ νμ©νκ³ μ νλ κ°λ°μλ₯Ό μν΄ κ°λ°λμμ΅λλ€. μ΄ μ ν리μΌμ΄μ μ "μ€λ λνμ§?" λΌλ λ¨μν μ§λ¬Έμ λν μμ΄λμ΄μμ μμνμμΌλ©° IBM Watson Natural language Understanding λ° The Weather Company Dataλ₯Ό νμ©νμ¬ μ¬μ©μμ μ΅κ·Ό μ‘ν°λΉν°, λ μ¨ μ 보 λ±μ κΈ°λ°μΌλ‘ μ¬μ©μμκ² μ€λ ν μ μλ νλμ μΆμ²ν©λλ€.
μ΄ μ ν리μΌμ΄μ
μ Conversation Simpleμ κΈ°λ°μΌλ‘ μμ νμ¬ κ°λ°νμΌλ©° λ°λͺ¨ λ§ν¬μμ ν
μ€νΈν μ μμ΅λλ€. νΉμ μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ μΊλ¦°λλ΄
μ μΆκ°νμ¬ ν
μ€νΈν μ μμ΅λλ€.
μ΄ μ ν리μΌμ΄μ μ ꡬμ±μ μ΄ν΄νκ³ νν 리μΌμ λ§μΉλ©΄ λ€μμ μ΄ν΄ν μ μμ΅λλ€.
-
Node.js κΈ°λ°μ μ±λ΄ μ ν리μΌμ΄μ κ°λ°
-
IBM Watson Conversationμ νμ©νμ¬ μ±λ΄ λΉλ
-
IBM Watson Natural Language Undersatanding λ° The Weather Company Data μλΉμ€λ₯Ό μ ν리μΌμ΄μ μμ νμ©
-
κ΅¬κΈ μΊλ¦°λ API λ° tinyurlμ Url Shorten κΈ°λ₯μ μ ν리μΌμ΄μ μμ μ¬μ©
- μ¬μ©μλ λ€μν μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μΊλ¦°λλ΄μ μ¬μ©ν©λλ€. μ€μ΅ κ³Όμ μμλ μΉ μ ν리μΌμ΄μ λ° μΉ΄μΉ΄μ€ν‘ λ©μ μ νλ«νΌμ μ¬μ©ν©λλ€.
- λͺ¨λ μΈν°νμ΄μ€λ μ¬μ©μμ μ ν리μΌμ΄μ μ¬μ΄μ λ§€κ°μ²΄ μν μ ν©λλ€. μ¬μ©μμ λ©μΈμ§λ₯Ό μ ν리μΌμ΄μ μ μ λ¬νκ³ μλ΅μ λ€μ μ¬μ©μμκ² μ λ¬ν©λλ€.μ ν리μΌμ΄μ μ Node.js λ°νμ κΈ°λ°μΌλ‘ κ°λ°λμμ΅λλ€. μ ν리μΌμ΄μ μ νμν κΈ°λ₯μ μννκΈ° μν΄ λ€λ₯Έ μλΉμ€λ€μ νΈμΆνκ±°λ μ체μ μΈ λ‘μ§μ μνν©λλ€.
- μ ν리μΌμ΄μ μ μ¬μ©μκ° λ©μΈμ§λ₯Ό μ μ‘ν λλ§λ€ Watson Conversation μλΉμ€λ₯Ό νΈμΆνμ¬ μ΄ λ€μμ μνν λ‘μ§ λ° μλ΅ λ©μΈμ§λ₯Ό μΆμΆν©λλ€.
- μ ν리μΌμ΄μ μ νμμ λ°λΌ Natural Language Understanding μλΉμ€λ₯Ό νμ©νμ¬ ν μ€νΈλ‘λΆν° λ©νλ°μ΄ν°λ₯Ό μΆμΆν©λλ€. μ΄ μ ν리μΌμ΄μ μ μ¬μ©μμκ² μ€λ νλ©΄ μ’μ μ‘ν°λΉν°λ₯Ό μΆμ²νκΈ° μν΄ μ¬μ©μμ κ³Όκ±° μΊλ¦°λ λ°μ΄ν°λ₯Ό μ‘°ν λ° λΆμν©λλ€.
- λ μ¨ λ°μ΄ν°λ₯Ό μ»κΈ° μν΄ The Weather Company Dataλ₯Ό νμ©ν©λλ€. μ¬μ©μμκ² μ‘ν°λΉν°λ₯Ό μΆμ²ν λμ λ μ¨μ μν₯μ λ°λ μ‘ν°λΉν°λ μ μΈνκΈ° μν΄ λ μ¨ λ°μ΄ν°λ₯Ό νμ©ν©λλ€.
- μ¬μ©μμ λ¬Έλ§₯ μ 보 λ° λ‘κ·Έλ₯Ό ν΄λΌμ°λνΈμ μ μ₯ν©λλ€.
- μ¬μ©μμ μΌμ μ μ‘°ν λ° μμ±νκΈ° μν΄ Google Calendar APIλ₯Ό μ¬μ©ν©λλ€.
- λλ‘λ Google Calendar APIλ₯Ό μ¬μ©ν λμ λ무 κΈ΄ URLμ μ¬μ©μμκ² λ³΄μ¬μ€ νμκ° μμ΅λλ€. μ΄ κ²½μ°λ₯Ό λλΉν΄ TinyURLμ μ¬μ©νμ¬ μ§§μ URLμ μ¬μ©νμ¬ μ¬μ©μμκ² λ³΄μ¬μ€λλ€.
-
IBM Watson Conversation: μμ°μ΄λ₯Ό μ΄ν΄νκ³ κΈ°κ³ νμ΅(Machine learning)μ μ¬μ©νμ¬ κ³ κ°κ³Ό μν΅ν λ μ¬λμ΄ νλ λν λ°©μμΌλ‘ μλ΅νλ μ΄ν리μΌμ΄μ μ λ§λ€ μ μλλ‘ λͺ¨λ κΈ°λ₯μ μ 곡ν΄μ£Όλ μλΉμ€ μ λλ€.
-
IBM Watson Natural Language Understanding: ν μ€νΈλ₯Ό λΆμνμ¬ μ»¨ν μΈ λ‘λΆν° 컨μ , μν°ν°, ν€μλ, μΉ΄ν κ³ λ¦¬, κΈλΆμ , κ°μ , κ΄κ³ λ±κ³Ό κ°μ λ©νλ°μ΄ν°λ₯Ό μΆμΆνλλ°μ νμ©ν μ μλ μλΉμ€μ λλ€.
-
[The Weather Company Data]
-
Node.js: μλ°μ€ν¬λ¦½νΈ κΈ°λ°μ λ°νμμΌλ‘ νμ₯μ± μλ μ ν리μΌμ΄μ μ κ°λ°ν μ μμ΅λλ€.
-
Google Calendar API : κ΅¬κΈ μΊλ¦°λμ μ°λνκΈ° μν APIλ₯Ό μ 곡ν©λλ€.
-
tinyurl : κ°νΈν URL Shorten APIλ₯Ό μ 곡ν©λλ€.
- μ¬μ μ€λΉ μ¬νμ λ¨Όμ μλ£νμμμ€.
- μ ν리μΌμ΄μ μ IBM Cloudμ λ°λ‘ λ°°ν¬νκ±°λ λ‘컬μμ μ€νν©λλ€.
- Conversationμ μν¬μ€νμ΄μ€λ₯Ό μ€μ νκ³ μ ν리μΌμ΄μ μ νμν νκ²½ λ³μλ₯Ό μμ ν©λλ€.
- Watson Conversation Tool μ€μ΅μ ν΅ν΄ μ±λ΄μ μμ±ν©λλ€.
- μ±λ΄μ μΉ΄μΉ΄μ€ν‘κ³Ό μ°λν©λλ€.
- IBM Cloudμ κ³μ μ μμ±ν©λλ€.
- IBM Cloudμμ μλ‘μ΄ κ³μ μ μμ±νκ±°λ κ°κ³ κ³μ κ³μ μ μ¬μ©νμμμ€. κ³μ μ 256MBμ μ±μ μ€ννκ³ 5κ° μ΄μμ μλΉμ€λ₯Ό μμ±ν μ μλ κ°μ© 곡κ°μ΄ μμ΄μΌ ν©λλ€.
- (μ ν) μ ν리μΌμ΄μ μ λ‘컬μμ μ€ννλ €λ©΄ Node.js λ°νμ λ° npm ν¨ν€μ§ λ§€λμ λ₯Ό μ€μΉν©λλ€.:
- (μ ν) λ‘컬μμ λ³κ²½ν μ ν리μΌμ΄μ μ IBM Cloudμ λ°°ν¬νλ €λ©΄ CLI(Command Line Interface)λ₯Ό μ€μΉν©λλ€.
- μ΄ μ ν리μΌμ΄μ
μ Google Calendar APIλ₯Ό μ¬μ©ν©λλ€.
- Google API μ½μμμ νλ‘μ νΈ μμ±
κ³μ
λ²νΌμ λλ₯Έ νμ¬μ©μ μΈμ¦ μ λ³΄λ‘ μ΄λ
λ²νΌ ν΄λ¦νλ©΄μ¬μ©μ μΈμ¦ μ 보
νμ΄μ§κ° μ€νλ©λλ€. μ΄ νλ©΄μμμ·¨μ
λ²νΌμ λλ¦ λλ€.- νλ©΄ μλ¨μ
OAuth λμ νλ©΄
νμ ν΄λ¦ν©λλ€.μ¬μ©μμκ² νμλλ μ ν μ΄λ¦
μ μ λ ₯νκ³ μ μ₯ν©λλ€. μ¬μ©μ μΈμ¦ μ 보
νμμμ¬μ©μ μΈμ¦ μ 보 λ§λ€κΈ°
λ²νΌμ ν΄λ¦νμ¬OAuth ν΄λΌμ΄μΈνΈ ID
λ₯Ό μ νν©λλ€.- μ ν리μΌμ΄μ
μ νμΌλ‘
κΈ°ν
λ₯Ό μ ννκ³ μ΄λ¦μTutorial
μ μ λ ₯ν©λλ€.μμ±
λ²νΌμ λλ¦ λλ€. - νμ μμ ν΄λΌμ΄μΈνΈ IDμ Passwordλ₯Ό 볡μ¬νμ¬ κΈ°λ‘ν΄λ‘λλ€.
- νμ
μ μ’
λ£νκ³
JSON λ€μ΄λ‘λ
μμ΄μ½μ ν΄λ¦νμ¬ JSONμ λ€μ΄λ‘λ ν©λλ€. μ΄ νμΌμ μμ€μ½λμ λ£¨νΈ ν΄λμ client_secret.jsonμΌλ‘ μ μ₯ν©λλ€.
- Google API μ½μμμ νλ‘μ νΈ μμ±
- μΉ΄μΉ΄μ€ν‘κ³Ό μ±λ΄μ μ°λνλ €λ©΄ μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬λ₯Ό μμ±νμμμ€.
- μ ν리μΌμ΄μ
μ μμ€μ½λλ₯Ό λ€μ΄λ‘λ ν©λλ€.
- μμ€μ½λ λ νμ§ν 리μμ
Clone or download
λ²νΌμ ν΅ν΄ λ€μ΄λ‘λ νμμμ€. git μ¬μ©μμ κ²½μ° git clientλ₯Ό ν΅ν΄ cloneνκ±°λ folkν©λλ€.
- μμ€μ½λ λ νμ§ν 리μμ
μ΄ λ§ν¬λ₯Ό ν΄λ¦νμ¬ μ ν리μΌμ΄μ μ IBM Cloudμ λ°°ν¬ν©λλ€.
μ ν리μΌμ΄μ λ°°ν¬κ° μμλλ©΄ 3. Conversationμ Workspace λ° IBM Cloud νκ²½ λ³μ μ€μ μ μμνμμμ€.
μ΄ λ§ν¬λ₯Ό ν΅ν μ ν리μΌμ΄μ λ°°ν¬μ μ΄λ €μμ΄ μλ κ²½μ° 2.λ‘컬μμ μ€ννκΈ°μ λ°©λ²μΌλ‘ μ ν리μΌμ΄μ μ λ°°ν¬ν©λλ€.
(μ΄ λ¨κ³λ μ΄λ² μ€μ΅ μΈμ μμλ μ§ννμ§ μμΌμ λ λ©λλ€. 1λ²μ ν΅ν΄ λ°°ν¬λ₯Ό μλ£νμ κ²½μ° 3λ²μΌλ‘ κ°μμμ€.)
μ΄ μ±μ λ² μ΄μ€λ‘ νμ¬ μμ λ° μλ‘μ΄ μ±μ κ°λ°νκ³ μ νλ κ²½μ° λ‘컬μ μ€μΉν μ μμ΅λλ€. μμ ν μ± λ²μ μ λ€μ IBM Cloudλ‘ λ°°ν¬ν μ μμ΅λλ€.
IBM Cloud μΉ΄νλ‘κ·Έ λλ CLI λͺ λ Ήμ ν΅ν΄ λ€μμ μλΉμ€λ₯Ό μμ±ν©λλ€. μλΉμ€ μ΄λ¦μ manifest.ymlμ λͺ μλμ΄ μκΈ°μ λ°λμ κ°μ μ΄λ¦μΌλ‘ μμ±ν΄μΌ λ°°ν¬κ° κ°λ₯ν©λλ€.
μλΉμ€ μΉ΄νλ‘κ·Έμ μ΄λ¦ | μλΉμ€ νμ λͺ | νλ | μλΉμ€ μ΄λ¦ |
---|---|---|---|
Conversation | conversation | free | conversation-service |
Natural Language Understanding | natural-language-understanding | free | natural-language-understanding-service |
Cloudant NoSQL DB | cloudantNoSQLDB | Lite | cloudant-service |
IBM Cloud μΉ΄νλ‘κ·Έμμ μλΉμ€ μΉ΄νλ‘κ·Έμ μ΄λ¦
μΌλ‘ μλΉμ€λ₯Ό κ²μν©λλ€.
μλΉμ€ μ΄λ¦μ λ°λμ νλ₯Ό μ°Έμ‘°νμ¬ μ
λ ₯νμμμ€.
(μ€μ) 컀맨λ μ°½μ μ΄μ΄ μμ€μ½λμ νλ‘μ νΈ λ£¨νΈ κ²½λ‘λ‘ μ΄λν©λλ€.
CLIλ₯Ό ν΅ν΄ μλΉμ€λ₯Ό μμ±νλ κ²½μ° λ¨Όμ λ€μ λͺ λ Ήμ μ°Έμ‘°νμ¬ λ‘κ·ΈμΈ νμμμ€. μμΈν λ΄μ©μ λ§ν¬λ₯Ό μ°Έμ‘°νμΈμ.
bx login [-a api_endpoint]
api_endpointμ urlμ 리μ λ³λ‘ λ€λ¦ λλ€.
US South : api.ng.bluemix.net
UK : api.eu-gb.bluemix.net
Sydney : api.au-syd.bluemix.net
λ§μ½ US Southλ₯Ό μ¬μ©νλ€λ©΄ λ€μ λͺ λ Ήμ μ¬μ©νλ©΄ λ©λλ€.
bx login -a api.ng.bluemix.net
λ€μ λͺ λ Ήμ ν΅ν΄ μ ν리μΌμ΄μ μ λ°°ν¬ν μ‘°μ§κ³Ό μ€νμ΄μ€λ₯Ό μ€μ ν©λλ€. ORGμλ μ‘°μ§ μ΄λ¦μ, SPACEμλ μ€νμ΄μ€ μ΄λ¦μ μ λ ₯νμμμ€. μμΈν λ΄μ©μ λ§ν¬λ₯Ό νμΈνμμμ€.
bx target --cf
μ΄μ μλΉμ€μ μλΉμ€ ν€λ₯Ό κ°κ° μμ±ν©λλ€.
/scripts/install.sh μ€ν¬λ¦½νΈλ₯Ό νμ©νμ¬ νλ²μ μμ±νκ±°λ
sh scripts/install.sh
λλ μλ λͺ λ Ήμ νμ©νμ¬ μλμΌλ‘ μμ±νμμμ€.
bx service create <μλΉμ€ νμ λͺ > <νλ> <μλΉμ€ μ΄λ¦> bx service key-create <μλΉμ€ μ΄λ¦> <ν€ μ΄λ¦>
(μ΄ λ¨κ³λ μ΄λ² μ€μ΅ μΈμ μμλ μ§ννμ§ μμΌμ λ λ©λλ€. 2.1λ²μ μλ£νμ κ²½μ° 2.3λ²μΌλ‘ κ°μμμ€.)
λ‘컬μμ μ€ννλ €λ©΄ νκ²½ λ³μλ₯Ό μ ν ν΄μΌ ν©λλ€. μμ νμΌλ‘λΆν° νκ²½ λ³μλ₯Ό μ μ₯ν νμΌμ μμ±ν©λλ€.
cp .env.example .env
.env νμΌμ νκ²½λ³μλ₯Ό κ° μλΉμ€μ Credential κ°μΌλ‘ μ±μμ€λλ€.
μ±μ μ€μΉνκ³ μ€νν©λλ€.
npm install npm start
<project_root>/manifest.yml
μμ μ ν리μΌμ΄μ
μ΄λ¦μ λ³κ²½ν©λλ€. μ ν리μΌμ΄μ
μ΄λ¦μ IBM Cloud λ΄μμ Uniqueν κ°μ΄μ΄μΌ ν©λλ€. μλμ κ°μ΄ λ μ§μ μ΄λμ
μ λν΄ κ²ΉμΉμ§ μλλ‘ μ€μ ν©λλ€.
applications: - name: connectbot-2017-1109-hjjo
λ€μ λͺ λ ΉμΌλ‘ μ±μ IBM Cloudμ λ°°ν¬ν©λλ€.
bx app push
-
IBM Cloudμ λμ보λμ μ μν©λλ€. μ ν리μΌμ΄μ λ°°ν¬μ μ€μ νλ Region, Organization λ° Spaceλ₯Ό μ¬λ°λ₯΄κ² μ νν©λλ€.
-
μλΉμ€ λͺ©λ‘μμ conversation-serviceλ₯Ό μ νν©λλ€.
-
Launch Tool
λ²νΌμ λλ¬ Conversation Toolμ μ€νν©λλ€. μ΄ λ§ν¬λ₯Ό κΈ°μ΅ν΄ λμμμ€. -
Conversation Toolμμ
Import a workspace
μμ΄μ½μ μ ννμμμ€. μλμ κ°μ΄ μκ²Όμ΅λλ€. -
μ ν리μΌμ΄μ μμ€μ½λμ /training/calendar_bot_workspace.json νμΌμ μ νν©λλ€.
<project_root>/training/calendar_bot_workspace.json
-
Everything (Intents, Entities, and Dialog)
λ₯Ό μ ννκ³Import
λ²νΌμ λλ¬ μν¬μ€νμ΄μ€λ₯Ό μμ±ν©λλ€. -
μ’μΈ‘μ Workspaces μμ΄μ½μ λλ¬ μν¬μ€νμ΄μ€ λͺ©λ‘μΌλ‘ λμκ°λλ€.
-
μμ±λ μν¬μ€νμ΄μ€μ μΉ΄λ μ°μΈ‘ μλ¨μ μμΉν μμ΄μ½μ λλ¬
View Details
λ₯Ό μ νν©λλ€. -
Workspace ID
λ₯Ό 볡μ¬νμ¬ κΈ°λ‘ν΄ λ‘λλ€. -
IBM Cloudμ λμ보λμμ μ ν리μΌμ΄μ μ μ νν©λλ€. ROUTEκ° μλ NAME λΆλΆμ ν΄λ¦νμμμ€.
-
μ’μΈ‘ λ©λ΄μμ
Runtime
μ μ νν©λλ€. -
Environment Variables
νμ μ ννκ³ μ€ν¬λ‘€μ μλλ‘ λ΄λ¦½λλ€. User DefindλΌκ³ λͺ μλ νκ²½λ³μ νλͺ©λ€μ΄ 보μ λλ€. μ΄ νλͺ©λ€ μ€μμ WORKSPACE_IDμ VALUE κ°μ μμμ 볡μ¬ν΄λ κ°μΌλ‘ λ³κ²½ν©λλ€.
μ ν리μΌμ΄μ
λμ보λμ Runtime νμ΄μ§μ μλ Environment Variables
νμμ κ³μ μ§ννμμμ€.
- GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRETμ VALUE κ°μ μ¬μ μ€λΉμ¬νμμ κΈ°λ‘ν΄λ κ°μΌλ‘ λ³κ²½ν©λλ€.
- μ μ₯ λ²νΌμ λλ¬ λ³κ²½ν νκ²½λ³μ κ°μ μ μ₯ν©λλ€.
μ ν리μΌμ΄μ λμ보λμμ λ³κ²½ν νκ²½ λ³μλ₯Ό λ°μνκΈ° μν΄ μ ν리μΌμ΄μ μ μ¬μμ νμμμ€. μλ¨μ μ¬μμ μμ΄μ½μ λλ¬ μ¬μμν μ μμ΅λλ€.
Routes
λ²νΌμ ν΄λ¦νμ¬ μ ν리μΌμ΄μ
URLμ νμΈνκ³ λΈλΌμ°μ μμ μ μν©λλ€.
μ λ¨κ³μμ Importν /training/calendar_bot_workspace.json νμΌμ μ΄ μ ν리μΌμ΄μ μ μ£Όμ κΈ°λ₯μ€ νλμΈ schedule μΆκ° κΈ°λ₯μ μ§μ κ°λ°νλλ‘ μλλ μν¬μ€νμ΄μ€ μ λλ€. Importν μν¬μ€νμ΄μ€λ₯Ό μμμ μΌλ‘ νμ¬ μΊλ¦°λ λ΄μ μμ±ν΄ λ΄ λλ€.
μ΄ λ¨κ³λ Conversation Toolμμ μ§νν©λλ€. Conversation Toolμ λ€μ μ€ννλ €λ©΄ λ€μ λ¨κ³λ₯Ό λ°λ₯΄μμμ€. μ±λ΄ νλ‘μ νΈμμ Conversation Toolμ μμ£Ό μ¬μ©νκ² λλ―λ‘ λ§ν¬λ₯Ό μ¦κ²¨μ°ΎκΈ° νμμμ€.
- IBM Cloudμ λμ보λμ μ μν©λλ€. μ ν리μΌμ΄μ λ°°ν¬μ μ€μ νλ Region, Organization λ° Spaceλ₯Ό μ¬λ°λ₯΄κ² μ νν©λλ€.
- μλΉμ€ λͺ©λ‘μμ conversation-serviceλ₯Ό μ νν©λλ€.
Launch Tool
λ²νΌμ λλ¬ Conversation Toolμ μ€νν©λλ€.
Conversation Toolμμ μΊλ¦°λλ΄ μν¬μ€νμ΄μ€λ₯Ό μ€νν©λλ€.
μΊλ¦°λλ΄ μν¬μ€νμ΄μ€μμ Intents
νμ μ νν©λλ€. Create new
λ²νΌμΌλ‘ μλ‘μ΄ μΈν
νΈλ₯Ό μμ±ν μ μμ΅λλ€. csvνμΌλ‘λΆν° Importνκ±°λ Exportν μλ μμ΅λλ€.
μΊλ¦°λλ΄μ schedule_add μΈν νΈλ₯Ό μΆκ°ν©λλ€.
- μ§κ΄μ μΌλ‘
μΌμ μΆκ°ν΄μ€
λΌκ³ λ§ν μλ μκ³ κ°μ μ μΌλ‘κΈμμΌμ μν μλ§€ν΄λ¨μ΄ λ¨μΉμ΄λ λ³ΌκΊΌμΌ
λΌκ³ λ§ν μλ μμ΅λλ€. - μΊλ¦°λ λ΄μ μ§κ΄μ μ΄λ κ°μ μ μ΄λ κ·Έ λ§μ λͺ©μ μ΄
μ€μΌμ€μ μΆκ°
λ΄μ§μ€μΌμ€μ κΈ°μ΅
μ΄λΌλ©΄ νλμ Intentλ‘ μ μν μ μμ΅λλ€.μ°½λ¬Έ μ’ λ«μμ€
μμ’ μΆ₯μ§ μμ?
λ μ ν λ€λ₯Έ μλ―Έμ΄μ§λ§ μν©μ λ°λΌμ κ°μ Intentκ° λ μλ μμ΅λλ€. - μΈν
νΈ μ΄λ¦μΌλ‘
schedule_add
λ₯Ό μ λ ₯ν©λλ€. μ΅μ 20κ° μ΄μμ μ¬μ©μ λ©μΈμ§ μμλ₯Ό μ λ ₯νμμμ€. - μμ : * λ΄μΌ μ 체λ λ―Έν μμ΄ * μΌμ μΆκ°ν΄μ€ * μ€μΌμ€ μΆκ° ν΄μ€ * ν μμΌμ νμ¬ μ¬λλ€μ΄λ λ±μ°κ° γ .γ * κΈμμΌ μ μ¬μ μ무λμ΄λ λ¨ΉκΈ°λ‘ νμ΄ * λ΄μΌμ μλ§, μλΉ λ μ§μμ μ λ λ¨ΉμκΊΌμΌ * λ€μ μ£Ό μμμΌ μΉκ΅¬λ μ½μ μλλ° μΆκ°μ’ * μ€λ μ λ μ μλ§λ μν λ³΄κΈ°λ‘ νμ΄ * λ€μμ£Ό ν μμΌμ λμ°½νκ° μ‘νλ€
- μ¬μ©μμ λ©μΈμ§λ μ€νκ° μμ μλ μκ³ λμ΄ μ°κΈ°, λ§μΆ€λ² λ±μ΄ μ ννμ§ μμ μλ μμ΅λλ€. μ΄λ¬ν κ²λ€μ΄ λͺ¨λ νμ΅λμ΄μΌ λ μ νν μ±λ΄μ΄ λ§λ€μ΄μ§ μ μμ΅λλ€.
μν¬μ€νμ΄μ€μμ Entities
νμ μ νν©λλ€. Create new
λ²νΌμΌλ‘ μλ‘μ΄ μν°ν°λ₯Ό μμ±ν μ μμ΅λλ€.
μ€μΌμ€μ μΆκ°ν λμ μ¬μ©νλ Entity μ€μμ μ₯μμ ν΄λΉνλ place μν°ν°λ₯Ό μμ±ν©λλ€.
- μν°ν° μ΄λ¦μΌλ‘
place
λ₯Ό μ λ ₯ν©λλ€. - λ κ°μ§ λ°©μμΌλ‘ μν°ν°λ₯Ό μ μν μ μμ΅λλ€.
- Value TypeμΌλ‘ Synonimsλ₯Ό μ ννλ©΄ ν΄λΉ μν°ν°λ₯Ό κ°λ¦¬ν€λ λ¨μ΄λ€μ μ λ ₯ν¨μΌλ‘μ¨ μν°ν°λ₯Ό μ μν μ μμ΅λλ€. μ΄ λ°©μμ λ§μ Value κ°κ³Ό Synonim κ°μ μΆκ° ν΄μΌ μ νλμλ μλΉμ€λ₯Ό μ 곡ν μ μμ§λ§ λ¨Έμ λ¬λ κΈ°λ°μ΄μ΄μ νμ μλͺ» μΆμΆλκ±°λ μΆμΆλμ§ μμ λμ μ¬νΈλ μ΄λμ ν΅ν κ΅μ λ° μΆκ°κ° κ°λ₯ν©λλ€.
- Value TypeμΌλ‘ Patternsλ₯Ό μ ννλ©΄ μ κ·μμ μ¬μ©νμ¬ μν°ν°λ₯Ό μ μν μ μμ΅λλ€. μ΄ λ°©μμ μ μ λ Έλ ₯μΌλ‘ λΉκ΅μ λ§μ μν°ν°λ₯Ό μΆμΆν μ μμ§λ§ λ£° κΈ°λ°μ μΆμΆ λ°©μμ΄κΈ°μ νΈλ μ΄λ λ° κ΅μ μ λΆκ°λ₯ν©λλ€.
- μ°λ¦¬κ° μ₯μλ₯Ό μ§μΉν λμ μμ£Ό μ¬μ©νλ ν¨ν΄μ
~μμ
μ λλ€. μ΄ ν¨ν΄μ μ κ·μμΌλ‘ μΆκ°ν©λλ€.- μ) μ΄λ² μ‘λ νλ κ°λ¨μμ νλ
- Valueμ
μ₯μ_ν¨ν΄
μ μ λ ₯νκ³ TypeμΌλ‘Patterns
λ₯Ό μ ν,Add patterns
λμ[κ°-ν£]+μμ
λ₯Ό μ λ ₯ν©λλ€.
- νμ§λ§
~μμ
ννμ νμ μ¬μ©νλ κ²μ μλλλ€. μμ£Ό μ¬μ©λ μ₯μλ₯Ό Synonims λ°©μμΌλ‘ μΆκ°ν΄ μ€λλ€.- μ) κ³ λ±νκ΅ λμ°½ μ‘λ ν κ°λ¨
- Valueμ
ν«νλ μ΄μ€
λ₯Ό μ λ ₯νκ³ TypeμΌλ‘Synonims
λ₯Ό μ ν,Add synonims
λμνλ
,ν©μ
,κ°λ¨
,μ΄νμ
,λͺ λ
λ±μ μ λ ₯ν©λλ€. - Valueμ
μμ£Ό κ°λ κ³³
μ μ λ ₯νκ³ TypeμΌλ‘Synonims
λ₯Ό μ ν,Add synonims
λμμ§
,νμ¬
λ±μ μ λ ₯ν©λλ€.
- μ€ν, μ€μλ§λ‘ μΈν λ¨μ΄λ μΆκ°νλ©΄ μ νλλ₯Ό λμΌ μ μμ΅λλ€.
μν¬μ€νμ΄μ€μμ Dialog
νμ μ νν©λλ€. Add node
λ²νΌμΌλ‘ μλ‘μ΄ λ
Έλλ₯Ό μμ±ν μ μμ΅λλ€. λ€μ΄μΌλ‘κ·Έλ μ¬μ©μκ° λ©μΈμ§λ₯Ό 보λμ λ, μ¬μ©μμ λ©μΈμ§λ‘λΆν° μΈν
νΈ λ° μν°ν°λ₯Ό μΆμΆν λ€μ μ±λ΄μ μλ΅μ μ€κ³νλ κ³Όμ μ
λλ€. μ΄ κ³Όμ μ λ£° κΈ°λ°μΌλ‘ μ΄λ£¨μ΄μ§λ©° ꡬμ±λ λ
Έλλ₯Ό μμμ μλλ‘, μΌμͺ½μμ μ€λ₯Έμͺ½μΌλ‘ νμνλ©΄μ 쑰건(If bot recognizes)μ΄ λ§μΌλ©΄ ν΄λΉ λ
Έλλ₯Ό μ€νν©λλ€.
shedule_add μΈν νΈμ λν΄ μλ΅νλ λ€μ΄μΌλ‘κ·Έλ₯Ό μμ±ν©λλ€.
-
Add node
λ²νΌμΌλ‘ μλ‘μ΄ λ Έλλ₯Ό μμ±ν©λλ€. -
If bot recognizes
μ #schedule_addλ₯Ό μ λ ₯ν©λλ€. (#μ μΈν νΈλ₯Ό κ°λ¦¬ν€λ prefixμ λλ€.) -
μ€μΌμ€μ μΆκ°ν λμ νμν κ°λ€μ μ¬μ©μλ‘λΆν° μ»κΈ° μν΄ Slotμ νμ±ν νλ λ¨κ³μ λλ€. Slotμ μ¬μ©νλ©΄ νμν κ°μ λͺ¨λ μ»μμ λμ ν΄λΉ λ Έλμ Responseλ₯Ό λ°νν©λλ€.
-
Then check for
μ Slotμ μ€μ ν©λλ€.-
μ΄ μ ν리μΌμ΄μ μμλ μ€μΌμ€μ μΆκ°ν λμ Contextλ‘λΆν° λ€μμ κ°μ μ μ₯νμ¬ μ¬μ©ν©λλ€.
νλ μ΄λ¦ νμ μ¬λΆ $startDate required $endDate optional $startTime optional $endTime optional $people required $place optional $action required -
μ¬λ‘―μ λ€μκ³Ό κ°μ΄ μ€μ νμμμ€. If not present, ask νλλ₯Ό μ λ ₯νλ©΄ νμ νλͺ©, μ λ ₯νμ§ μμΌλ©΄ μ ν νλͺ©μΌλ‘ ꡬλΆλ©λλ€.
Check for Save it as If not present, ask @sys-date $startDate μΈμ ν΄λΉ μΌμ μ΄ μμΌμΈμ? @sys-date $endDate @sys-time $startTime @sys-time $endTime @people_pattern.literal $people μ΄λ€ λΆκ³Ό λ§λμΈμ? @place.literal $place @action.literal $action λ νμ€ μμ μ΄μΈμ?
-
-
μΌλΆ μ¬λ‘―μ λν΄μ μ¬μ©μμκ² κ°μ λ¬Όμμ λ μν°ν°κ° μΆμΆλμ§ μλλΌλ μ¬μ©μ λ©μΈμ§ μ 체λ₯Ό μ¬μ©νμ¬ κ°μ μ μ₯νλλ‘ μ€μ νλ λ¨κ³μ λλ€.
- ν΄λΉ κΈ°λ₯μ μ€μ ν μ¬λ‘―μ peopleκ³Ό action μ
λλ€. λ μ¬λ‘―μ λν΄μ λ€μμ κ³Όμ μ λ°λ³΅νμμμ€.
-
μ€μ νλ €λ μ¬λ‘― μ°μΈ‘μ μμΉν μ€μ λ²νΌμ ν΄λ¦ν©λλ€.
-
νμ μ°μΈ‘ μλ¨μ μμΉν λ©λ΄ μμ΄μ½μ μ ννμ¬
Enable conditional responses
λ₯Ό μ νν©λλ€. -
μ€ν¬λ‘€μ λ΄λ € μν°ν°κ° μΆμΆλ κ²½μ°μ μΆμΆλμ§ μμ κ²½μ°μ λλμ΄ μλ΅μ μ€μ ν©λλ€.
Found
μIf bot reconizes
λμtrue
λ₯Ό μ λ ₯ν©λλ€.Respond with
λμ\<? $people ?\> λ§λμλκ΅°μ.
λ₯Ό μ λ ₯ν©λλ€. (aciton μ¬λ‘―μ μ€μ ν λμλ\<? $action ?\> ν μμ μ΄μκ΅°μ.
λ₯Ό μ λ ₯ν©λλ€.)Not found
μIf bot recognizes
λμtrue
λ₯Ό μ λ ₯νκ³ μ°μΈ‘μ μμΉν μ€μ μμ΄μ½μ ν΄λ¦ν©λλ€.Then respond with:
μ μ°μΈ‘μ μμΉν λ©λ΄ λ²νΌμ ν΄λ¦νκ³Open JSON editor
λ₯Ό μ νν©λλ€. λ€μμ JSONμ μ λ ₯νμ¬ μ¬μ©μμ λ©μΈμ§ μ 체λ₯Ό 컨ν μ€νΈμ μ μ₯ν©λλ€.- people
{ "conditions": "true", "output": { "text": { "values": [ "<? input.text ?> λ§λμλ κ΅°μ." ], "selection_policy": "sequential" } }, "context": { "people": "<? input.text ?>" } }
- action
{ "conditions": "true", "output": { "text": { "values": [ "<? input.text ?> νμ€ μμ μ΄μκ΅°μ." ], "selection_policy": "sequential" } }, "context": { "action": "<? input.text ?>" } }
- people
-
- ν΄λΉ κΈ°λ₯μ μ€μ ν μ¬λ‘―μ peopleκ³Ό action μ
λλ€. λ μ¬λ‘―μ λν΄μ λ€μμ κ³Όμ μ λ°λ³΅νμμμ€.
-
μ΄μ μ 체 λ Έλμ μλ΅μ μ€κ³ν©λλ€. μ΄ μλ΅μ νμν Slotμ κ°μ λͺ¨λ μ»μμ λμ 리ν΄λ©λλ€. λ Έλ μ€μ νλ©΄μμ μ€ν¬λ‘€μ λ΄λ €
Then respond with:
λ‘ κ°μμμ€. μ°μΈ‘μ μμΉν λ©λ΄ μμ΄μ½μ ν΄λ¦ν©λλ€. λ€μ JSONμ μ λ ₯νμμμ€.{ "context": { "command": "add_event" }, "output": { "text": { "values": [ "$people $place $action μ½μ μΌμ μΊλ¦°λμ μΆκ°νκ² μ΅λλ€~" ], "selection_policy": "sequential" } } }
-
And finally
λμWait for user input
μΌλ‘ μ μ§νμμμ€.
λ Έλ νλμ μμ±μ λ§μ³€μ΅λλ€. μ 체 λ Έλμ μλ΅μμ contextμ command κ°μΌλ‘ add_eventλ₯Ό μ μ₯νμ΅λλ€. μ ν리μΌμ΄μ μ μ΄ λͺ λ Ήμ νμΈνκ³ μ€μ μΊλ¦°λμ μ΄λ²€νΈλ₯Ό μ μ₯ν©λλ€. μ ν리μΌμ΄μ μ΄ $data.add_event_resultμ κ²°κ³Όλ₯Ό μ μ₯λ μ±λ‘ νμ λ Έλλ₯Ό νΈμΆν©λλ€. μ΄μ νμ λ Έλλ₯Ό μμ±ν©λλ€.
- μ΄μ λ¨κ³μμ μμ±ν λ
Έλμ λ©λ΄ λ²νΌμ λλ¬
Add child nodeλ₯Ό
ν΄λ¦ν©λλ€. - μμ λ
Έλμ
If bot recognizes:
λμ$data and $data.add_event_result
λ₯Ό μ λ ₯ν©λλ€. Then respond with:
λμ μ°μΈ‘μ μμΉν λ©λ΄ μμ΄μ½μ λλ¬Open JSON editor
λ₯Ό ν΄λ¦ν©λλ€.- λ€μμ JSONμ μ
λ ₯νμμμ€.
{ "context": { "command": "finish" }, "output": { "text": { "values": [ "μΌμ μ΄ μΆκ°λμ΄μ ~ <? $data.add_event_result ?>" ], "selection_policy": "sequential" } } }
And finally
λμWait for user input
μΌλ‘ μ μ§νμμμ€.
λ Έλ μμ±μ΄ μλ£λμμ΅λλ€.
Conversation Toolμ μ°μΈ‘ μλ¨μ μμΉν λ©μΈμ§ μμ΄μ½μ ν΄λ¦νλ©΄ μμ±μ€μΈ μν¬μ€νμ΄μ€λ₯Ό ν μ€νΈ ν μ μμ΅λλ€.
μ΄μ λ¨κ³μμ λ°©λ¬Ένλ μ± urlμ λ°©λ¬Ένμ¬ ν μ€νΈ νμμμ€. μΊλ¦°λλ΄μκ² λ€μμ μ§λ¬Έμ λμ Έλ³΄μΈμ.
- μ€λ λνμ§? (μΆμ² κΈ°λ₯μ μ€λ μλ¬΄λ° μΌμ λ μλ κ²½μ°μλ§ μ€νλ©λλ€. μ΄ κΈ°λ₯μ ν μ€νΈ νλ €λ©΄ κ΅¬κΈ μΊλ¦°λμ μ€λ μΌμ μ λͺ¨λ μμ νμ ν μ§ννμμμ€.)
- μ€λ μΌμ μλ €μ€
- μ€λ μ λ μ μλ§λ μ§μμ νμΌν νκΈ°λ‘ νμ΄
- μ€λ μΌμ μλ €μ€
μ΄ μ ν리μΌμ΄μ μ μ΄λ―Έ μΉ΄μΉ΄μ€ν‘κ³Ό μ°κ²°νκΈ° μν APIλ₯Ό μ 곡νκ³ μμ΅λλ€. μΉ΄μΉ΄μ€ν‘ νλ¬μ€μΉκ΅¬ κ΄λ¦¬μμΌν°μμ μ€μ κ³Όμ λ§ μ§ννλ©΄ λ©λλ€.
- νλ¬μ€μΉκ΅¬ κ΄λ¦¬μμΌν°μμ μΊλ¦°λλ΄ μ©μΌλ‘ μμ±ν μΉκ΅¬λ₯Ό μ νν©λλ€.
- μ’μΈ‘ λ©λ΄μμ
μ€λ§νΈμ±ν
μ μ νν©λλ€. - APIνμ
μ€μ νκΈ°
λ²νΌμ ν΄λ¦ν©λλ€. - μ± URLμ
{μ ν리μΌμ΄μ λ§ν¬}/api/kakao
λ₯Ό μ λ ₯νκ³API ν μ€νΈ
λ²νΌμ ν΄λ¦ν©λλ€. - λλ¨Έμ§ νλͺ©μ μ μ νκ² μ λ ₯νμμμ€.
APIν μ μ₯νκΈ°
λ²νΌμ ν΄λ¦νμ¬ μ μ₯ν©λλ€.- APIνμ
μμνκΈ°
λ²νΌμ ν΄λ¦ν©λλ€.
μ΄μ μΉ΄μΉ΄μ€ν‘ λ©μ μ λ‘ μΊλ¦°λλ΄μ ν μ€νΈν μ μμ΅λλ€.
- [μ£Όμ] : μμ±ν νλ¬μ€μΉκ΅¬λ₯Ό μΉ΄μΉ΄μ€ν‘ λ©μ μ μμ κ²μνμ¬ μ°ΎμΌλ €λ©΄
κ΄λ¦¬ > μμΈμ€μ > 곡κ°μ€μ
μμν 곡κ°
λ°κ²μ νμ©
μ νμ±ν νμμμ€. - [μ£Όμ] : ꡬκΈμ μΊλ¦°λ μ κ·Ό κΆν νμ©μ μν λ§ν¬λ μΉ΄μΉ΄μ€ν‘μ embedded webviewμμμ μ€νμ νμ©νμ§ μμ΅λλ€. λ§ν¬λ₯Ό 볡μ¬νμ¬ λ³λμ λΈλΌμ°μ μμ μ μνμμμ€. (λν λͺ¨λ°μΌ νλ λ€λ¦¬ νμ§ μμΌλ ν΄λν°μ κ°λ‘λͺ¨λλ‘ λκ³ μ¬μ©νμμμ€.)
μμ§ μ§μλμ§ μμΌλ©° μ΄λ² μ€μ΅μμ μ§ννμ§ μμ΅λλ€.
This sample code is licensed under Apache 2.0. Full license text is available in LICENSE.
See CONTRIBUTING.
Find more open source projects on the IBM Github Page.