보름달 🌝 #3.2 개발 - NUGU ν”Œλ ˆμ΄λΉŒλ” (ν•œκΈ€)

보름달·2020λ…„ 12μ›” 6일
3

개발 / Development

λͺ©λ‘ 보기
3/4
post-thumbnail

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

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œνž˜λ“€μ–΄
    μ‚¬μš©μžEntityMOOD
  • Action : ask.Mood

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œκ°€λ”μ€ ν„Έμ–΄λ†“λŠ” 게 도움이 될 μˆ˜λ„ μžˆμ–΄μš” ...
    NUGU--

2) 건강 Tip

  • Intet : ask.Tip

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ°°κ°€ μ•„νŒŒ
    μ‚¬μš©μžEntityTIP
  • Action : ask.Tip

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ €λ₯Ό 따라 μ‹¬ν˜Έν‘μ„ ν•΄λ³΄μ„Έμš” ...
    NUGU--

3) μ—¬μ„± 건강 μžκ°€ 진단

  • Intent : ask.selfTest

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμžκ°€μ§„λ‹¨ν• λž˜
    μ‚¬μš©μž--
  • Action : answer.selfTest

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ–΄λ–€ μžκ°€μ§„λ‹¨μ„ μ›ν•˜μ„Έμš”? μƒλ¦¬ν˜ˆ μƒνƒœ μžκ°€μ§„λ‹¨μ€ 1번, μƒλ¦¬ν˜ˆ 색깔 μžκ°€μ§„λ‹¨μ€ 2번이라고 λ§μ”€ν•΄μ£Όμ„Έμš”.
    NUGU--

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1번
    μ‚¬μš©μžEntityNUMBER
    • check.bleedState : NUMBER === 1번

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ν˜ˆ μƒνƒœ μžκ°€μ§„λ‹¨μ„ μ‹œμž‘ν• κ²Œμš”. μƒλ¦¬λŒ€ μ–‘μœΌλ‘œ 따져보면, ν•˜λ£¨μ— μƒλ¦¬λŒ€ 5개 정도λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 정상적인 μƒλ¦¬μ˜ 양이라고 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μƒλ¦¬λŸ‰μ΄ κ°‘μžκΈ° λ§Žμ•„μ‘ŒμœΌλ©΄ 1번, μƒλ¦¬λŸ‰μ΄ λ„ˆλ¬΄ 적으면 2번, 생리할 λ•Œ 핏덩어리가 λ‚˜μ˜€λ©΄ 3번이라고 λ§μ”€ν•΄μ£Όμ„Έμš”.
      NUGU--

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1번
      μ‚¬μš©μžEntityNUMBER
      • check.bleedState_large : NUMBER === 1번

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬λŸ‰μ΄ κ°‘μžκΈ° λŠ˜μ—ˆμ„ 경우, "μŠ€νŠΈλ ˆμŠ€κ°€ ν‰μ†Œλ³΄λ‹€ κ³Όν–ˆκ΅°." ν•˜κ³  λ„˜μ–΄κ°€μ„œλŠ” μ•ˆλ©λ‹ˆλ‹€! μƒλ¦¬λŸ‰μ΄ κΈ‰κ²©ν•˜κ²Œ 많이 λŠ˜μ—ˆλ‹€λ©΄, μžκΆκ·Όμ’…μ„ μ˜μ‹¬ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έλƒ₯ λ„˜κ²Όλ‹€κ°€ 병을 ν‚€μšΈ μˆ˜λ„ μžˆμœΌλ‹ˆ, κΌ­ 산뢀인과에 λ°©λ¬Έν•˜μ—¬ 검사λ₯Ό λ°›μ•„λ³΄μ‹œλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€!
        NUGU--
      • check.bleedState_small : NUMBER === 2번

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ°°λž€κΈ°κ°€ μ§€λ‚˜λ©΄ μžκΆλ‚΄λ§‰μ˜ λ‘κ»˜λŠ” 8mm μ΄μƒμœΌλ‘œ λ‘κΊΌμ›Œμ Έμ•Ό ν•˜λŠ”λ° 그렇지 μ•Šμ€ κ²½μš°μ—λŠ” μƒλ¦¬λŸ‰μ΄ μ μ–΄μ§€κ²Œ λ©λ‹ˆλ‹€. μžκΆλ‚΄λ§‰μ΄ 8mm μ΄μƒμœΌλ‘œ μ„±μž₯ν•˜μ§€ μ•ŠμœΌλ©΄ μˆ˜μ • ν›„ 착상에 지μž₯을 쀄 수 있기 λ•Œλ¬Έμ— μž„μ‹ μ— μ•ˆ 쒋은 영ν–₯을 끼칠 수 μžˆμœΌλ‹ˆ κΌ­ κΈ°μ–΅ν•΄ μ£Όμ„Έμš”!
        NUGU--
      • check.bleedState_mass : NUMBER === 3번

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ν•  λ•Œ λ‚˜μ˜€λŠ” ν”Όμ˜ 덩어리λ₯Ό ν•œλ°©μ—μ„œλŠ” μ–΄ν˜ˆμ΄λΌκ³  λΆˆλŸ¬μš”. μ‹¬ν•œ 슀트레슀 λ“±μœΌλ‘œ, ν˜ˆμ•‘κ³Ό κΈ° μˆœν™˜μ΄ 잘 λ˜μ§€ μ•Šμ•„μ„œμƒκΈ°λŠ” κ²ƒμœΌλ‘œ 핏덩이가 많이 λ‚˜μ˜€λŠ” 뢄듀은 ν•˜λ³΅λƒ‰μ¦μ΄λ‚˜ 생리톡이 심할 κ°€λŠ₯성이 μ»€μš”. λͺΈμ„ λ”°λœ»ν•˜κ²Œ ν•΄μ£Όκ³  ν˜ˆμ•‘μˆœν™˜μ΄ 잘 λ˜λ„λ‘ μŠ€νŠΈλ ˆμΉ­μ΄λ‚˜ κ°€λ²Όμš΄ μ‚°μ±… λ“± κ·œμΉ™μ μœΌλ‘œ μš΄λ™ν•˜λŠ” 것이 μžκΆκ±΄κ°•κ³Ό λ‚΄ λͺΈ 건강에 μ’‹μ•„μš”!
        NUGU--
    • check.bleedColor : NUMBER === 2번

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ν˜ˆ 색깔 μžκ°€μ§„λ‹¨μ„ μ‹œμž‘ν• κ²Œμš”. μƒλ¦¬ν˜ˆ 색깔이 μ„ λͺ…ν•œ 뢄홍색이면 1번, 밝은 빨간색이면 2번, μ–΄λ‘μš΄ μžμ£Όμƒ‰μ΄λ©΄ 3번, 주황빛이면 4번, μ§„ν•œ κ°ˆμƒ‰μ΄λ©΄ 5번, 검은색이면 6번이라고 λ§μ”€ν•΄μ£Όμ„Έμš”.
      NUGU--

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1번
      μ‚¬μš©μžEntityNUMBER
      • check.bleedColor_PINK

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ μ΄ˆκΈ°μ—λŠ” μƒλ¦¬ν˜ˆμ΄ 선뢄홍색을 띌 수 μžˆμ§€λ§Œ, 생리 κΈ°κ°„ 쀑 핑크빛을 보인닀면 내뢀손상, 성병 λ˜λŠ” 호λ₯΄λͺ¬ λ³€ν™” λ“± 건강 μƒμ˜ λ¬Έμ œκ°€ μžˆμ„ 수 μžˆμœΌλ―€λ‘œ 산뢀인과 진단이 ν•„μš”ν•΄μš”. λ˜ν•œ, 생리 κΈ°κ°„ 외에 μ΄λŸ¬ν•œ 좜혈이 μžˆλ‹€λ©΄ μžκΆμ—Όμ¦ ν˜Ήμ€ μž„μ‹  κ°€λŠ₯성이 μžˆμœΌλ―€λ‘œ μ •ν™•ν•œ 검사λ₯Ό μœ„ν•΄ 병원을 κΌ­ λ°©λ¬Έν•΄μ£Όμ„Έμš”!
        NUGU--
      • check.bleedColor_RED

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œν”ν•œ μƒλ¦¬ν˜ˆ μƒ‰κΉ”λ‘œ, 호λ₯΄λͺ¬ μˆ˜μΉ˜κ°€ μ λ‹Ήν•˜λ©° ν˜ˆμ•‘μˆœν™˜μ΄ μ›ν™œν•  경우 밝은 λΉ¨κ°„μƒ‰μ˜ μƒλ¦¬ν˜ˆμ΄ λ‚˜νƒ€λ‚˜μš”. κ·ΈλŸ¬λ‚˜ μ§€λ‚˜μΉ˜κ²Œ 밝은 뢄홍빛을 λˆλ‹€λ©΄ μ—μŠ€νŠΈλ‘œκ² 수치의 λ¬Έμ œμΌμˆ˜λ„ μžˆμ–΄μš”. λ‹€μ΄μ–΄νŠΈ, λ˜ν•œ κ³Όλ„ν•œ μ•Œμ½”μ˜¬ μ„­μ·¨λ‘œλ„ λ‚˜νƒ€λ‚  수 μžˆμ–΄μš”.
        NUGU--
      • check.bleedColor_PURPLE

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬λŸ‰μ΄ λ§Žμ„ 경우 μ–΄λ‘μš΄ μžμ£Όμƒ‰μ˜ 덩어리 혈이 보일 수 μžˆμ–΄μš”. κ·ΈλŸ¬λ‚˜, 타인과 λΉ„κ΅ν–ˆμ„ λ•Œ, 자주 μƒλ¦¬λŒ€λ₯Ό ꡐ체해야 ν•  μ •λ„λ‘œ μƒλ¦¬ν˜ˆμ΄ λ°°μΆœλœλ‹€λ©΄ μžκΆκ·Όμ’…, μžκΆμ„ κ·Όμ¦ λ“± μ—¬μ„± μ§ˆν™˜μ˜ μ‹ ν˜ΈμΌ 수 μžˆμœΌλ―€λ‘œ μ£Όμ˜ν•΄μ£Όμ„Έμš”!
        NUGU--
      • check.bleedColor_ORANGE

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ§ˆμ—Όμ— κ°μ—Όλ˜μ—ˆμ„ κ°€λŠ₯성이 λ†’λ‹€κ³  λ³Ό 수 μžˆμ–΄μš”. μ§ˆμ—Όμ€ ν”ν•œ μ§ˆλ³‘μ΄μ§€λ§Œ, λ°©μΉ˜ν•˜κ²Œ 되면 더 큰 μ§ˆλ³‘ λ˜λŠ” λ‹€λ₯Έ μ§ˆλ³‘μ„ μ•ΌκΈ°ν•˜κ³  ν™•λŒ€μ‹œν‚¬ 수 μžˆλ‹΅λ‹ˆλ‹€! μ§ˆμ—Όμ΄ μ‹¬κ°ν•˜μ§€ μ•Šλ‹€κ³  κ°€λ³κ²Œ μƒκ°ν•˜μ§€ 말고 μ΄ˆκΈ°μ— 병원을 μ°ΎλŠ” 것이 μ’‹μ•„μš”.
        NUGU--
      • check.bleedColor_BROWN

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ˜€λž˜λœ μƒλ¦¬ν˜ˆμ΄ λ‚˜μ˜€λŠ” 것일 수 μžˆμœΌλ―€λ‘œ 생리 첫날 λ˜λŠ” 끝자락 즈음이라면, κ±±μ •ν•˜μ§€ μ•Šμ•„λ„ λΌμš”! κ·ΈλŸ¬λ‚˜ 생리 κΈ°κ°„ 쀑 μ§„ν•œ κ°ˆμƒ‰μ˜ μƒλ¦¬ν˜ˆμ΄ λ‚˜μ˜¨λ‹€λ©΄, μ΄λŠ” λΆ€μ • 좜혈둜 μžκΆκ·Όμ’… λ˜λŠ” μžκΆλ‚΄λ§‰μ¦ 일 수 μžˆμ–΄μš”!
        NUGU--
      • check.bleedColor_BLACK

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ 끝 무렡, λ˜λŠ” 생리양이 λ§Žμ€ μ‚ΌμΌμ—μ„œ 사일 경에, 검은색을 λ„λŠ” μƒλ¦¬ν˜ˆμ΄ λ‚˜μ˜¬ 수 μžˆμ–΄μš”. κ·ΈλŸ¬λ‚˜ 이 μƒνƒœκ°€ 였래 μ§€μ†λœλ‹€λ©΄ μžκΆκ·Όμ’…μ„ μ˜μ‹¬ν•΄ λ³Ό 수 μžˆμ–΄μš”.
        NUGU--

4) μ§„ν†΅μ œ μΆ”μ²œ

  • Intent : ask.pill

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ•½μΆ”μ²œν•΄μ€˜
    μ‚¬μš©μžEntityPILL-
  • Action : check.userID2

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬ μ–΄ν”Œμ˜ 메인 νŽ˜μ΄μ§€μ—μžˆλŠ” λˆ„κ΅¬ μŠ€ν”Όμ»€μ•„μ΄λ””λ₯Ό λ§μ”€ν•΄μ£Όμ„Έμš”.
    NUGU--

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1
    μ‚¬μš©μžEntityuser_ID
    • answer.pill

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1λ‹˜μ˜ 정보λ₯Ό μ•Œλ €λ“œλ¦΄κ²Œμš”.
      NUGUEntityuser_ID-

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œκ·Έλž˜
      μ‚¬μš©μžEntityYON

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ•½μ„ μΆ”μ²œν•΄λ“œλ¦΄κ²Œμš”. 게보린과 펜잘큐λ₯Ό λ³΅μš©ν•˜μ„Έμš”.
      NUGUBackend ParameterpillPredict
      * answer.noPill : 데이터 λ² μ΄μŠ€μ— 증상이 μž…λ ₯λ˜μ§€ μ•Šμ•˜μ„ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμž…λ ₯된 증상이 μ—†μ–΄μ„œ μΆ”μ²œν•΄λ“œλ¦΄ 수 μ—†μ–΄μš”. 보름달 μ–΄ν”Œμ—μ„œ 증상을 μž…λ ₯ν•΄μ£Όμ„Έμš”.
      NUGU--
      * answer.wrongID3 : μž…λ ₯ν•œ 아이디가 λ°μ΄ν„°λ² μ΄μŠ€μ— μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ‘΄μž¬ν•˜λŠ” 아이디가 μ—†μ–΄μš”. 보름달 μ–΄ν”Œ 메인 νŽ˜μ΄μ§€μ—μ„œ λˆ„κ΅¬ μŠ€ν”Όμ»€ 아이디λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”.
      NUGU--
      * answer.WRONG3 : YONκ°€ '예'κ°€ μ•„λ‹Œ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬μ„ μ’…λ£Œν• κ²Œμš”.
      NUGU--

5) 평균 생리 μ£ΌκΈ° 쑰회

  • Intent : ask.meanCycle

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ£ΌκΈ°μ•Œλ €μ€˜
    μ‚¬μš©μžEntityMEANCYCLE-
  • Action : check.userID1

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬ μ–΄ν”Œμ˜ 메인 νŽ˜μ΄μ§€μ—μžˆλŠ” λˆ„κ΅¬ μŠ€ν”Όμ»€μ•„μ΄λ””λ₯Ό λ§μ”€ν•΄μ£Όμ„Έμš”.
    NUGU--

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1
    μ‚¬μš©μžEntityuser_ID

    • answer.meanCycle

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1λ‹˜μ˜ 정보λ₯Ό μ•Œλ €λ“œλ¦΄κ²Œμš”.
      NUGUEntityuser_ID-

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œκ·Έλž˜
      μ‚¬μš©μžEntityYON

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œνšŒμ›λ‹˜μ˜ μ£ΌκΈ°λŠ”30일 μž…λ‹ˆλ‹€.
      NUGUBackend Parameter-meanCycle-

      *  answer.noMeanCycle : 데이터 λ² μ΄μŠ€μ— 평균주기가 μž…λ ₯λ˜μ§€ μ•Šμ•˜μ„ 경우, 
                              평균주기λ₯Ό 계산할 만큼 μΆ©λΆ„ν•œ μ£ΌκΈ°κ°€ 없을 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμž…λ ₯된 μΆ©λΆ„ν•œ μ£ΌκΈ°κ°€ μ—†λ„€μš”. μ–΄ν”Œμ—μ„œ μ£ΌκΈ°λ₯Ό μž…λ ₯ν•΄μ£Όμ„Έμš”.
      NUGU--

      * answer.wrongID3 : μž…λ ₯ν•œ 아이디가 λ°μ΄ν„°λ² μ΄μŠ€μ— μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ‘΄μž¬ν•˜λŠ” 아이디가 μ—†μ–΄μš”. 보름달 μ–΄ν”Œ 메인 νŽ˜μ΄μ§€μ—μ„œ λˆ„κ΅¬ μŠ€ν”Όμ»€ 아이디λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”.
      NUGU--
      * answer.WRONG3 : YONκ°€ '예'κ°€ μ•„λ‹Œ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬μ„ μ’…λ£Œν• κ²Œμš”.
      NUGU--

6) μ‹€μ œ 생리 μ£ΌκΈ° 쑰회

  • Intent : ask.cycle

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ΄λ²ˆ μƒλ¦¬μ–Έμ œ λλ‚˜?
    μ‚¬μš©μžEntityCYCLE_STATE-
  • Action : check.userID3

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬ μ–΄ν”Œμ˜ 메인 νŽ˜μ΄μ§€μ—μžˆλŠ” λˆ„κ΅¬ μŠ€ν”Όμ»€μ•„μ΄λ””λ₯Ό λ§μ”€ν•΄μ£Όμ„Έμš”.
    NUGU--

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1
    μ‚¬μš©μžEntityuser_ID
    • answer.cycle

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1λ‹˜μ˜ 정보λ₯Ό μ•Œλ €λ“œλ¦΄κ²Œμš”.
      NUGUEntityuser_ID-

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œκ·Έλž˜
      μ‚¬μš©μžEntityYON

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œνšŒμ›λ‹˜μ˜ 이번 생리 μ‹œμž‘μΌμ€2020-12-3이고, μ’…λ£ŒμΌμ€2020-12-9μž…λ‹ˆλ‹€.
      NUGUBackend 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
    μ‚¬μš©μžEntityuser_ID
    • output.cycleStart

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1λ‹˜μ˜ 정보에 μž…λ ₯ν•©λ‹ˆλ‹€.
      NUGUEntityuser_ID-

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œκ·Έλž˜
      μ‚¬μš©μžEntityYON

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ μ‹œμž‘μΌμ„ μž…λ ₯ν–ˆμŠ΅λ‹ˆλ‹€.
      NUGU--
      * answer.wrongID5_1 : μž…λ ₯ν•œ 아이디가 λ°μ΄ν„°λ² μ΄μŠ€μ— μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ‘΄μž¬ν•˜λŠ” 아이디가 μ—†μ–΄μš”. 보름달 μ–΄ν”Œ 메인 νŽ˜μ΄μ§€μ—μ„œ λˆ„κ΅¬ μŠ€ν”Όμ»€ 아이디λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”.
      NUGU--
      * answer.WRONG5_1 : YONκ°€ '예'κ°€ μ•„λ‹Œ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬μ„ μ’…λ£Œν• κ²Œμš”.
      NUGU--
    • output.cycleEnd

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1λ‹˜μ˜ 정보에 μž…λ ₯ν•©λ‹ˆλ‹€.
      NUGUEntityuser_ID-

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œκ·Έλž˜
      μ‚¬μš©μžEntityYON

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ μ’…λ£ŒμΌμ„ μž…λ ₯ν–ˆμŠ΅λ‹ˆλ‹€.
      NUGU--
      - answer.wrongID5_2 : μž…λ ₯ν•œ 아이디가 λ°μ΄ν„°λ² μ΄μŠ€μ— μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ‘΄μž¬ν•˜λŠ” 아이디가 μ—†μ–΄μš”. 보름달 μ–΄ν”Œ 메인 νŽ˜μ΄μ§€μ—μ„œ λˆ„κ΅¬ μŠ€ν”Όμ»€ 아이디λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”.
      NUGU--
      - answer.WRONG5_2 : YONκ°€ '예'κ°€ μ•„λ‹Œ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬μ„ μ’…λ£Œν• κ²Œμš”.
      NUGU--
2 - μ ˆλŒ€μ  λ‚ μ§œ
  • Intent : input.pastCycleStart

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ2020λ…„12μ›”9일에생리 μ‹œμž‘ν–ˆμ–΄
    μ‚¬μš©μžEntitySTART_YEARSTART_MONTHSTART_DATE-PAST_CYCLE_START-
  • Action : add.pastPeriod

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ μ‹œμž‘μ„ μž…λ ₯ν•˜μ…¨μŠ΅λ‹ˆλ‹€. 생리λ₯Ό λ©°μΉ  λ™μ•ˆ ν•˜μ…¨λŠ”μ§€ μ•Œλ €μ£Όμ„Έμš”. 이틀 λ™μ•ˆ ν•˜μ…¨λ‹€λ©΄, 2일이라고 λ§μ”€ν•΄μ£Όμ„Έμš”.
    NUGU--

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ2일
    μ‚¬μš©μžEntityPAST_PERIOD-
    • check.userID6

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬ μ–΄ν”Œμ˜ 메인 νŽ˜μ΄μ§€μ—μžˆλŠ” λˆ„κ΅¬ μŠ€ν”Όμ»€μ•„μ΄λ””λ₯Ό λ§μ”€ν•΄μ£Όμ„Έμš”.
      NUGU--

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1
      μ‚¬μš©μžEntityuser_ID
      • output.pastCycle

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1λ‹˜μ˜ 정보에 μž…λ ₯ν•©λ‹ˆλ‹€.
        NUGUEntityuser_ID-

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œκ·Έλž˜
        μ‚¬μš©μžEntityYON

        μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ μ’…λ£ŒμΌμ„ μž…λ ₯ν–ˆμŠ΅λ‹ˆλ‹€.
        NUGU--

        - answer.wrongID6 : μž…λ ₯ν•œ 아이디가 λ°μ΄ν„°λ² μ΄μŠ€μ— μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 경우
        - answer.WRONG6 : YONκ°€ '예'κ°€ μ•„λ‹Œ 경우


8) 생리 μ˜ˆμ •μΌ 쑰회

  • Intent : ask.predictCycle

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμƒλ¦¬ μ˜ˆμ •μΌμ•Œλ €μ€˜
    μ‚¬μš©μžEntityCYCLE_STATE-
  • Action : check.userID4

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬ μ–΄ν”Œμ˜ 메인 νŽ˜μ΄μ§€μ—μžˆλŠ” λˆ„κ΅¬ μŠ€ν”Όμ»€μ•„μ΄λ””λ₯Ό λ§μ”€ν•΄μ£Όμ„Έμš”.
    NUGU--

    μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1
    μ‚¬μš©μžEntityuser_ID
    • answer.predictBleed

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œ1λ‹˜μ˜ 정보λ₯Ό μ•Œλ €λ“œλ¦΄κ²Œμš”.
      NUGUEntityuser_ID-

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œκ·Έλž˜
      μ‚¬μš©μžEntityYON

      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œνšŒμ›λ‹˜μ˜ λ‹€μŒ μƒλ¦¬λŠ”2020-1-3에 μ‹œμž‘ν•΄μ„œ2020-1-9에 끝날 μ˜ˆμ •μž…λ‹ˆλ‹€.
      NUGUBackend Parameter-predictStart-predictEnd-
      * answer.NoPredictBleed : μž…λ ₯된 과거의 μ£ΌκΈ°κ°€ μ—†μ–΄μ„œ 예츑이 λΆˆκ°€λŠ₯ν•  경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμž…λ ₯된 μ£ΌκΈ°κ°€ μ—†λ„€μš”. μ–΄ν”Œμ—μ„œ μ£ΌκΈ°λ₯Ό μž…λ ₯ν•΄μ£Όμ„Έμš”.
      NUGU--
      * answer.wrongID4 : μž…λ ₯ν•œ 아이디가 λ°μ΄ν„°λ² μ΄μŠ€μ— μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œμ‘΄μž¬ν•˜λŠ” 아이디가 μ—†μ–΄μš”. 보름달 μ–΄ν”Œ 메인 νŽ˜μ΄μ§€μ—μ„œ λˆ„κ΅¬ μŠ€ν”Όμ»€ 아이디λ₯Ό ν™•μΈν•΄μ£Όμ„Έμš”.
      NUGU--
      * answer.WRONG4 : YONκ°€ '예'κ°€ μ•„λ‹Œ 경우
      μ£Όμ²΄λ°œν™” μ˜ˆμ‹œλ³΄λ¦„λ‹¬μ„ μ’…λ£Œν• κ²Œμš”.
      NUGU--]

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 ν˜•μ‹μ— λ§žμΆ”μ–΄ κ²°κ³Όλ₯Ό λ¦¬ν„΄ν•œλ‹€.

profile
λ‹Ήμ‹ μ˜ μ—¬μ„± 건강 지킴이

0개의 λŒ“κΈ€