문장을 아가씨풍이나 걸풍의 말투로 변환하는 기대의 docomo산 API를 사용해 보았다

7596 단어 Python3botdocomoAPI

소개



최근 채팅 도구의 보급, AI, 기계 학습의 발달로,
채팅봇이 가속적으로 증가하고 있습니다.

나도 유행을 타고 지식 베이스로부터 정보를 참조해 주는 챗봇을 만들어 보거나 했습니다.
그러나, 보통으로 챗봇을 만들면 문면이 매우 단단한 느낌이 되어 버립니다.



이것은 기계에 말하는 것처럼 매우 차갑습니다.
챗봇에게는 좀 더 사람에게 다가가는 말투를 해 주었으면 합니다.

아마도 채팅봇을 만든 적이 있는 엔지니어라면
아래와 같이 bot의 어조를 바꾸려고 고심하신 분이 많을까 생각합니다.


캐릭터 변환 기능의 자연 대화 API



이런 고민을 가진 전국 수천만의 엔지니어를 생각하는지,
요 전날 docomo Developer support에서 제공하는 자연 대화 API에 문자 변환 기능이 추가되었습니다.
docomo Developer support에 대해 자세히 알아보기
htps : // v. smt. 어디도. 네. jp/? p = 그럼 x

이번에는 채팅봇에 통합할 때까지는 하지 않고, 실제로 움직여서 어떻게 문장을 변환할 수 있는지 시험해 보겠습니다.
htps : // v. smt. 아무도. 네. jp/? p = cs. 아피. Page & Api _ Name = Natsura l_ Aa Gue & p_ Name = Api _6

검증 환경



requests 라이브러리가 들어있는 python3 실행 환경
docomo Developer support 계정

API 사용 준비



API의 이용 신청을 하자



아래 페이지에서 "신청하기"를 클릭하십시오.
로그인하지 않은 경우 먼저 로그인하세요.
htps : // v. smt. 어디도. 네. jp/? p = cs. 아피. Page & Api _ Name = Natsura l_ Aa Gue & p_ Name = Api_ Usage_s Senao


「신규 API 이용 신청에」를 클릭


필수 항목을 입력하세요.


자연 대화: 캐릭터 변환 확인


확인하고 완료되었습니다.


등록 어플리케이션 일람에 방금 작성한 것이 증가하고 있을 것입니다.


이것으로 API 사용 신청이 완료되었습니다.

사용자 등록하기



그런 다음 python3을 실행할 수 있는 환경으로 들어가십시오.
그리고 아래 파이썬 파일을 만드십시오.
KEY = 부분을 변경하십시오.
[centos@108-72-slackbot ~]$ cat chara_api.py

import requests
import json
import types

#APIKeyは先程のアプリケーション情報に書いてある自分のAPIKEYを入れてください
KEY = 'hogehogeAPIKRYhogehoge'

#エンドポイント指定
endpoint = 'https://api.apigw.smt.docomo.ne.jp/naturalCharaConv/v1/registration?APIKEY=REGISTER_KEY'
url = endpoint.replace('REGISTER_KEY', KEY)
# appKindも利用シーンに合わせて指定ください
payload = {'botId': "CharaConv", 'appKind': "Server"}
headers = {'Content-type': 'application/json'}
r = requests.post(url, data=json.dumps(payload), headers=headers)
print(r.json())


작성한 파일을 실행하십시오.
appId가 반환해야합니다.
이것은 나중에 사용하므로 메모하십시오.
[centos@108-72-slackbot ~]$ python3.6 chara_api.py
{'appId': 'hoge-hoge-hoge-hogehoge'}


API를 두드려보세요



그리고는 API를 두드리는 것뿐입니다.
아래 파일을 작성하십시오.
KEY = 및 appID : 변경
[centos@108-72-slackbot ~]$ cat chara_api.py
import requests
import json
import types

#APIKeyは先程のアプリケーション情報に書いてある自分のAPIKEYを入れてください
KEY = 'hogehogeAPIKRYhogehoge'

#エンドポイント指定
#appIdには先程取得した値を入れてください
endpoint = 'https://api.apigw.smt.docomo.ne.jp/naturalCharaConv/v1/dialogue?APIKEY=REGISTER_KEY'
txt = "Qiitaブログに投稿しました。みんなに見てもらえると嬉しいな"
url = endpoint.replace('REGISTER_KEY', KEY)
payload = {'language': "ja-JP", 'botId': "CharaConv", 'appId': "hoge-hoge-hoge-hogehoge", 'voiceText': txt, 'clientData': {'option': {'t': "ojo"}}, "appRecvTime": "2018-06-01 00:00:00", "appSendTime": "2018-06-01 00:00:00" }
headers = {'Content-type': 'application/json'}
r = requests.post(url, data=json.dumps(payload), headers=headers)
print(r.json())

그리고 실행! 이번에는 아가씨 어조를 지정해 보았습니다!
[centos@108-72-slackbot ~]$ python3.6 chara_api.py
{'systemText': {'expression': 'Qiitaブログに投稿しましたのよ。みんなに見てもらえると嬉しいですわ', 'utterance': 'Qiitaブログに投稿しましたのよ。みんなに見てもらえると嬉しいですわ'}, 'dialogStatus': {'commandId': '00000000000', 'task': {'taskId': '00000000'}, 'loopCount': '0'}, 'serverSendTime': '2018-06-28 17:53:26'}

"Qiita 블로그에 게시했습니다. 모두가 볼 수 있다면 기쁩니다."

'Qiita 블로그에 게시했습니다. 모두가 볼 수 있다면 기쁩니다. '
로 바뀌 었습니다. 좋은 느낌입니다.
입력하고 나서 생각했습니다만 Qiita는 아마 블로그가 아닙니다.

다른 어조도 시도해보기



코드의 ojo를 다른 것으로 바꾸면 어조가 바뀝니다.
'clientData': {'option': {'t': "ojo"}}

종류는 쓰기 시점에서 아래와 같습니다.


매개변수
어조


지정 없음
변환 없음

ehime1
에히메현 이마바리시 밸브

ehime2
에히메현 시코쿠 중앙시

ehime3
에히메현 마쓰야마시 벤치

칸사이
간사이 밸브

하카타
하카타 밸브

후쿠시마
후쿠시마 밸브

mie
삼중 밸브

maiko
마이코 바람

ojo
아가씨 스타일

부시
무사풍

gyaru
걸풍

burikko
부리코풍

akachan
아기 바람


걸과 브리코를 사용해 봅시다.
[centos@108-72-slackbot ~]$ python3.6 chara_api.py
{'systemText': {'expression': 'Qiitaブログに投稿したんだけどぉ。みんなに見てもらえると嬉しいしぃー', 'utterance': 'Qiitaブログに投稿したんだけどぉ。みんなに見てもらえると嬉しいしぃー'}, 'dialogStatus': {'commandId': '00000000000', 'task': {'taskId': '00000000'}, 'loopCount': '0'}, 'serverSendTime': '2018-06-28 17:56:03'}

[centos@108-72-slackbot ~]$ vi chara_api.py
[centos@108-72-slackbot ~]$ python3.6 chara_api.py
{'systemText': {'expression': 'Qiitaブログに投稿したのだ。みんなに見てもらえると嬉しいんだにゃん', 'utterance': 'Qiitaブログに投稿したのだ。みんなに見てもらえると嬉しいんだにゃん'}, 'dialogStatus': {'commandId': '00000000000', 'task': {'taskId': '00000000'}, 'loopCount': '0'}, 'serverSendTime': '2018-06-28 18:00:56'}

감상



문장을 먹이는 것만으로 좋은 느낌으로 바꿔 주었습니다.
이미 있는 채팅봇이나 Twitterbot에 끼우면 재미있을 것 같습니다!
내가 만든 채팅봇도 어쨌든 통합해보고 싶은 것이군요.

API 이용시



개발이나 검증 목적 이상으로 본 API를 사용하는 경우는 반드시 아래의 주의사항을 확인하신 후 이용해 주십시오.

좋은 웹페이지 즐겨찾기