์์ด์ ํธ์ ๋ํ ์ฐจ๋ก์ธ ๊ฒฝ์ฐ ์์ด์ ํธ๋ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ, ์ ๋ณด ์ฟผ๋ฆฌ ๋๋ ์ธ์ ์ข ๋ฃ๋ฅผ ํตํด ์ต์ข ์ฌ์ฉ์์๊ฒ ์๋ตํด์ผ ํฉ๋๋ค. ๋ํ ์์ด์ ํธ๊ฐ ์๋น์ค์ ๋ฌธ์ํ์ฌ ๋์ ์๋ต์ ์์ฑํ๊ฑฐ๋ ์ฐจ๋ก๋ฅผ ์ํด ์กฐ์น๋ฅผ ์ทจํด์ผ ํ ์๋ ์์ต๋๋ค. fulfillment๋ ์ด ๋ชจ๋ ์์ ์ ์๋ฃํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
fulfillment์๋ ๋ค์ ์ค ํ๋๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
- ์ ์ ์๋ต ๋ฉ์์ง
- ์นํ ์ ๋์ ์๋ต ๋๋ ์กฐ์น๋ฅผ ์ทจํด ๋ฌ๋ผ๋ ์์ฒญ
- ๋งค๊ฐ๋ณ์ ๊ฐ์ ์ค์ ํ๊ฑฐ๋ ์ฌ์ ์ํ ๋งค๊ฐ๋ณ์ ์ฌ์ ์ค์
์์ด์ ํธ์ ์ฐจ๋ก์๋ ์ฌ๋ฌ ๊ฐ์ fulfillment๋ฅผ ํธ์ถํ ์ ์์ผ๋ฉฐ(ํธ์ถํ๋ ๊ฒ์ด ๋ฐ๋์งํ ๊ฒฝ์ฐ๋ ์์), ๊ฐ fulfillment๋ ์๋ต ๋ฉ์์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๋ํํ ์์ด์ ํธ(Dialogflow CX)๋ ์ด๋ฌํ ์๋ต์ ์๋ต ํ์ ์ ์งํฉ๋๋ค. ์์ด์ ํธ ์ฐจ๋ก๊ฐ ๋๋๋ฉด ๋ํํ ์์ด์ ํธ(Dialogflow CX)๋ ์์๊ฐ ์ง์ ๋ ์๋ต์ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ณด๋ ๋๋ค.
fulfillment ์ฌ์ฉ ์ฌ๋ก
Fulfillment๋ ์๋ต ๋ฉ์์ง๊ฐ ํ์ํ ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉ๋ฉ๋๋ค.
- ํ์ด์ง ํญ๋ชฉ fulfillment
- ๊ฒฝ๋ก
- ์ด๋ฒคํธ ํธ๋ค๋ฌ
- ์์์ฉ ์ด๊ธฐ ํ๋กฌํํธ
- ์์์ ๋ํ ํธ๋ค๋ฌ ์ฌ์์ฒญ
์ฝ์์์ ์ด๋ฌํ ์ฌ์ฉ ์ฌ๋ก๋ง๋ค fulfillment ์์ ํจ๋์ ์ฝ๋๋ค.
์๋ด์ฌ ์๋ต (๋ํ์์ ์ต์ )
์์ด์ ํธ ์๋ต ๋ฉ์์ง๋ ์ค๊ณ ์ ์ ์ํ ์์ด์ ํธ ์๋ต์ ๋๋ค. fulfillment๋ฅผ ๋ง๋ค ๋ ์ ์ํฉ๋๋ค. ๋ฐํ์์ ์ด๋ฌํ ์๋ต์ ์๋ต ํ์ ์ถ๊ฐ๋ฉ๋๋ค.
์๋ต ๋ฉ์์ง์ ์ ํ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ผ๋ฉฐ ๋ค์ ํ์ ์น์ ์์ ์ค๋ช ํฉ๋๋ค. ์ฝ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฒ๋ฆฌ ํจ๋์ ์ด๊ธฐ ์๋ด์ฌ ๋ํ ์นด๋๊ฐ ์์ง๋ง + ๋ํ ์๋ต ์ถ๊ฐ๋ฅผ ํด๋ฆญํ์ฌ ๋ค๋ฅธ ์๋ต ๋ฉ์์ง ์ ํ์ ์นด๋๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ ์ ํ ์คํธ ์๋ต
์ ์ ํ ์คํธ ์๋ต ๋ฉ์์ง๋ ์ต์ข ์ฌ์ฉ์์๊ฒ ํ ์คํธ ๋ํ์์๋ฅผ ๋ณด๋ ๋๋ค. ์ธํ ํธ ๊ฐ์ง API ํธ์ถ์ด๋ ํตํฉ ํธ์ถ์์ ์์ฑ ํฉ์ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ํ ์คํธ๋ ์ค๋์ค ์ฝํ ์ธ ๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์ ๊ณต๋๋ ํ ์คํธ๋ ์ ํ์ ์ผ๋ก ์์ฑ ํฉ์ฑ ๋งํฌ์ ์ธ์ด (SSML)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ ํ ์คํธ ๋ด์ ํ ์คํธ ์๋ต ์นด๋ ์ฌ๋ฌ ๊ฐ์ ํ ์คํธ ์๋ต ์ฌ๋ฌ ๊ฐ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์นด๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ํ๋ฉด ๋ฐํ์์ ๋จ์ผ ์๋ต์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ์นด๋ ๋ด์ ์๋ต์ ์ฌ๋ฌ ๊ฐ ์ ์ํ๋ฉด ๋ฐํ์์ ์นด๋์ ๋ฉ์์ง ์ค ํ๋๊ฐ ๋ฌด์์๋ก ์ ํ๋ฉ๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฉ์์ง์๋ ๋งค๊ฐ๋ณ์ ์ฐธ์กฐ ๋ฐ ์ธ๋ผ์ธ ์์คํ ํจ์๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
์ปค์คํ ํ์ด๋ก๋
์ผ๋ถ ํตํฉ์์๋ ๋ค์ํ ์๋ต์ ์ฒ๋ฆฌํ๋๋ก ์ปค์คํ ํ์ด๋ก๋ ์๋ต์ ์ง์ํฉ๋๋ค. ์ด๋ฌํ ์ปค์คํ ํ์ด๋ก๋๋ ํตํฉ ๋ฌธ์์ ์ ์๋ JSON ํ์์ผ๋ก ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. ์์๋ Dialogflow CX Messenger ์ปค์คํ ํ์ด๋ก๋ ํ์์ ์ฐธ์กฐํ์ธ์.
์ปค์คํ ํ์ด๋ก๋ JSON์ ๋งค๊ฐ๋ณ์ ์ฐธ์กฐ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. JSON ๋ฌธ์์ด ๊ฐ์ผ๋ก ์ทจ๊ธ๋์ด์ผ ํ๋ฏ๋ก ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{ "someField": "$session.params.date" }
๋ํ ๊ฐ๋ฐ ์ค์ธ ํตํฉ์ ์ปค์คํ ํ์ด๋ก๋๋ฅผ ๋ณด๋ผ ์๋ ์์ต๋๋ค. ๋ํํ ์์ด์ ํธ (Dialogflow CX)์์ ์ฒ๋ฆฌ๋์ง ์์ผ๋ฏ๋ก ์์ฒด ๋น์ฆ๋์ค ๋ก์ง์์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
๋ค์์ ์ปค์คํ ํ์ด๋ก๋ ํ ํ๋ฆฟ ์น์ ๋ ์ฐธ๊ณ ํ์ธ์.
์ค์๊ฐ์ผ๋ก ์๋ด์ฌ์๊ฒ ์ ๋ฌ
์ด ์๋ต์ ์ธํ ํธ ์ธ์ API ํธ์ถ์์๊ฒ ๋ํ๊ฐ ์๋ด์ฌ์๊ฒ ์ ๋ฌ๋์์์ ์๋ฆฝ๋๋ค. ๋ํํ ์์ด์ ํธ (Dialogflow CX)๋ ์ด ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธก์ ์ฉ์ผ๋ก ์ ๋ฌ๋ ๋ํ๋ฅผ ์๋ณํ๋ฉฐ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ธ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ์์คํ ์ด๋ ํตํฉ์ ์ด ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ํ๋ฅผ ์ ๋ฌํ๋ ๋ฐ ํ์ํ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค. ๋ํํ ์์ด์ ํธ (Dialogflow CX)๋ ์ด ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ฉํ์ง ์์ผ๋ฏ๋ก ์์คํ ์ ๋ง๋ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ํ ์ฑ๊ณต ๋ฉํ๋ฐ์ดํฐ
์ด ์๋ต์ ๋ํํ ์์ด์ ํธ(Dialogflow CX)์์ ๋ํ๊ฐ ์ฑ๊ณตํ์์ ์ธํ ํธ ์ธ์ API ํธ์ถ์์ ์๋ฆฝ๋๋ค. ๋ํํ ์์ด์ ํธ (Dialogflow CX)๋ ์ด ์ ํธ๋ง ์ฌ์ฉํ์ฌ ์ธก์ ์ฉ์ผ๋ก ์ฑ๊ณตํ ๋ํ๋ฅผ ์๋ณํ๋ฉฐ ์ด๋ ํ ๋ฐฉ์์ผ๋ก๋ ์ธ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ์์คํ ์ด๋ ํตํฉ์ ์ด ์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค. ๋ํํ ์์ด์ ํธ (Dialogflow CX)๋ ์ด ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ฉํ์ง ์์ผ๋ฏ๋ก ์์คํ ์ ๋ง๋ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
์ฌ์ ๋ น์๋ ์ค๋์ค ์ฌ์
์ด ์๋ต์ ์ด ๊ธฐ๋ฅ์ ์ง์ํ๋ ํตํฉ์ ์ค๋์ค ํ์ผ์ ์ฌ์ํฉ๋๋ค.
์ค๋์ค ํ์ผ ํ์ ์๊ตฌ์ฌํญ์ ํตํฉ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Dialogflow CX ์ ํ ๊ฒ์ดํธ์จ์ด์ ์๊ตฌ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
ํํธ๋ ์ ํ ํตํฉ์ ๊ฒฝ์ฐ ํํธ๋๊ฐ ์ค๋์ค ํ์ผ์ URL์ ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค. Cloud Storage์ ๊ณต๊ฐ ํ์ผ๊ณผ ๊ฐ์ด ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ URL์ ํํธ๋๊ฐ ํญ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ํํธ๋๋ ์ค๋์ค ํ์ผ์ ๋ํ ์ ํ๋ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํํธ๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ถ๋ ฅ ์ค๋์ค ํ ์คํธ
์ด ์๋ต์ ํ ์คํธ ์๋ต๊ณผ ๋น์ทํ์ง๋ง ์์ฑ ํฉ์ฑ์๋ง ์ ์ฉ๋ฉ๋๋ค. ์์ด์ ํธ์์ ํ ์คํธ ๋ฐ ์์ฑ ์ธ์ ์ ๋ชจ๋ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ ๊ณ ์ ํ ํ ์คํธ ๋ฐ ์ถ๋ ฅ ์ค๋์ค ํ ์คํธ ์๋ต์ ์ฌ์ฉํ์ฌ ์์ฑ์ ๋ํ ์๋ก ๋ค๋ฅธ ํ ์คํธ ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ถ๋ ฅ ์ค๋์ค ํ ์คํธ๊ฐ ์์ฑ ์ธ์ ์ ์ ๊ณต๋๋ฉด ์ผ๋ฐ ํ ์คํธ ์๋ต์ด ๋ฌด์๋ฉ๋๋ค.
์๋ด์ฌ๊ฐ ํ ์คํธ ๋ฐ ์์ฑ ์ธ์ ์ ๋ชจ๋ ์ฒ๋ฆฌํ๊ณ ๋์ผํ ์๋ต ๋ฉ์์ง๊ฐ ํ์ํ ๊ฒฝ์ฐ ํ ์คํธ ๋ฐ ์์ฑ ์ธ์ ๋ชจ๋์ ํ ์คํธ ์๋ต์ ์ฌ์ฉํ์ธ์.
์ถ๋ ฅ ์ค๋์ค ํ ์คํธ๋ ํ ์คํธ ์๋ต๊ณผ ๋น์ทํ๊ฒ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ถ๋ ฅ ์ค๋์ค ํ ์คํธ ์๋ต์ด ํ ์คํธ์ SSML์ ์กฐํฉ์ธ ๊ฒฝ์ฐ ์ฐ๊ฒฐ๋ ๊ฒฐ๊ณผ๋ SSML๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์์ด์ ํธ ์ค๊ณ์๋ ํ ์คํธ ๋๋ SSML์ ์ผ๊ด๋๊ฒ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์กฐ๊ฑด๋ถ ์๋ต
์ด ์๋ต ์ ํ์ ์กฐ๊ฑด๋ถ ์๋ต์ ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
if [condition] [response] elif [condition] [response] elif [condition] [response] else [response] endif
๊ฐ ํญ๋ชฉ์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[condition]
์ ๊ฒฝ๋ก ์กฐ๊ฑด์ ์ฌ์ฉ๋๋ ํ์๊ณผ ๋์ผํฉ๋๋ค.[response]
๋ ํ ์คํธ ์๋ต์ ๋๋ค.elif
๋ฐelse
๋ธ๋ก์ ์ ํ์ฌํญ์ ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
if $session.params.user-age >= 21 Ok, you may enter. else Sorry, you cannot enter. endif
[condition]
๋ฐ [response]
๋ชจ๋ ์ธ๋ผ์ธ ์์คํ
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ํ ์ค์ ๋์ ๊ฐ์ ์์ฑํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ์์คํ
ํจ์ ๋ฐ ๊ฒฝ๋ก ์กฐ๊ฑด์ ์ฐธ์กฐ๋ฅผ ํ์ธํ์ธ์. [condition]
์ fulfillment ์์ ์ ์ธ์
์ํ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ธ๋ฉ๋๋ค. [response]
์ ์ธ์
์ํ๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ fulfillment ์ข
๋ฃ ์ ์
๋ฐ์ดํธ๋ ์ธ์
์ํ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ธ๋ฉ๋๋ค.
๋ค๊ตญ์ด ์์ด์ ํธ์ ๊ฒฝ์ฐ [condition]
์ ๋ชจ๋ ์ธ์ด์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐ๋ฉด [response]
๋ ์ธ์ด๋ณ๋ก ๋ค๋ฆ
๋๋ค. ์ฝ์์์ ํ ์ธ์ด์ [condition]
์ ๋ณ๊ฒฝํ๋ฉด ์ด ๋ถ๋ถ์ ๋ชจ๋ ์์ด์ ํธ์ ์ธ์ด๋ก ์
๋ฐ์ดํธ๋๊ณ ์ ์กฐ๊ฑด์ด ๋๊ธฐ ๋๋ฌธ์ [condition]
์
๋ฐ์ดํธ ์ ์ ํํ ์ธ์ด ์ด์ธ์ ๋ชจ๋ ์ธ์ด์ ๋ํด [response]
๊ฐ ์ญ์ ๋ฉ๋๋ค.
์ ํ ํตํ ์ ๋ฌ
์ผ๋ถ ์ ํ ํตํฉ์ ๊ฒฝ์ฐ ํตํ ์ ๋ฌ์ฉ ๋ฏธ๊ตญ ์ ํ๋ฒํธ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ๋ฐํ์ ์ ๋ํํ ์์ด์ ํธ(Dialogflow CX) ๊ฐ์ ์์ด์ ํธ๊ฐ ํตํ ์ ๋ฌ๋ก fulfillment๋ฅผ ํธ์ถํ๋ฉด ํตํ๊ฐ ์ง์ ๋ ๋ฒํธ๋ก ์ ๋ฌ๋๊ณ ๊ฐ์ ์์ด์ ํธ ์ฒ๋ฆฌ๊ฐ ์ ์ง๋ฉ๋๋ค.
๋ฐ์ดํฐ ์คํ ์ด ๋๊ตฌ ์๋ต
์ด ์๋ต ์ ํ์ ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ ์คํ ์ด ๋๊ตฌ์์ ๋ฐํ๋ ์๋ด์ฌ ์๋ต์ ๊ตฌ์ฑํฉ๋๋ค. ์ด ์ฒ๋ฆฌ์์ ๋ฐ์ดํฐ ์คํ ์ด ๋๊ตฌ๋ฅผ ๊ตฌ์ฑํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ์คํ ์ด ๋๊ตฌ ์๋ต ์นด๋๊ฐ ์๋์ผ๋ก ์ฑ์์ง๋๋ค.
- ์ถ์ฒ ๋งํฌ: ์๋ต ํ ์ฌ์ฉ์์๊ฒ ๋ฐํํ ์ต๋ ์ธ์ฉ ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ์ธ์ฉ์ ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ๋ณด ์์ค์ ๋ํ ๋งํฌ๋ก, ๋ฒํผ์ผ๋ก ๋ ๋๋ง๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค.
- ์ธ๋ผ์ธ ์ธ์ฉ: ์ด ํ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ต ๋ค์ ๋์ด๋๋ ๋งํฌ ๋์ ๋ฌธ์ฅ๋น ๋ฐํ๋๋ ์ธ๋ผ์ธ ์ธ์ฉ์ ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- ์์ฑํ ๋์ฒด: ์ด ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๋ฉด ๋ฐ์ดํฐ ์คํ ์ด์์ ๋น ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ ์์ด์ ํธ๊ฐ AI ์์ฑ ์๋ต์ ์๋ํ๋๋ก ์ง์ํฉ๋๋ค. ์คํจํ๋ฉด ์ ์ ์๋ต์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ ์ ์๋ต: ๋ง์ง๋ง ์ ๋ ฅ๋์ ์ ์ ํ ์คํธ ์๋ต์ ์ ๋ ฅํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฉ์์ง๋ ์ฌ์ฉ์์๊ฒ ๊ทธ๋๋ก ์ ์ก๋ฉ๋๋ค.
์ฑ๋๋ณ ์๋ต ๋ฉ์์ง
fulfillment๋ฅผ ์ ์ํ ๋ ์ฑ๋๋ณ ์๋ต ๋ฉ์์ง๋ฅผ ๋ง๋ค๋ฉด ๋ฌธ์ ์ฑํ , ์์ฑ, SMS, ์ฑ๋์ ์ง์ํ๋ ํน์ ํ ํตํฉ ๋ฑ์ ๋ํ ํ๊ฒํ ๋ ์๋ต์ ๋ง๋ค ์ ์์ต๋๋ค. ์ฑ๋์ ํน์ ๋์ง ์์ ์๋ต ๋ฉ์์ง๋ฅผ ๊ธฐ๋ณธ ์๋ต ๋ฉ์์ง๋ผ๊ณ ํฉ๋๋ค.
๋ฐํ์ ์ ์ธํ ํธ ์ธ์ ์์ฒญ์์ ์ฑ๋์ ์ง์ ํ๋ฉด ๋ํํ ์์ด์ ํธ(Dialogflow CX)๋ ๊ธฐ๋ณธ ์๋ต ๋ฉ์์ง ๋๋ ์ฑ๋๋ณ ์๋ต ๋ฉ์์ง๋ฅผ ์ ํํฉ๋๋ค. ์ฑ๋๋ณ ์๋ต ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ๊ธฐ๋ณธ ์๋ต ๋ฉ์์ง๋ฅผ ์ ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ธฐ๋ณธ ์๋ต ๋ฉ์์ง๋ ์์คํ ์์ ์ ํจํ ์ฑ๋์ ์ ๊ณตํ์ง ๋ชปํ ๋ ๋์ฒด ์ญํ ์ ํ ์ ์์ต๋๋ค.
์ฑ๋ ์ด๋ฆ์ ์ํ๋ ํ ์คํธ๋ก ์ค์ ํ ์ ์๋ ์ปค์คํ ํ๋์ ๋๋ค. ๋ฐํ์ ํธ์ถ์ ๋ํํ ์์ด์ ํธ(Dialogflow CX) API๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ํ๋ ์ฑ๋ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ธฐ์กด ํตํฉ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ํตํฉ์์ ์ธ์ํ๋ ์ฑ๋ ์ด๋ฆ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ค๊ณ ์ ์ฑ๋๋ณ ์๋ต ๋ฉ์์ง ์ค์
Console์ ์ฌ์ฉํ ๋ ์ฒ๋ฆฌ์ ๋ํ ์ฑ๋๋ณ ์๋ต ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ๊ธฐ๋ณธ ์๋ต ๋ฉ์์ง๋ฅผ ์ถ๊ฐํ ํ ์ฑ๋ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฑ๋๋ณ ์๋ต ๋ฉ์์ง๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ฑ๋ ์ถ๊ฐ๋ฅผ ๋ค์ ํด๋ฆญํ์ฌ ๋ค๋ฅธ ์ฑ๋์ ์ถ๊ฐํฉ๋๋ค.
API๋ฅผ ์ฌ์ฉํ ๋ fulfillment์ ๋ํ ์ฑ๋๋ณ ์๋ต ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ๊ฐ ์๋ต ๋ฉ์์ง์
Fulfillment.messages[i].channel
ํ๋๋ฅผ ์ํ๋ ์ฑ๋๋ก ์ค์ ํฉ๋๋ค. ์ด ํ๋๊ฐ ์ค์ ๋์ง ์์ผ๋ฉด ์๋ต์ ๊ธฐ๋ณธ ์๋ต ๋ฉ์์ง์ ๋๋ค.
๋ฐํ์ ์ ์ฑ๋๋ณ ์๋ต ๋ฉ์์ง ํ์ฉ
์ฑ๋๋ณ ์๋ต ๋ฉ์์ง๋ฅผ ์์ ํ๋ ค๋ฉด ์ธํ
ํธ ์ธ์ ์์ฒญ ๋ฉ์์ง์ ์ฑ๋์ ์ง์ ํด์ผ ํฉ๋๋ค.
Sessions
์ ํ์ detectIntent
๋ฉ์๋์์ queryParams.channel
ํ๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ธ์ ์ฐธ์กฐ์ ํ๋กํ ์ฝ ๋ฐ ๋ฒ์ ์ ์ ํํฉ๋๋ค.
ํ๋กํ ์ฝ | V3 | V3beta1 |
---|---|---|
REST | ์ธ์ ๋ฆฌ์์ค | ์ธ์ ๋ฆฌ์์ค |
RPC | ์ธ์ ์ธํฐํ์ด์ค | ์ธ์ ์ธํฐํ์ด์ค |
C++ | SessionsClient | ํด๋น ์ฌํญ ์์ |
C# | SessionsClient | ํด๋น ์ฌํญ ์์ |
Go | SessionsClient | ํด๋น ์ฌํญ ์์ |
์๋ฐ | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | ์์ | ํด๋น ์ฌํญ ์์ |
Python | SessionsClient | SessionsClient |
Ruby | ์์ | ํด๋น ์ฌํญ ์์ |
์์ฒญ์์ ์ฑ๋์ด ์ ์๋์ด ์์ง ์๊ฑฐ๋ fulfillment์์ ์ผ์นํ๋ ์ฑ๋์ด ๋ฐ๊ฒฌ๋์ง ์์ผ๋ฉด ๋ํํ ์์ด์ ํธ(Dialogflow CX)์์ ๊ธฐ๋ณธ ์๋ต ๋ฉ์์ง๋ฅผ ๋ฐํํฉ๋๋ค.
์ปค์คํ ํ์ด๋ก๋ ํ ํ๋ฆฟ
์ปค์คํ ํ์ด๋ก๋๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ปค์คํ ํ์ด๋ก๋ ํ ํ๋ฆฟ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ง์ถค ํ์ด๋ก๋๋ ํฌ๊ณ ๋ณต์กํ ์ ์์ผ๋ฏ๋ก ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ฉด ์๋ด์ฌ ์์ฑ ํ๋ก์ธ์ค๋ฅผ ๋ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์์ด์ ํธ ์ค์ ์์ ์ด๋ฌํ ํ ํ๋ฆฟ์ ์ ๊ณตํ๋ฉด ์์ด์ ํธ์ ์ฒ๋ฆฌ๋ฅผ ๋ง๋ค ๋๋ง๋ค ์ ํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด '์' ๋ฐ '์๋์' ๋ฒํผ์ JSON ํ์ด๋ก๋๋ ๋ง์ถค ํ์ด๋ก๋ ํ ํ๋ฆฟ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฒํผ์ด ํ์ํ fulfillment๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ fulfillment๋ฅผ ๋ง๋ค ๋ ํ ํ๋ฆฟ๋ง ์ ํํ๋ฉด ๋ฉ๋๋ค.
์ฒ๋ฆฌ ์ปค์คํ ํ์ด๋ก๋์ ํ ํ๋ฆฟ์ ์ ํํ๋ฉด ํ ํ๋ฆฟ์ ์ฝํ ์ธ ๊ฐ ํ์ด๋ก๋์ ์ฝ์ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์์ ๋ฐ๋ผ ํ์ด๋ก๋๋ฅผ ์์ ํ๋ฉด ๋ฉ๋๋ค.
ํ ํ๋ฆฟ์ ๋ณ๊ฒฝํด๋ ๋ณ๊ฒฝ์ฌํญ์ด ์ฐธ์กฐ๋ ๋ชจ๋ ์ฒ๋ฆฌ ํ์ด๋ก๋์ ์๋์ผ๋ก ์ ์ฉ๋์ง๋ ์์ต๋๋ค.
์ปค์คํ ํ์ด๋ก๋ ํ ํ๋ฆฟ์ ๋ง๋ค๋ ค๋ฉด ์์ด์ ํธ ์ผ๋ฐ ์ค์ ์ ์ฐธ๊ณ ํ์ธ์.
fulfillment๋ฅผ ๋ง๋ค ๋ ์ปค์คํ ํ์ด๋ก๋ ํ ํ๋ฆฟ์ ์ ํํ๋ ค๋ฉด fulfillment ์ปค์คํ ํ์ด๋ก๋๋ฅผ ๋ง๋ค ๋ ํ ํ๋ฆฟ ์ ํ์ ํด๋ฆญํฉ๋๋ค.
์นํ ํธ์ถ
fulfillment๊ฐ ํธ์ถ๋๊ณ fulfillment์ ์นํ ์ด ์์ผ๋ฉด ์์ด์ ํธ๊ฐ ์นํ ์ ์์ฒญ์ ๋ณด๋ ๋๋ค. ์นํ ์ ์๋น์ค์ ํ์ํ ๋ชจ๋ ์์ ์ ์ํํ๊ณ , ๋์ ์๋ต ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๊ณ , ๋งค๊ฐ๋ณ์ ๊ฐ์ ์ฌ์ ์ํ๊ณ , ํ์ฌ ํ์ด์ง๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ค์์ fulfillment์ ์นํ ์ค์ ์ ์ค๋ช ํฉ๋๋ค.
์ฉ์ด | ์ ์ |
---|---|
์นํ ์ฌ์ฉ ์ค์ | ์ด๋ ๊ฒ ํ๋ฉด fulfillment์ ์นํ ์ด ์ฌ์ฉ ์ค์ ๋ฉ๋๋ค. |
์นํ | ์นํ ๋ฆฌ์์ค๋ฅผ ์ ํํฉ๋๋ค. |
ํ๊ทธ | ์ฌ๊ธฐ์ ์ ๊ณตํ๋ ํ
์คํธ ํ๊ทธ๋ ์นํ
์๋น์ค๋ก ์ ์ก๋๋ ์นํ
์์ฒญ์ WebhookRequest.fulfillmentInfo.tag ํ๋์ ์ฑ์์ง๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ fulfillment์ ๊ด๋ จ๋ ๋ฐฉ์์ผ๋ก ์นํ
๋์์ ์ ์ดํ ์ ์์ต๋๋ค. |
๋ถ๋ถ ์๋ต ๋ฐํ | ๋ถ๋ถ ์๋ต ์ฌ์์ ์ทจ์ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ณ ๊ธ ์์ฑ ์ค์ ์ ์ฐธ๊ณ ํ์ธ์. |
๋งค๊ฐ๋ณ์ ์ฌ์ ์ค์
fulfillment๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ๋งค๊ฐ๋ณ์ ๊ฐ์ ์ค์ ํ๊ฑฐ๋ ์ฌ์ ์ํ๋ ์ฌ์ ์ค์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ฌ์ ์ค์ ์ ์ ์ ์๋ต ๋ฉ์์ง๋ฅผ ํด๊ฒฐํ๊ฑฐ๋ ์นํ ์ ํธ์ถํ๊ธฐ ์ ์ ์ ์ฉ๋ฉ๋๋ค.
๋ํ ์์คํ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋งค๊ฐ๋ณ์๋ฅผ ๋์ ์ผ๋ก ์์ฑ๋ ๊ฐ์ผ๋ก ์ฌ์ ์ค์ ํ ์ ์์ต๋๋ค.
๊ทธ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
now
๋งค๊ฐ๋ณ์๋ฅผ ํ์ฌ ์๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.๋งค๊ฐ๋ณ์ ๊ฐ ์ง๊ธ $sys.func.NOW() ๊ธฐ์กด ๋งค๊ฐ๋ณ์
counter
๋ฅผ 1์ฉ ์ฆ๋ถํฉ๋๋ค.๋งค๊ฐ๋ณ์ ๊ฐ ์นด์ดํฐ $sys.func.ADD($session.params.counter, 1) ์ ์ฒด ๋ณตํฉ ๊ฐ์ฒด ๊ฐ์ ์ ์งํ๋ฉด์
new-cost
๋งค๊ฐ๋ณ์๋ฅผother-cost
๋งค๊ฐ๋ณ์ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.๋งค๊ฐ๋ณ์ ๊ฐ new-cost $sys.func.IDENTITY($session.params.other-cost)
๋ฐ์ดํฐ ์คํ ์ด ๋๊ตฌ
์ด ๊ธฐ๋ฅ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ ์ ์ฅ์ ๋๊ตฌ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๊ณ ๊ธ ์์ฑ ์ค์
์ด๋ฌํ ๊ณ ๊ธ ์์ฑ ์ค์ ์ ๋์ผํ ํ์ด์ง ์์ฑ ์ค์ , ํ๋ฆ ์์ฑ ์ค์ ๋ฐ ์์ด์ ํธ ์์ฑ ์ค์ ์ ์ ํ์ ์ผ๋ก ์ฌ์ ์ํ ์ ์์ต๋๋ค.
์๋ต ํ
์์ด์ ํธ์ ์ฐจ๋ก์๋ ์ฌ๋ฌ ๊ฐ์ fulfillment๋ฅผ ํธ์ถํ ์ ์์ผ๋ฉฐ(ํธ์ถํ๋ ๊ฒ์ด ๋ฐ๋์งํ ๊ฒฝ์ฐ๋ ์์), ๊ฐ fulfillment๋ ์๋ต ๋ฉ์์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๋ํํ ์์ด์ ํธ(Dialogflow CX)๋ ์ด๋ฌํ ์๋ต์ ์๋ต ํ์ ์ ์งํฉ๋๋ค.
์คํธ๋ฆฌ๋ฐ API์ ๋ํ ๋ถ๋ถ ์๋ต
๊ธฐ๋ณธ์ ์ผ๋ก ๋ํํ ์์ด์ ํธ(Dialogflow CX)๋ ์์ด์ ํธ ์ฐจ๋ก๊ฐ ๋๋๋ฉด ์ต์ข ์ฌ์ฉ์์๊ฒ ์์๊ฐ ์ง์ ๋ ์๋ต๋ง ๋ณด๋ ๋๋ค. fulfillment์์ ๋ถ๋ถ ์๋ต ๋ฐํ ์ต์ ์ ์ฌ์ฉ ์ค์ ํ์ฌ ์คํธ๋ฆฌ๋ฐ API๋ฅผ ์ฌ์ฉํ ๋ ํ์ฌ ํ์ ์ถ๊ฐ๋ ์๋ต์ ๋ถ๋ถ ์๋ต์ผ๋ก ๋ฐํํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ํ์ด์ง์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์๋ฅผ ๋ค์ด ์นํ ์ด ์ฅ์๊ฐ ์คํ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒฝ์ฐ fulfillment์ ์ ์ ์๋ต์ ์ถ๊ฐํ๊ณ ๋ถ๋ถ ์๋ต์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ํํ ์์ด์ ํธ(Dialogflow CX)๊ฐ ์นํ ์ ํธ์ถํ๊ธฐ ์ ์ ์๋ต ํ๋ฅผ ์ญ์ ํ๊ณ ๋ชจ๋ ๋ฉ์์ง๋ฅผ ๋ถ๋ถ ์๋ต์ผ๋ก ์ ์กํฉ๋๋ค.
๋ถ๋ถ ์๋ต์ ๋ค์์ ๋ํด์ ํ์ฌ ์ง์๋์ง ์์ง๋ง ๋์ค์ ์ง์๋ ์์ ์ ๋๋ค.
- ์๋ฎฌ๋ ์ดํฐ์ ์ค๋์ค ์ ๋ ฅ.
- ํํธ๋ ์ ํ ํตํฉ์ ํ์ฌ ๋ถ๋ถ ์๋ต์ ์ง์ํ ์๋ ์๊ณ ์ง์ํ์ง ์์ ์๋ ์์ต๋๋ค. ํ์ธํ๋ ค๋ฉด ํํธ๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์๋ฎฌ๋ ์ดํฐ์์ ์ด ๊ธฐ๋ฅ์ ํ ์คํธํ๋ ค๋ฉด ๋ถ๋ถ ์๋ต์ ์ฌ์ฉ ์ค์ ํด์ผ ํฉ๋๋ค.
๋ค์ ์์์์๋ ์นํ ์ด ์๋ฃ๋๋ ๋ฐ 5์ด๊ฐ ์์๋๋ฉฐ ๋ถ๋ถ ์๋ต์ ์ฌ์ฉ ์ค์ ํ์ง ์์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ํํ ์์ด์ ํธ(Dialogflow CX)์ ๋ํ ์ฐจ๋ก๋ ์นํ ์ด ์๋ฃ๋ ๋๊น์ง ๋๋์ง ์์ต๋๋ค. ์ด 5์ด์ ์ฐจ๋ก ์ค ์นํ ์ ๊ธฐ๋ค๋ฆด ๋ ์๋ต์ด ํ์ ์ถ๊ฐ๋๊ณ ์ฐจ๋ก๊ฐ ๋๋ ๋๊น์ง ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ฐํ๋์ง ์์ต๋๋ค. ์ด๋ก ์ธํด ์ฌ์ฉ์ ๊ฒฝํ์ ๋ํ ๋ง์กฑ๋๊ฐ ๋จ์ด์ง๋๋ค.
์ฒซ ๋ฒ์งธ fulfillment์์ ๋ถ๋ถ ์๋ต์ ์ฌ์ฉ ์ค์ ํ๋ฉด ๋ํํ ์์ด์ ํธ(Dialogflow CX)๋ ์ฒซ ๋ฒ์งธ fulfillment ๋ฉ์์ง๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐํํ๊ณ ์นํ ์ ํธ์ถํฉ๋๋ค. ์นํ ์ด ์๋ฃ๋๋ฉด ๋ํํ ์์ด์ ํธ(Dialogflow CX)์์ ์ต์ข ์๋ต์ ๋ฐํํฉ๋๋ค. ์ต์ข ์ฌ์ฉ์ ํ๊ฒฝ์์๋ ์งง์ ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ฏ๋ก ์ด ์๋๋ฆฌ์ค์์๋ ์ต์ข ์ฌ์ฉ์ ํ๊ฒฝ์ด ๊ฐ์ ๋ฉ๋๋ค. ๋ํ ์นํ ํธ์ถ์ ์ต์ข ์ฌ์ฉ์์๊ฒ ์ ์ก๋๋ ์๋ต๊ณผ ๋์์ ์คํ๋ฉ๋๋ค.
์์ฑ ํฉ์ฑ ๋งํฌ์ ์ธ์ด(SSML)
ํ ์คํธ ๋๋ ์ถ๋ ฅ ์ค๋์ค ํ ์คํธ fulfillment ํ๋์ ์์ฑ ํฉ์ฑ ๋งํฌ์ ์ธ์ด(SSML)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ฌธ์์ด, ๋ ์ง, ์๊ฐ, ์ฝ์ด, ๊ฒ์ด๋์ด์ผ ํ๋ ํ ์คํธ์ ์ค๋์ค ํ์๊ณผ ๋์ด ์ฝ๊ธฐ์ ๊ดํ ์ธ๋ถ์ ๋ณด๋ฅผ ์ ๋ ฅํ์ฌ ์ค๋์ค ์๋ต์ ๋ง์ถค์ค์ ํ ์ ์์ต๋๋ค.
๊ตฌ๋ฌธ ์ธ๋ถ์ ๋ณด๋ ํ ์คํธ ์์ฑ ๋ณํ SSML ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.