-
CLOVA Summary API ํ์ด์ฌ์ผ๋ก ์ฌ์ฉํ๊ธฐTECH 2021. 8. 23. 22:21
์ต๊ทผ ๋ค์ด๋ฒ ํด๋ก๋ฐ์์ ๊ธด ๋ฌธ์๋ฅผ ์์ฝํด ํต์ฌ ๋ฌธ์ฅ์ ๋ฝ์๋ด ์ฃผ๋ Summary API๋ฅผ ์๋กญ๊ฒ ์ถ์ํ์ต๋๋ค.
https://www.ncloud.com/product/aiService/clovaSummary
์ ๋ ์กธ์ ์ํ ํ๋ก์ ํธ๋ก ๋น์ทํ ๋ฅ๋ฌ๋์ ํตํ ๋ฌธ์ ์์ฝ ๋ชจ๋ธ์ ๊ตฌํ ์ค์ด์๋๋ฐ์. Clova Summary๋ ์จ๋ณด์ง ์์ ์ ์๊ฒ ์ฃ ?
https://api.ncloud-docs.com/docs/ai-naver-clovasummary
์ฌ์ฉ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ฌ ํ์ด์ฌ์ผ๋ก ๊ตฌํํด ๋ณด์์ต๋๋ค.
์ฐ์ ์ฝ์์ Products & Services ๋ฉ๋ด์์ AI·NAVER API๋ก ๋ค์ด๊ฐ Application์ ๋ฑ๋กํด ์ค๋๋ค.
์ ๋ ๋ถ๋งํฌ๋ก ์ค์ ํด ๋์ ๋ถ๋งํฌ์์๋ ์ฝ๊ฒ ๋ค์ด๊ฐ ์ ์์ต๋๋ค.
Application ๋ฑ๋ก ๋ฒํผ์ ๋๋ฅด๋ฉด Application ์ด๋ฆ์ ์ค์ ํ๊ณ ์๋น์ค๋ฅผ ์ ํํ๋ ์ฐฝ์ด ๋น๋๋ค.
CLOVA Summary๋ง ์ฌ์ฉํด ๋ณผ ๊ฒ์ด๋ฏ๋ก, CLOVA Summary๋ฅผ ์ ํํด ์ค๋๋ค.
์๋น์ค ํ๊ฒฝ๋ ๋ฑ๋กํ๋ฉด ๋๋๋ฐ์. ์ ๋ Django Web์์ ์ฌ์ฉํด ๋ณผ ๊ฑฐ๋ผ ์ฅ๊ณ ์๋ฒ์ธ http://127.0.0.0:8000๋ฅผ ๋ฑ๋กํด ์ฃผ์์ต๋๋ค.
์๋๋ก์ด๋ ์ฑ์ด๋ iOS์ฑ์์ ์ฌ์ฉํ์ค ๋ถ๋ค์ ๋ฐ๋ก ํจํค์ง ์ด๋ฆ์ด๋ ๋ฒ๋ค ์์ด๋๋ฅผ ๋ฑ๋กํด ์ฃผ์๋ฉด ๋๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ฑ๋กํ App์ด ์ด๋ ๊ฒ ๋น๋๋ค. ์ธ์ฆ ์ ๋ณด๋ฅผ ๋๋ฅด๋ฉด
ํด๋ผ์ด์ธํธ ID์ ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ ํค๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.
ํ์ด์ฌ์ผ๋ก Summary API๋ฅผ ๊ตฌํํ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ ์ฝ๋๋ CLOVA Speech ์์๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค.
#!/usr/bin/python # -*- coding: utf-8 -*- import sys import requests import json import my_settings client_id = my_settings.CLIENT_ID client_secret = my_settings.CLIENT_SECRET url = 'https://naveropenapi.apigw.ntruss.com/text-summary/v1/summarize' headers = { 'Accept': 'application/json;UTF-8', 'Content-Type': 'application/json;UTF-8', 'X-NCP-APIGW-API-KEY-ID': client_id, 'X-NCP-APIGW-API-KEY': client_secret } data = { "document": { "content": "๊ฐํธ์ก๊ธ ์ด์ฉ๊ธ์ก์ด ํ๋ฃจ ํ๊ท 2000์ต์์ ๋์ด์ฐ๋ค. ํ๊ตญ์ํ์ด 17์ผ ๋ฐํํ '2019๋ ์๋ฐ๊ธฐ์ค ์ ์์ง๊ธ์๋น์ค ์ด์ฉ ํํฉ'์ ๋ฐ๋ฅด๋ฉด ์ฌํด ์๋ฐ๊ธฐ ๊ฐํธ์ก๊ธ์๋น์ค ์ด์ฉ๊ธ์ก(์ผํ๊ท )์ ์ง๋ํด ํ๋ฐ๊ธฐ ๋๋น 60.7% ์ฆ๊ฐํ 2005์ต์์ผ๋ก ์ง๊ณ๋๋ค. ๊ฐ์ ๊ธฐ๊ฐ ์ด์ฉ๊ฑด์(์ผํ๊ท )๋ 34.8% ๋์ด๋ 218๋ง๊ฑด์ด์๋ค. ๊ฐํธ ์ก๊ธ ์์ฅ์๋ ์ ๋ถ์ ์์ง๊ธ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ ์๊ธ์ต์ ์์ ๊ธ์ต๊ธฐ๊ด ๋ฑ์ด ์ฐธ์ฌํ๊ณ ์๋ค. ์ด์ฉ๊ธ์ก์ ์ ์๊ธ์ต์ ์๊ฐ ํ๋ฃจํ๊ท 1879์ต์, ๊ธ์ต๊ธฐ๊ด์ด 126์ต์์ด์๋ค. ํ์์ ์นด์นด์คํ์ด, ํ ์ค ๋ฑ ๊ฐํธ์ก๊ธ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ ์ฒด ๊ฐ ๊ฒฝ์์ด ์ฌํ๋๋ฉด์ ์ด์ฉ๊ท๋ชจ๊ฐ ํฌ๊ฒ ํ๋๋๋ค๊ณ ๋ถ์ํ๋ค. ๊ตญํ ์ ๋ฌด์์ํ ์์ ๋ฐ๋ฅธ๋ฏธ๋๋น ์ ์๋ ์์์ ๋ฐ๋ฅด๋ฉด ์นด์นด์คํ์ด, ํ ์ค ๋ฑ ์ ๋ถ์ ์์ง๊ธ์๋น์ค ์ ๊ณต์ ์ฒด๋ ์ง๋ํด ๋ง์ผํ ๋น์ฉ์ผ๋ก 1000์ต์ ์ด์์ ์ง์ถํ๋ค. ๋ง์ผํ ๋น์ฉ ์ง์ถ๊ท๋ชจ๋ ์นด์นด์คํ์ด๊ฐ 491์ต์, ๋น๋ฐ๋ฆฌํผ๋ธ๋ฆฌ์นด(ํ ์ค)๊ฐ 134์ต์ ๋ฑ ์์ผ๋ก ๋ง์๋ค." }, "option": { "language": "ko", "model": "news", "tone": 2, "summaryCount": 3 } } response = requests.post(url, headers=headers, data=json.dumps(data).encode('UTF-8')) rescode = response.status_code if(rescode == 200): print (response.text) else: print("Error : " + response.text)
document ํ๋ ๋ด์๋ content ํ๋์ title ํ๋๋ฅผ ๋ฃ์ ์ ์๊ณ , title์ ํ์ ํ๋๊ฐ ์๋์ด์ ์ ์ธํ์ต๋๋ค. content์ title ํ๋๋ฅผ ํฉ์ณ 2000์ ๋ด๋ก๋ง ์์ฝ์ด ๊ฐ๋ฅํฉ๋๋ค.
option ํ๋ ๋ด์๋ language, model, tone, summaryCount ํ๋๋ฅผ ๋ฃ์ ์ ์๊ณ language ํ๋๋ง ํ์๋ก ์ง์ ํด ์ฃผ๋ฉด ๋ฉ๋๋ค. ํ์ฌ๋ ํ๊ตญ์ด์ ์ผ๋ณธ์ด๋ง ์ง์ํฉ๋๋ค. ๋๋จธ์ง ์ฌํญ์ API ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ ๋ ํด๋ผ์ด์ธํธ ID์ Secret์ my_settings.py ํ์ผ์ ์๋ก ๋ง๋ค์ด ์ํฌํธํ๋ ํ์์ ์ฌ์ฉํ์ต๋๋ค.
์ ํ์ผ๊ณผ ๊ฐ์ ์์น์ my_settings.py๋ฅผ ๋ง๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
CLIENT_ID = '๋ณธ์ธ์ ํด๋ผ์ด์ธํธ ์์ด๋' CLIENT_SECRET = '๋ณธ์ธ์ ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ'
์ ์ ๊นํ๋ธ์ 2000์ ์ด์์ ๋ฌธ์๋ ๋์ด์ ์์ฝํ๋ ๊ฐ๋ตํ ์ฝ๋๊ฐ ์์ผ๋ ํ์ํ์๋ค๋ฉด ์ฐธ๊ณ ํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
https://github.com/ttaerrim/ncloud_summary
'TECH' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] Checkbox (2) โ ๋ฒํผ์ผ๋ก ์ ํ ํด์ ํ๊ธฐ (0) 2022.02.21 [React] Checkbox (1) โ Context API๋ก Checkbox ์ํ ๊ด๋ฆฌํ๊ธฐ (0) 2022.02.19 [JavaScript] url-exist ์ฌ์ฉํ์ฌ url ์ ํจํ์ง ๊ฒ์ฌํ๊ธฐ (0) 2021.07.29 [git] The requested URL returned error: 403 (0) 2021.07.28 [Error] VSCode bash ์ฐฝ์์ conda activate ์ ๋ ๋ (0) 2021.07.26