fulfillment

์—์ด์ „ํŠธ์˜ ๋Œ€ํ™” ์ฐจ๋ก€์ธ ๊ฒฝ์šฐ ์—์ด์ „ํŠธ๋Š” ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€, ์ •๋ณด ์ฟผ๋ฆฌ ๋˜๋Š” ์„ธ์…˜ ์ข…๋ฃŒ๋ฅผ ํ†ตํ•ด ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ์‘๋‹ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์—์ด์ „ํŠธ๊ฐ€ ์„œ๋น„์Šค์— ๋ฌธ์˜ํ•˜์—ฌ ๋™์  ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ฐจ๋ก€๋ฅผ ์œ„ํ•ด ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. 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 ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.