안녕하세요. 오늘 가입했습니다.
챗봇 개발에 관심이 있어 인터넷 검색을 통해 들어오게 되었습니다.
제가 질문드리고자 하는 것은 현재 제가 aws lambda와 api gateway를 사용하여 간단히 곱셈을 수행하는 챗봇을 연습해 보려하고 있습니다.
lamdba에서 아래와 같은 코드를 작성하였습니다.
import json
def lambda_handler(event, context):
request_body = json.loads(event['body'])
a = int(request_body['action']['params']['a'])
b = int(request_body['action']['params']['b'])
result = {
"version": "2.0",
data : {
"c": a*b
}
}
return {
'statusCode': 200,
'body': json.dumps(result),
'headers': {
'Access-Control-Allow-Origin': '*',
}
}
Kakao i open builder 스킬에서 실행하였을 때는 아래 첨부한 결과1.png과 같이 잘 실행되는 것을 확인할 수 있었습니다.
그리고 아래처럼 시나리오를 시나리오블록1(곱하기ab).png, 시나리오블록2(스킬).png처럼 작성한 뒤 실행해보았습니다.
그리고 카카오톡으로 제 챗봇에서 입력된 a,b 값이 잘 입력된 것을 확인할 수 있었는데, aws 연산된 값이 출력이 되지 않습니다.
이 경우 a와 b를 곱한 값인 c를 출력하려면 어떻게 해야할까요? 챗봇 개발자님들의 도움 부탁드립니다. 긴 글 읽어주셔서 감사합니다.
위의 내용만 가지고는 확실하지 않지만 컨텍스트로 연결을 안한 것 같습니다. 첫 번째 블록에서 a, b를 받은 다음에 스킬 블록으로 이동합니다. 이때 컨텍스트로 a, b의 정보를 같이 보내고 스킬 블록에서 파라미터에 설정하여 재사용해야 합니다. 그냥 스킬 블록을 안쓰고 블록 하나에서 바로 응답시 api 스킬로 보내는게 좋을 듯 합니다.
https://i.kakao.com/docs/key-concepts-context