Demo Architecture

Untitled

  1. slack 사용자는 slack app을 통해 궁금한 사항을 질문합니다.
  2. Slack app의 특성상 3초 안에 response를 받아야 합니다. langchain 특성상 3초 만에 답변을 생성하는 것은 불가능하기에, Slack App에게 우선 200 response를 전달하고 사용자의 질문은 SQS에 등록합니다.
  3. Langchain을 구현하는 Lambda에서 SQS에서 메세지를 가져옵니다.
  4. 해당 메세지를 Langchain AmazonKendraReteriver를 활용하여 Kendra에 질문과 관련한 문서가 있는지 검색합니다.
  5. 검색한 결과를 기반으로 Prompt Engineering 기반으로 Bedrock을 통해 답변을 생성합니다. 답변이 불가능 할 시 모른다고 답변하도록 설정합니다.
  6. Bedrock을 통해 생성한 답변을 REST 기반으로 Slack 채널로 전달합니다.

Demo Output

Untitled

Demo Environment

Lesson Learned

1. Lambda 호출이 여러번되어 답변이 여러번 발생하는 문제

Untitled

Untitled