1. μν λΆλ΄
μ΄λ¦ | μν |
---|
κΉμ μΈ | μ ν리μΌμ΄μ
λ°±μλ, NUGU λ°±μλ νλ‘μ κ°λ° |
κΉμ§μ | μ ν리μΌμ΄μ
νλ‘ νΈμλ, NUGU νλ μ΄λΉλ κ°λ° |
μ μν | μ ν리μΌμ΄μ
λ°±μλ, NUGU λ°±μλ νλ‘μ κ°λ° |
Theophile | μ ν리μΌμ΄μ
λ°±μλ λ¨Έμ λ¬λ |
2. νλ μ΄λΉλ
Β Β Β Β λꡬ νλ μ΄λΉλλ κ°λ¨ν μ½λ μ μμ μμ λ¬Έμ₯ μ
λ ₯λ§μΌλ‘ μμ½κ² SKT NUGU λλ°μ΄μ€ λ° μ ν리μΌμ΄μ
μμ μ¬μ© κ°λ₯ν AI μλΉμ€λ₯Ό λ§λ€ μ μλ κ°λ° ν΄μ΄λ€.
Β Β Β Β μ μ¬μ§μ 보λ¦λ¬μ NUGU νλ μ΄ κ΅¬μ‘°μ΄λ€.
3. κΈ°λ₯
1) κ°μ±μ λλ리λ λν
2) κ±΄κ° Tip
3) μ§ν΅μ μΆμ²
4) μ¬μ± κ±΄κ° μκ° μ§λ¨
# case 1
# case 2
5) νκ· μ£ΌκΈ° μ‘°ν
6) μ€μ μλ¦¬μΌ μ‘°ν
7) μ€μ μλ¦¬μΌ μ
λ ₯
8) μ리 μμ μΌ μ‘°ν
4. λꡬ νλ μ΄
1) κ°μ±μ λλ리λ λν
-
Intent : ask.Mood
주체 | λ°ν μμ | νλ€μ΄ |
---|
μ¬μ©μ | Entity | MOOD |
-
Action : ask.Mood
주체 | λ°ν μμ | κ°λμ νΈμ΄λλ κ² λμμ΄ λ μλ μμ΄μ ... |
---|
NUGU | - | - |
2) κ±΄κ° Tip
-
Intet : ask.Tip
주체 | λ°ν μμ | λ°°κ° μν |
---|
μ¬μ©μ | Entity | TIP |
-
Action : ask.Tip
주체 | λ°ν μμ | μ λ₯Ό λ°λΌ μ¬νΈν‘μ ν΄λ³΄μΈμ ... |
---|
NUGU | - | - |
3) μ¬μ± κ±΄κ° μκ° μ§λ¨
-
Intent : ask.selfTest
주체 | λ°ν μμ | μκ°μ§λ¨ν λ |
---|
μ¬μ©μ | - | - |
-
Action : answer.selfTest
주체 | λ°ν μμ | μ΄λ€ μκ°μ§λ¨μ μνμΈμ? μ리ν μν μκ°μ§λ¨μ 1λ², μ리ν μκΉ μκ°μ§λ¨μ 2λ²μ΄λΌκ³ λ§μν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
주체 | λ°ν μμ | 1λ² |
---|
μ¬μ©μ | Entity | NUMBER |
4) μ§ν΅μ μΆμ²
-
Intent : ask.pill
주체 | λ°ν μμ | μ½ | μΆμ²ν΄μ€ |
---|
μ¬μ©μ | Entity | PILL | - |
-
Action : check.userID2
주체 | λ°ν μμ | 보λ¦λ¬ μ΄νμ λ©μΈ νμ΄μ§μμλ λꡬ μ€νΌμ»€μμ΄λλ₯Ό λ§μν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
주체 | λ°ν μμ | 1 |
---|
μ¬μ©μ | Entity | user_ID |
-
answer.pill
주체 | λ°ν μμ | 1 | λμ μ 보λ₯Ό μλ €λ릴κ²μ. |
---|
NUGU | Entity | user_ID | - |
주체 | λ°ν μμ | κ·Έλ |
---|
μ¬μ©μ | Entity | YON |
주체 | λ°ν μμ | μ½μ μΆμ²ν΄λ릴κ²μ. κ²λ³΄λ¦°κ³Ό νμνλ₯Ό 볡μ©νμΈμ. |
---|
NUGU | Backend Parameter | pillPredict |
* answer.noPill : λ°μ΄ν° λ² μ΄μ€μ μ¦μμ΄ μ
λ ₯λμ§ μμμ κ²½μ°
주체 | λ°ν μμ | μ
λ ₯λ μ¦μμ΄ μμ΄μ μΆμ²ν΄λ릴 μ μμ΄μ. 보λ¦λ¬ μ΄νμμ μ¦μμ μ
λ ₯ν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
* answer.wrongID3 : μ
λ ₯ν μμ΄λκ° λ°μ΄ν°λ² μ΄μ€μ μ‘΄μ¬νμ§ μμ κ²½μ°
주체 | λ°ν μμ | μ‘΄μ¬νλ μμ΄λκ° μμ΄μ. 보λ¦λ¬ μ΄ν λ©μΈ νμ΄μ§μμ λꡬ μ€νΌμ»€ μμ΄λλ₯Ό νμΈν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
* answer.WRONG3 : YONκ° 'μ'κ° μλ κ²½μ°
주체 | λ°ν μμ | 보λ¦λ¬μ μ’
λ£ν κ²μ. |
---|
NUGU | - | - |
5) νκ· μ리 μ£ΌκΈ° μ‘°ν
-
Intent : ask.meanCycle
주체 | λ°ν μμ | μ£ΌκΈ° | μλ €μ€ |
---|
μ¬μ©μ | Entity | MEANCYCLE | - |
-
Action : check.userID1
주체 | λ°ν μμ | 보λ¦λ¬ μ΄νμ λ©μΈ νμ΄μ§μμλ λꡬ μ€νΌμ»€μμ΄λλ₯Ό λ§μν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
주체 | λ°ν μμ | 1 |
---|
μ¬μ©μ | Entity | user_ID |
-
answer.meanCycle
주체 | λ°ν μμ | 1 | λμ μ 보λ₯Ό μλ €λ릴κ²μ. |
---|
NUGU | Entity | user_ID | - |
주체 | λ°ν μμ | κ·Έλ |
---|
μ¬μ©μ | Entity | YON |
주체 | λ°ν μμ | νμλμ μ£ΌκΈ°λ | 30 | μΌ μ
λλ€. |
---|
NUGU | Backend Parameter | - | meanCycle | - |
* answer.noMeanCycle : λ°μ΄ν° λ² μ΄μ€μ νκ· μ£ΌκΈ°κ° μ
λ ₯λμ§ μμμ κ²½μ°,
νκ· μ£ΌκΈ°λ₯Ό κ³μ°ν λ§νΌ μΆ©λΆν μ£ΌκΈ°κ° μμ κ²½μ°
주체 | λ°ν μμ | μ
λ ₯λ μΆ©λΆν μ£ΌκΈ°κ° μλ€μ. μ΄νμμ μ£ΌκΈ°λ₯Ό μ
λ ₯ν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
* answer.wrongID3 : μ
λ ₯ν μμ΄λκ° λ°μ΄ν°λ² μ΄μ€μ μ‘΄μ¬νμ§ μμ κ²½μ°
주체 | λ°ν μμ | μ‘΄μ¬νλ μμ΄λκ° μμ΄μ. 보λ¦λ¬ μ΄ν λ©μΈ νμ΄μ§μμ λꡬ μ€νΌμ»€ μμ΄λλ₯Ό νμΈν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
* answer.WRONG3 : YONκ° 'μ'κ° μλ κ²½μ°
주체 | λ°ν μμ | 보λ¦λ¬μ μ’
λ£ν κ²μ. |
---|
NUGU | - | - |
6) μ€μ μ리 μ£ΌκΈ° μ‘°ν
-
Intent : ask.cycle
주체 | λ°ν μμ | μ΄λ² μ리 | μΈμ λλ? |
---|
μ¬μ©μ | Entity | CYCLE_STATE | - |
-
Action : check.userID3
주체 | λ°ν μμ | 보λ¦λ¬ μ΄νμ λ©μΈ νμ΄μ§μμλ λꡬ μ€νΌμ»€μμ΄λλ₯Ό λ§μν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
주체 | λ°ν μμ | 1 |
---|
μ¬μ©μ | Entity | user_ID |
-
answer.cycle
주체 | λ°ν μμ | 1 | λμ μ 보λ₯Ό μλ €λ릴κ²μ. |
---|
NUGU | Entity | user_ID | - |
주체 | λ°ν μμ | κ·Έλ |
---|
μ¬μ©μ | Entity | YON |
주체 | λ°ν μμ | νμλμ μ΄λ² μ리 μμμΌμ | 2020-12-3 | μ΄κ³ , μ’
λ£μΌμ | 2020-12-9 | μ
λλ€. |
---|
NUGU | Backend Parameter | - | cycleStart | - | cycleEnd | - |
* answer.noCycle : μ΅κ·Ό μ£ΌκΈ°κ° νλλ μ
λ ₯λμ§ μμ κ²½μ°
주체 | λ°ν μμ | μ
λ ₯λ μ£ΌκΈ°κ° μλ€μ. μ΄νμμ μ£ΌκΈ°λ₯Ό μ
λ ₯ν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
* answer.wrongID1 : μ
λ ₯ν μμ΄λκ° λ°μ΄ν°λ² μ΄μ€μ μ‘΄μ¬νμ§ μμ κ²½μ°
주체 | λ°ν μμ | μ‘΄μ¬νλ μμ΄λκ° μμ΄μ. 보λ¦λ¬ μ΄ν λ©μΈ νμ΄μ§μμ λꡬ μ€νΌμ»€ μμ΄λλ₯Ό νμΈν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
* answer.WRONG1 : YONκ° 'μ'κ° μλ κ²½μ°
주체 | λ°ν μμ | 보λ¦λ¬μ μ’
λ£ν κ²μ. |
---|
NUGU | - | - |
7) μ€μ μ리 μ£ΌκΈ° μ
λ ₯
1 - μλμ λ μ§
-
Intent : input.cycle
주체 | λ°ν μμ | λ | μ€λ | μ리 | μμ | νμ΄ |
---|
μ¬μ©μ | Entity | - | DATE | - | CYCLE | - |
-
Action : check.userID5
주체 | λ°ν μμ | 보λ¦λ¬ μ΄νμ λ©μΈ νμ΄μ§μμλ λꡬ μ€νΌμ»€μμ΄λλ₯Ό λ§μν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
주체 | λ°ν μμ | 1 |
---|
μ¬μ©μ | Entity | user_ID |
-
output.cycleStart
주체 | λ°ν μμ | 1 | λμ μ 보μ μ
λ ₯ν©λλ€. |
---|
NUGU | Entity | user_ID | - |
주체 | λ°ν μμ | κ·Έλ |
---|
μ¬μ©μ | Entity | YON |
주체 | λ°ν μμ | μ리 μμμΌμ μ
λ ₯νμ΅λλ€. |
---|
NUGU | - | - |
* answer.wrongID5_1 : μ
λ ₯ν μμ΄λκ° λ°μ΄ν°λ² μ΄μ€μ μ‘΄μ¬νμ§ μμ κ²½μ°
주체 | λ°ν μμ | μ‘΄μ¬νλ μμ΄λκ° μμ΄μ. 보λ¦λ¬ μ΄ν λ©μΈ νμ΄μ§μμ λꡬ μ€νΌμ»€ μμ΄λλ₯Ό νμΈν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
* answer.WRONG5_1 : YONκ° 'μ'κ° μλ κ²½μ°
주체 | λ°ν μμ | 보λ¦λ¬μ μ’
λ£ν κ²μ. |
---|
NUGU | - | - |
-
output.cycleEnd
주체 | λ°ν μμ | 1 | λμ μ 보μ μ
λ ₯ν©λλ€. |
---|
NUGU | Entity | user_ID | - |
주체 | λ°ν μμ | κ·Έλ |
---|
μ¬μ©μ | Entity | YON |
주체 | λ°ν μμ | μ리 μ’
λ£μΌμ μ
λ ₯νμ΅λλ€. |
---|
NUGU | - | - |
- answer.wrongID5_2 : μ
λ ₯ν μμ΄λκ° λ°μ΄ν°λ² μ΄μ€μ μ‘΄μ¬νμ§ μμ κ²½μ°
주체 | λ°ν μμ | μ‘΄μ¬νλ μμ΄λκ° μμ΄μ. 보λ¦λ¬ μ΄ν λ©μΈ νμ΄μ§μμ λꡬ μ€νΌμ»€ μμ΄λλ₯Ό νμΈν΄μ£ΌμΈμ. |
---|
NUGU | - | - |
- answer.WRONG5_2 : YONκ° 'μ'κ° μλ κ²½μ°
주체 | λ°ν μμ | 보λ¦λ¬μ μ’
λ£ν κ²μ. |
---|
NUGU | - | - |
2 - μ λμ λ μ§
8) μ리 μμ μΌ μ‘°ν
5. λ°±μλ νλ‘μ μλ²
Β Β Β Β Backend proxyλ μλ΅μ μμ±νκΈ° μν΄ νμν μ 보λ₯Ό μΈλΆλ‘λΆν° κ°μ ΈμμΌ νλ κ²½μ° μ¬μ©νλ μλ²μ΄λ€.
Β Β Β NUGU developers κ°μ΄λμ λ°λ₯΄λ©΄ version, resultCode, outputμ΄ νμ μμμ΄λ€. μν μλ΅ νμμ λ§μΆ°μ responseController λͺ¨λμ μμ±νμλ€.
const resSample = function () {
let resSample = {
version: "2.0",
resultCode: "OK",
output: {},
};
return resSample;
};
module.exports = { resSample };
Β Β Β Β μ ν리μΌμ΄μ
λ°±μλμ ꡬλΆνκΈ° μν΄ routes ν΄λμ proxyIndex νμΌμμ λΌμ°ν
μ, proxyControllers ν΄λμμ κΈ°λ₯μ ꡬννλ€.
Β Β Β κ° μ»¨νΈλ‘€λ¬μμ κΈ°λ₯μ ꡬννκ³ responseController νμμ λ§μΆμ΄ κ²°κ³Όλ₯Ό 리ν΄νλ€.