AI 기초

챗봇 구축 방법: 아키텍처, 데이터, 안전성 및 평가

mm
Unite.AI를 Google의 선호 소스에 추가

챗봇은 메시지를 받고, 사용자의 요구를 파악한 뒤 텍스트 또는 음성으로 응답을 반환하는 애플리케이션입니다. 최신 시스템은 단일 모델에 의존하기보다 규칙, 검색, 분류기, transformers, 도구 및 대형 언어 모델을 결합할 수 있습니다.

유용한 챗봇을 구축하는 것은 제품 및 시스템 문제입니다. 대화 레이어는 신뢰할 수 있는 지식과 비즈니스 행동에 연결되어야 하며, 신원, 권한, 로깅, 평가, 폴백 및 인간 에스컬레이션이 봇이 수행할 수 있는 범위를 제한합니다.

핵심 요점

  • 좁은 사용자 작업과 측정 가능한 성공 기준부터 시작하십시오.
  • 언어 생성과 검색, 도구, 권한 및 비즈니스 규칙을 분리하십시오.
  • 모호성, 중단, 거부 및 복구를 포함한 전체 대화를 테스트하십시오.
  • 프롬프트와 모델 출력은 신뢰할 수 없는 데이터로 취급하고, 운영을 모니터링하며 에스컬레이션 경로를 유지하십시오.
How to Build a Chatbot: Architecture, Data, Safety, and Evaluation workflow diagram
프로덕션 챗봇은 답변을 작성하는 단순 모델이 아니라 제어된 워크플로우입니다.

모델을 선택하기 전에 작업 정의하기

사용자가 누구인지, 달성하려는 목표, 시스템이 접근할 수 있는 데이터, 그리고 확인이 필요한 행동을 기록하십시오. FAQ 봇, 주문 상태 도우미, 계정 관리 에이전트는 위험 프로파일이 크게 다릅니다.

비AI 기준선과 대표 대화의 수용 기준을 만들십시오. 작업 완료율, 답변 지원, 지연 시간, 포기율, 에스컬레이션 및 유해 오류 비용을 측정합니다. 유창한 데모가 워크플로우가 신뢰성 있게 작동한다는 증거는 아닙니다.

계층형 아키텍처 사용하기

전형적인 파이프라인은 채널 어댑터, 세션 상태, 입력 검증, 인텐트 또는 라우팅 로직, 검색, 응답 또는 정책 모델, 도구 어댑터, 그리고 관측성을 포함합니다. 검색은 승인된 문서에 근거해 답변을 제공할 수 있으며, 도구는 명시적인 스키마를 통해 제어된 행동을 수행합니다.

결정론적 검사는 언어 모델 외부에서 수행하십시오. 인증, 권한 부여, 재고 제한, 환불 및 되돌릴 수 없는 행동은 애플리케이션 코드에서 강제해야 합니다. 프롬프트 엔지니어링은 동작을 조정할 수 있지만 접근 제어 시스템은 아닙니다.

대화, 지식 및 복구를 함께 설계하기

훌륭한 대화는 불완전한 요청, 수정, 다중 인텐트 및 이전 턴에 대한 언급을 처리합니다. 작업에 필요한 컨텍스트만 저장하고, 보관을 가시화하며, 사용자 발언과 승인된 시스템이 반환한 신뢰할 수 있는 사실을 구분하십시오.

신뢰도나 증거가 충분하지 않을 경우, 봇은 구체적인 질문을 하거나 안전한 대안을 제시하거나, 간결한 요약과 함께 사람에게 전달해야 합니다. 복구는 핵심 경험의 일부이며, 출시 후에 추가되는 예외 상황이 아닙니다.

전체 시스템 평가 및 운영

검색 품질, 도구 선택, 인수 정확도, 정책 준수, 프롬프트 주입 방지, 개인정보 유출, 그리고 엔드투엔드 결과를 테스트하십시오. 레드팀을 통한 적대적 입력을 시도하고 악의적인 문서가 시스템 지시를 조용히 무시하지 못하도록 검증합니다.

프롬프트, 인덱스, 모델, 정책 및 도구의 버전을 관리하십시오. 개인정보 보호 제어가 적용된 샘플 대화를 검토하고, 드리프트와 오류 클러스터를 모니터링하며, 롤백을 유지합니다. 이러한 운영 규율은 챗봇 개발을 AIOps 및 사고 대응과 연결합니다.

핵심 챗봇 구성 요소 상세 설명

채널 레이어는 웹 채팅, 모바일 앱, 메신저 플랫폼 또는 음성으로부터 입력을 정규화합니다. 세션 레이어는 메시지를 인증된 혹은 익명 대화와 연결하고, 만료를 강제하며, 작업에 필요한 상태만 저장합니다. 입력 제어는 크기와 파일 유형을 제한하고, 위험한 페이로드를 감지하며, 하위 시스템이 실행해서는 안 되는 마크업을 제거합니다.

라우터는 요청이 결정론적 흐름, 검색, 생성, 혹은 인간 대기열에 속하는지를 판단합니다. 레이블 세트가 안정적일 때는 고전적인 인텐트 분류기가 여전히 유용하며, 언어 모델은 더 유연하지만 보정이 어렵습니다. 하이브리드 라우터는 규제된 혹은 대량 작업을 검증된 워크플로우에 할당하고, 개방형 설명에는 일반 모델을 사용할 수 있습니다.

응답 레이어는 증거와 상태를 별도로 전달해야 합니다. 생성된 문장은 검색된 구절을 인용할 수 있지만, 애플리케이션은 어떤 소스와 버전이 이를 지원했는지 보존해야 합니다. 대화 메모리는 사용자 선호와 검증된 계정 데이터를 구분해야 하며, 이전 사용자 메시지가 새로운 권한을 부여하도록 해서는 안 됩니다.

검색, 도구 및 트랜잭션

검색 품질은 벡터 검색 이전부터 시작됩니다. 문서는 소유권, 접근 라벨, 정식 버전, 유용한 청크, 그리고 삭제 날짜가 필요합니다. 쿼리 재작성, 키워드 검색, 임베딩, 필터 및 재정렬을 결합할 수 있습니다. 평가에서는 필요한 증거가 검색되었는지, 무관한 구절이 제외되었는지, 그리고 답변이 실제로 증거를 따르는지를 측정해야 합니다.

도구는 모델의 제안을 애플리케이션 코드에 대한 타입화된 요청으로 변환합니다. 각 도구는 제한된 목적, 명시적 스키마, 서버 측 검증, 최소 권한 자격 증명, 타임아웃, 가능한 경우 멱등성, 그리고 명확한 결과가 필요합니다. 모델은 제한된 비즈니스 작업이 노출될 수 있을 때 원시 데이터베이스 쿼리나 임의의 URL을 생성해서는 안 됩니다.

트랜잭션은 커밋 시점에 확인이 필요합니다. 사용자에게 수신자, 금액, 주소, 날짜 또는 접근 변경 등 주요 필드를 보여주고, 이전의 ‘예’ 응답을 새로운 행동에 대한 승인으로 간주하지 마십시오. 다단계 작업의 경우, 모델 외부에 상태 머신을 유지하여 재시도나 메시지 순서 변경이 필수 게이트를 건너뛰지 못하도록 합니다.

실용적인 구축 및 평가 계획

20~50개의 대표 작업으로 시작하고, 실패, 모호, 범위 외 요청을 포함하십시오. 기대되는 행동, 증거, 에스컬레이션 및 금지된 행동을 표시합니다. 가장 간단한 실행 가능한 흐름을 구현한 뒤, 측정된 결과를 개선하는 경우에만 검색이나 생성을 추가하십시오. 이렇게 하면 인터페이스가 복잡해지기 전에 재사용 가능한 회귀 테스트 스위트를 만들 수 있습니다.

구성 요소와 대화를 별도로 평가합니다. 검색 메트릭, 도구 호출 정확도, 정책 검사 및 응답 지원은 특정 실패를 진단하고, 작업 완료도와 사용자 노력은 시스템 수준의 품질을 드러냅니다. 이전 세부 정보를 수정하고, 흐름을 중단하고, 주제를 전환하고, 필요한 정보를 보류하며, 의존성 실패를 유발하는 다중 턴 테스트를 활용하십시오.

프로덕션 롤아웃은 사용자 그룹, 작업 및 권한별로 단계적으로 진행해야 합니다. 지원되지 않는 주장, 반복적인 명확화, 도구 거부, 에스컬레이션, 지연 및 포기를 모니터링하십시오. 개인정보 보호가 적용된 샘플을 검토하고, 각 도구에 대한 긴급 비활성화 경로를 유지하며, 사고 결과를 활용해 프롬프트, 데이터, 코드 및 테스트 세트를 함께 업데이트합니다.

실제 예시: 프로토타입에서 프로덕션까지의 지원 챗봇

소매업체가 주문 및 반품 문의에 답변하는 챗봇을 원한다고 가정해 보겠습니다. 먼저 지원되는 인텐트, 에스컬레이션 조건, 승인된 지식, 인증 규칙 및 금지 행동을 정의합니다. 식별되지 않은 과거 질문을 기반으로 테스트 세트를 구축하고, 여기에는 모호한 요청, 철자 오류, 다국어 입력, 화난 사용자, 프롬프트 주입, 답변이 없는 질문이 포함됩니다. 검색 기준선은 생성 응답이 정책이나 주문 상태를 주장하기 전에 증거를 반환해야 합니다.

런타임은 인텐트를 분류하고, 정책 구절을 검색하며, 계정 데이터가 필요할 때만 신원 확인을 요청하고, 범위가 제한된 주문 API를 호출하고, 답변을 구성하며 인용을 첨부할 수 있습니다. 각 도구 호출은 명시적인 스키마, 권한 확인, 타임아웃, 재시도 정책 및 멱등성 키가 필요합니다. 모델은 원시 데이터베이스 쿼리를 생성하거나 자체 권한을 결정해서는 안 됩니다. 취소나 환불과 같은 고영향 행동은 확인이 필요하며, 정의된 한도를 초과하면 인간 승인이 필요합니다.

인텐트 정확도, 답변 정확성, 증거 지원, 거부 품질, 성공적인 억제, 에스컬레이션 정밀도, 지연 시간 및 해결된 대화당 비용을 평가하십시오. 평균이 아닌 인텐트와 사용자 그룹별로 결과를 검토합니다. 프로덕션에서는 동의 기반 추적, 도구 결과, 검색된 문서 버전 및 사용자 수정 사항을 로그에 남깁니다. 점진적으로 롤아웃하고 기존 채널과 비교하며, 오류, 악용 또는 의존성 임계값이 초과될 경우 기능을 비활성화합니다.

실용적인 구현 체크리스트

개념을 제한되고 테스트 가능한 워크플로우로 전환하십시오: 작업 정의 → 라우팅 → 검색 → 생성 → 도구 사용 → 평가. 책임자를 지정하고, 데이터와 의존성을 문서화하며, 간단한 기준선을 설정하고, 수용 및 중단 기준을 정하고, 대표적인 실패를 테스트하며, 범위 확대 전에 모니터링, 롤백 및 검토를 정의합니다. 버전과 가정을 기록해 두면 다른 팀이 결과를 재현하고 변경 사항을 이해할 수 있습니다.

출시 전에, 시스템을 구축·운영·보안·영향을 받는 사람들과 문서화된 준비 검토를 실행하십시오. 정상 케이스, 경계 조건, 의존성 실패 및 오용을 테스트하고, 증거와 미해결 위험을 보존하십시오. 릴리스를 승인하고, 임계값을 변경하고, 출력을 무시하거나 운영을 중단할 수 있는 사람을 정의하십시오. 실제 데이터가 도착한 후 결정을 재검토하십시오, 기술적으로 성공적인 파일럿이더라도 더 넓은 규모에서 신뢰할 수 있는 성능을 보장하지 않기 때문입니다.

  • KNOWLEDGE: 승인된 출처 및 인용.
  • ACTIONS: 최소 권한을 가진 타입화된 도구.
  • RECOVERY: 명확히 하거나, 거부하거나, 에스컬레이션.

자주 묻는 질문

챗봇에 대형 언어 모델이 필요합니까?

아니요. 규칙, 검색, 양식 및 작은 분류기는 좁은 작업에 대해 더 안전하고 저렴할 수 있습니다. LLM은 유연한 언어 이해 또는 생성이 측정 가능한 가치를 제공할 때 유용합니다.

출시 전에 무엇을 테스트해야 합니까?

대표 작업, 지원되지 않는 요청, 모호한 언어, 도구 실패, 개인정보 경계, 적대적 프롬프트, 인간 인계, 지연 시간 및 모든 결과 행동의 정확성.

주요 참고 문헌

Haziqa는 AI 및 SaaS 회사들을 위한 기술 콘텐츠 작성에 광범위한 경험을 가진 데이터 과학자입니다.