Python3에서 docomo의 자연 대화 : 잡담 api를 움직입니다.
docomo 자연 대화(잡담 대화)
docomo Developer support 가 제공하는 자연 대화 api. 조금 사용하는 분에는 무료.
잡담 대화 API의 특징
・유저의 아무렇지도 않은 한마디에 바리에이션 풍부한 응답을 돌려주는, 컴퓨터와 잡담을 즐길 수 있는 기능입니다. 잡담 대화 API는 사용자의 모든 발화에 항상 응답합니다.
・대화에 있어서의 화제와 문맥을 인식해, 대규모 발화 데이터로부터 응답문을 선택해 발화합니다.
docomo Developer support : API 자연 대화(잡담 대화)
코드 쓰기 전에 해야 할 일
· docomo Developer support 계정 등록
법인 정보 등 거의 아무것도 등록하지 않는 최소한의 계정에서도 가능.
· 신규 API 이용 신청
이용 개시는 오늘부터.
잡담 대화의 api에 체크가 붙어만 하면 된다.
API 신청이 끝나면 마이 페이지에 가서 Apikey를 복사해 온다.
잡담 대화
2회째 이후의 실행은 52-54행째를 코멘트 아웃 해, 1회째로 얻어진 appId를 55행째 기재하면 정보가 계승된다.
# -*- coding: utf-8 -*-
import requests
import json
from _datetime import datetime
# your APIKEY
KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# リクエストクエリ
endpoint = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue?APIKEY=REGISTER_KEY'
url = endpoint.replace('REGISTER_KEY', KEY)
# user registration
def register():
r_endpoint = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/registration?APIKEY=REGISTER_KEY'
r_url = r_endpoint.replace('REGISTER_KEY', KEY)
r_headers = {'Content-type': 'application/json'}
pay = {
"botId": "Chatting",
"appKind": "Smart Phone"
}
r = requests.post(r_url, data=json.dumps(pay), headers=r_headers)
appId = r.json()['appId']
return appId
def reply(appId, utt_content):
headers = {'Content-type': 'application/json;charset=UTF-8'}
payload = {
"language": "ja-JP",
"botId": "Chatting",
"appId": appId,
"voiceText": utt_content,
"appRecvTime": "2018-06-11 22:44:22", # 仮置き。これで動いてしまう。
"appSendTime": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
# Transmission
r = requests.post(url, data=json.dumps(payload), headers=headers)
data = r.json()
# rec_time = data['serverSendTime']
response = data['systemText']['expression']
print("response: %s" % response)
return response
if __name__ == "__main__":
# appIdを取得した2回目以降、コメントアウトして55行目に記載
appId = register()
print(appId)
# appId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
while True:
utt_content = input('>>')
reply(appId, utt_content)
결론
32행 이하의 내용이 서버에 보내지는 json 파일의 내용이 된다.
기능별 참조 에 있는 속성을 추가해 기재할 수 있다.
docomo 쪽에서 업데이트가 있었던 것이 아닐까. 어쩌면.
2018년 6월 11일 현재 이것으로 움직인다.
참고
uepon 매일 비망록
Reference
이 문제에 관하여(Python3에서 docomo의 자연 대화 : 잡담 api를 움직입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/aoyahashizume/items/a3d798bbb5c8d639abaa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
· docomo Developer support 계정 등록
법인 정보 등 거의 아무것도 등록하지 않는 최소한의 계정에서도 가능.
· 신규 API 이용 신청
이용 개시는 오늘부터.
잡담 대화의 api에 체크가 붙어만 하면 된다.
API 신청이 끝나면 마이 페이지에 가서 Apikey를 복사해 온다.
잡담 대화
2회째 이후의 실행은 52-54행째를 코멘트 아웃 해, 1회째로 얻어진 appId를 55행째 기재하면 정보가 계승된다.
# -*- coding: utf-8 -*-
import requests
import json
from _datetime import datetime
# your APIKEY
KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# リクエストクエリ
endpoint = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue?APIKEY=REGISTER_KEY'
url = endpoint.replace('REGISTER_KEY', KEY)
# user registration
def register():
r_endpoint = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/registration?APIKEY=REGISTER_KEY'
r_url = r_endpoint.replace('REGISTER_KEY', KEY)
r_headers = {'Content-type': 'application/json'}
pay = {
"botId": "Chatting",
"appKind": "Smart Phone"
}
r = requests.post(r_url, data=json.dumps(pay), headers=r_headers)
appId = r.json()['appId']
return appId
def reply(appId, utt_content):
headers = {'Content-type': 'application/json;charset=UTF-8'}
payload = {
"language": "ja-JP",
"botId": "Chatting",
"appId": appId,
"voiceText": utt_content,
"appRecvTime": "2018-06-11 22:44:22", # 仮置き。これで動いてしまう。
"appSendTime": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
# Transmission
r = requests.post(url, data=json.dumps(payload), headers=headers)
data = r.json()
# rec_time = data['serverSendTime']
response = data['systemText']['expression']
print("response: %s" % response)
return response
if __name__ == "__main__":
# appIdを取得した2回目以降、コメントアウトして55行目に記載
appId = register()
print(appId)
# appId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
while True:
utt_content = input('>>')
reply(appId, utt_content)
결론
32행 이하의 내용이 서버에 보내지는 json 파일의 내용이 된다.
기능별 참조 에 있는 속성을 추가해 기재할 수 있다.
docomo 쪽에서 업데이트가 있었던 것이 아닐까. 어쩌면.
2018년 6월 11일 현재 이것으로 움직인다.
참고
uepon 매일 비망록
Reference
이 문제에 관하여(Python3에서 docomo의 자연 대화 : 잡담 api를 움직입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/aoyahashizume/items/a3d798bbb5c8d639abaa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# -*- coding: utf-8 -*-
import requests
import json
from _datetime import datetime
# your APIKEY
KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# リクエストクエリ
endpoint = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue?APIKEY=REGISTER_KEY'
url = endpoint.replace('REGISTER_KEY', KEY)
# user registration
def register():
r_endpoint = 'https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/registration?APIKEY=REGISTER_KEY'
r_url = r_endpoint.replace('REGISTER_KEY', KEY)
r_headers = {'Content-type': 'application/json'}
pay = {
"botId": "Chatting",
"appKind": "Smart Phone"
}
r = requests.post(r_url, data=json.dumps(pay), headers=r_headers)
appId = r.json()['appId']
return appId
def reply(appId, utt_content):
headers = {'Content-type': 'application/json;charset=UTF-8'}
payload = {
"language": "ja-JP",
"botId": "Chatting",
"appId": appId,
"voiceText": utt_content,
"appRecvTime": "2018-06-11 22:44:22", # 仮置き。これで動いてしまう。
"appSendTime": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
# Transmission
r = requests.post(url, data=json.dumps(payload), headers=headers)
data = r.json()
# rec_time = data['serverSendTime']
response = data['systemText']['expression']
print("response: %s" % response)
return response
if __name__ == "__main__":
# appIdを取得した2回目以降、コメントアウトして55行目に記載
appId = register()
print(appId)
# appId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
while True:
utt_content = input('>>')
reply(appId, utt_content)
32행 이하의 내용이 서버에 보내지는 json 파일의 내용이 된다.
기능별 참조 에 있는 속성을 추가해 기재할 수 있다.
docomo 쪽에서 업데이트가 있었던 것이 아닐까. 어쩌면.
2018년 6월 11일 현재 이것으로 움직인다.
참고
uepon 매일 비망록
Reference
이 문제에 관하여(Python3에서 docomo의 자연 대화 : 잡담 api를 움직입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/aoyahashizume/items/a3d798bbb5c8d639abaa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)