[typescript] 타입스크립트와 AWS Lex로 챗봇 구축하기

본 포스트에서는 타입스크립트(TypeScript)와 AWS Lex를 사용하여 간단한 챗봇을 구축하는 방법을 안내합니다. AWS Lex는 자연어 처리(NLP) 기능을 제공하므로 사용자의 입력을 이해하고 응답을 생성하는 데 사용됩니다. TypeScript는 AWS SDK와 함께 사용하여 AWS 리소스와 상호작용하기 위한 강력한 도구로 사용됩니다.

1. 프로젝트 설정

먼저, 타입스크립트로 프로젝트를 설정합니다. 다음 명령을 사용하여 타입스크립트 프로젝트를 초기화합니다.

mkdir chatbot
cd chatbot
npm init -y
npm install typescript aws-sdk
npx tsc --init

2. AWS Lambda 함수 생성

AWS 콘솔 또는 AWS CLI를 사용하여 AWS Lambda 함수를 생성합니다. 이 함수는 챗봇 로직을 포함하고 있습니다.

// index.ts
import * as AWS from 'aws-sdk';

export async function handler(event: any) {
  const lexruntime = new AWS.LexRuntime({ region: 'us-east-1' });
  const params = {
    botAlias: '$LATEST',
    botName: 'ChatBot',
    inputText: event.message,
    userId: event.userId,
  };

  const response = await lexruntime.postText(params).promise();
  return response.message;
}

이 코드에서는 AWS SDK를 사용하여 AWS Lex와 상호작용하고, 챗봇으로부터 받은 응답을 반환합니다.

3. AWS Lex 설정

AWS 콘솔을 사용하여 AWS Lex 챗봇을 만듭니다. 챗봇의 의도(Intents)와 슬롯(Slots)을 정의하고, 유저가 입력한 내용에 대한 응답을 정의합니다.

4. 통합 테스트

로컬 환경에서 AWS Lambda 함수를 실행하여 테스트합니다.

npx lambda-local -l index.ts -h handler -t  '{"message": "Hello", "userId": "user1"}'

5. 웹 애플리케이션에 적용

웹 애플리케이션에서 AWS SDK를 사용하여 AWS Lambda 함수와 통합하여 챗봇을 사용할 수 있도록 합니다.

마무리

이렇게 타입스크립트와 AWS Lex를 사용하여 챗봇을 구축할 수 있습니다. 본 포스트에서는 간단한 예제를 다루었지만, 실제 프로덕션 환경에서는 보안, 성능 및 확장성을 고려하여 세부적으로 구성해야 합니다.

참고 자료: AWS SDK for JavaScript, AWS Lex Developer Guide