PseudoRec

챗봇 시스템 아키텍처를 설계하는 방법 (2)

0

31

📌 챗봇 시스템 아키텍처 설계 방법 (2)

  1. 챗봇의 핵심 목적 정의 (이전 단계)
  2. 대화 흐름(Chat Flow) 설계 및 방법
  3. Node 설계 정의 방법 (To be continued…)

2. Chat Flow 설계 및 방법

앞서 (1) 비즈니스 목표 설정, (2) 사용자 정의 및 챗봇 페르소나 설정, (3) 사용 시나리오 작성, (4) 기능 우선순위 설정, (5) 기대 성과 측정을 정의했습니다. 이제 챗봇의 주요 목적이 정해졌다면, 본격적으로 Chat Flow 설계 방법을 살펴보겠습니다.

(1) 사용자 여정 분석

Chat Flow는 웹사이트 방문 초기부터 여러 단계에 걸쳐 사용자 여정을 분석하며, 각 단계에서 챗봇의 역할과 기능을 세분화합니다. 이를 통해 방문자들의 주요 니즈(Needs)와 문제점(Pain Points)를 파악하고, 가장 빈번하거나 중요한 요청을 식별하여 사용자 여정 지도(Customer Journey Map)를 작성합니다.

사용자 여정 지도를 작성한 뒤에는 챗봇이 처리해야 할 핵심 시나리오를 정의하는 과정이 필요합니다. 아래 예시 표에서는 챗봇이 반드시 다뤄야 할 중요한 시나리오를 빨간색으로 강조하여 명확히 나타냅니다. 핵심 시나리오는 챗봇에서 우선적으로 처리해야 하는 주요 역할과 기능을 의미합니다.

  • 사용자 여정 지도 예시
단계 사용자 행동 기대 니즈 챗봇 역할
인지 웹사이트 방문 제품 정보 획득 맞춤형 제품 추천, FAQ 제공
고려 제품 비교, 리뷰 확인 상세 정보, 가격 비교, 사용자 후기 확인 심층 정보 제공, 경쟁사 비교, 후기 요약
결정 구매 빠르고 안전한 결제, 배송 정보 간편 결제 안내, 배송 추적, 고객 지원, 주문 상태 확인
유지 사용 후 피드백 문제 해결, 추가 혜택 FAQ, 문제 해결, 맞춤형 제안, 환불 문의

(2) 챗봇 범위 설정

챗봇 개발의 초기 단계에서는 제공할 서비스와 기능을 명확히 정의하는 것이 중요합니다. 우선 최소 기능만 포함한 MVP(Minimum Viable Product) 형태로 범위를 설정하고, 이후 필요에 따라 점진적으로 기능을 확장하는 전략을 취합니다. 이는 앞서 정의한 핵심 시나리오를 기반으로 더욱 구체화해 나가는 과정이라고 이해할 수 있습니다.

예를 들어, 초기에는 FAQ 응답, 주문 조회, 배송 추적 기능과 같은 기본적인 서비스를 제공하며 시작할 수 있습니다. 이러한 방식은 개발 리소스를 효율적으로 사용하면서도 사용자 경험을 점진적으로 향상하는 데 도움이 됩니다.

  • 제공할 서비스와 기능 정의
  • 초기 MVP(Minimum Viable Product) 설정 후 점진적 확장 고려
  • 예시: FAQ 응답, 주문 조회, 배송 추적 기능 제공

(3) 챗봇 흐름 다이어그램 생성 (대화 시나리오)

챗봇의 대화 흐름은 사용자 여정을 기반으로 설계되어야 하며, 대화 시나리오와 챗봇의 목적을 충분히 반영해 체계적으로 작성하는 것이 중요합니다. 대화 흐름을 설계할 때는 사용자가 챗봇을 통해 원하는 결과를 직관적이고 효과적으로 얻을 수 있도록 논리적인 구조를 구축해야 합니다. 또한, 사용자 오류, 챗봇의 이해 실패, 시스템 오류와 같은 예외 상황을 사전에 고려하여 적절한 대응 방안을 마련하는 것이 필수적입니다.

이를 위해, 사용자 여정 지도를 기반으로 대략적인 대화 시나리오를 작성한 후, 챗봇에서 필수적으로 구현해야 할 기능을 설계합니다. 설계된 챗봇 구조는 다이어그램 도구를 활용해 시각적으로 표현함으로써 더 명확하게 전달할 수 있습니다. 이러한 과정은 챗봇의 기능을 체계적으로 구조화하고, 전체 흐름을 효율적으로 정리하는 데 매우 유용합니다.

  • 다이어그램 도구 활용하여 챗봇 흐름 다이어그램 설계
    • Mermaid.js, Lucidchart, draw.io 등을 활용하여 시각적인 챗플로우 다이어그램 작성
  • 이미지

  • 예시) 제품 판매 챗봇 대화 흐름 다이어그램 생성

    • 챗봇이 물건 판매를 지원하는 상황을 가정하고, 단계별 대화 시나리오를 체계적으로 정리해보겠습니다.
  • 대화 시나리오 작성 (사용자 여정 단계별) 아래는 사용자 여정의 각 단계(인지, 고려, 결정)에 맞춘 챗봇 대화 시나리오입니다.

    [인지 단계: 웹사이트 방문]

    1. 인사: 챗봇이 사용자에게 친근하게 인사하며 대화를 시작합니다.
      • 예: "안녕하세요! 저희 매장을 방문해 주셔서 감사합니다. 어떤 제품을 찾고 계신가요?"
    2. 질문하기: 사용자의 관심 및 요구를 파악하기 위해 질문을 던집니다.
      • 예: "원하는 제품의 카테고리를 선택해 주시겠어요? 예를 들어, 전자제품, 의류, 또는 액세서리!"
    3. 정보 제공: 사용자 요청에 맞는 제품 정보나 FAQ를 안내합니다.
      • 예: "지금 추천드리는 인기 상품은 [제품 이름]입니다. 상세정보를 확인해 보세요!"
    4. 제안: 추가적으로 맞춤형 제품을 추천하거나 사용자의 관심을 유도합니다.
      • 예: "이 상품 외에 다른 추천 제품이 필요하시면 말씀해주세요!"

    [고려 단계: 제품 비교 및 리뷰 확인]

    1. 질문하기: 사용자가 제품을 비교하거나 리뷰를 찾고 있는지 파악합니다.
      • 예: "특정 제품을 비교하고 싶으신가요? 제품명을 입력해 주세요."
    2. 정보 제공: 제품의 상세 정보, 가격, 사용자 후기 요약을 제공합니다.
      • 예: "이 제품의 주요 사양은 다음과 같습니다: [제품 사양]. 또한, 최근 리뷰 평점은 4.5/5입니다."
    3. 확인: 챗봇이 제공한 정보가 정확한지 사용자에게 확인합니다.
      • 예: "방금 제공된 정보가 도움이 되었나요? 혹시 더 궁금하신 점이 있으신가요?"
    4. 제안: 경쟁 상품이나 추가 옵션을 제공하며 결정을 돕습니다.
      • 예: "유사한 제품으로 [제품 이름]을 추천드릴 수 있는데, 한 번 확인해 보시겠어요?"

    [결정 단계: 구매]

    1. 질문하기: 구매 의사를 확인하고 필요한 정보를 요청합니다.
      • 예: "구매를 진행하시겠어요? 배송 정보를 입력해 주세요."
    2. 정보 제공: 간편 결제 안내와 배송 상태를 설명합니다.
      • 예: "배송 주소를 확인했습니다. 결제를 완료하면 상품은 3일 내로 도착할 예정입니다."
    3. 확인: 주문 정보를 다시 한번 확인합니다.
      • 예: "주문 번호는[12345]입니다. 배송 주소와 결제 금액이 모두 정확한지 확인 부탁드립니다."
    4. 제안: 추가로 관련 제품을 추천하거나 할인 정보를 제공합니다.
      • 예: "이와 함께 세트로 구매하시면 할인 혜택이 있습니다. 추가 구매를 고려하시겠어요?"
    5. 결론: 구매가 완료된 후 사용자를 축하하며 대화를 마무리합니다.
      • 예: "구매해 주셔서 감사합니다! 배송과 관련된 알림을 곧 받으실 겁니다. 좋은 하루 보내세요!"
    6. 위 대화 시나리오를 기반으로 챗봇 흐름도를 설계합니다.
graph LR
    A[사용자 요청] --> B{Router: 단순 챗봇 or 정보 제공 요구}
    B -- 단순 챗봇 --> C[챗봇: 사용자와 대화]
    C --> D[챗봇: 제품 제안]
    D --> E[대화 종료]

    B -- 정보 제공 요구 --> F[Agent: 정보 검색]
    F --> G[Agent: 주소나 기타 정보 확인]
    G --> H[Agent: 추가 제품 제안]
    H --> E[대화 종료]

    F -- 오류 발생 --> B
    G -- 오류 발생 --> B
  • 다이어그램으로 챗봇 흐름도를 나타내면 다음과 같습니다.
    • 챗봇의 주요 로직은 사용자의 요청을 분석하고 적합한 응답을 제공하는 데 중점을 둡니다. 핵심 역할을 수행하는 Router는 사용자의 요청이 단순한 대화를 원하는지, 아니면 구체적인 정보를 제공받아야 하는지를 판단합니다.
    • 단순 챗봇 로직의 경우 사용자의 요청에 대한 간단한 대화를 진행한 뒤, 추가로 관련 제품을 제안하고 대화를 종료하는 방식을 따릅니다. 한편, 정보 제공 로직에서는 Agent가 사용자가 원하는 정보를 검색하고, 주소와 같은 세부 사항을 확인한 뒤 추가로 제품을 제안하며 대화를 이어갑니다.
    • 만약 정보 제공 단계에서 오류가 발생할 경우, 다시 Router로 돌아가 요청을 재분석하거나, 단순 챗봇 로직으로 전환하여 사용자의 요청을 처리합니다.

이미지

Chat flow 설계를 통해 다이어그램을 생성하면, 구현 과정에서 큰 흐름과 체계를 잡는 데는 충분합니다. 각 기능들은 상황에 따라 Agent로 불릴 수도 있고, LangGraph에서는 Node로 표현되기도 합니다. LangGraph에서 Node는 에이전트(Agent)의 로직을 구현하는 Python 함수로 표현됩니다.

현재 다이어그램으로도 큰 흐름은 잘 정리되어 있지만, 장기적으로 각 노드를 관리하기 위해 입력(Input)과 출력(Output)이 어떻게 구성되는지, 그리고 노드별로 어떤 기능이 포함되는지를 체계적으로 정리할 필요가 있다고 생각합니다.

따라서 앞으로는 Node 설계 정의에 대한 논의를 진행하려고 합니다. 이 내용은 제가 공부하면서 작성한 것이므로 완벽하지 않을 수 있습니다. 확인하시고 더 좋은 아이디어가 있다면 피드백 부탁드립니다. 감사합니다.


Table of Contents

Leave a Comment:

로그인 후 댓글을 작성할 수 있습니다.

Comments:

No comments yet. Be the first to comment!