사상 리더

기술만으로는 채택을 보장할 수 없다: 내부 AI 채팅봇 구축에서 얻은 교훈

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

AI 채택이 산업 전반에 걸쳐 가속화됨에 따라, 새로 출시된 내부 애플리케이션을 지원하기 위한 채팅봇을 배포하는 것은 논리적인 결정 같았다. 그러나 애플리케이션 자체는 사용자 기대에 대한 전통적인 관점을 도전했다. 그것은 대부분의 사용자에게 익숙하지 않은 새로운 기술을 기반으로 하는 새로운 워크플로를 도입했다.

마찰을 줄이고 채택을 개선하기 위해, 채팅봇은 애플리케이션과 기본 기술에 대한 질문에 답변하도록 설계되었다. 목표는 사용자가 무엇을 해야 하는지뿐만 아니라 시스템이 왜那样 행동하는지 이해하도록 도와주는 것이었다. 우리는 맥락적 설명을 제공함으로써 학습을 가속화하고 혼란을 줄일 수 있다고 믿었다.

처음부터, AI 에이전트는 제한된 범위의 솔루션으로 설계되었다. 그것은 엄격히 문서화와 사용자 지원을 제공하도록 설계되었다. 개념적으로, 채팅봇은 전통적인 FAQ 문서의 동적 대체물로 작동하도록 의도되었다. 그것은 정적 콘텐츠를 넘어서서 대화형, 검색 가능하고 지속적으로 사용 가능한 인터페이스를 제공했다.

에이전트를 조직의 내부 채팅 환경에 통합하기 위해, 우리는 구조화된 메시지가 렌더링되는 방식, 대화 기록이 저장되는 방식, 시스템이 스레드 내의 참가자를 식별하는 방식을 이해해야 했다. 이것은 사용자 질문을 처리하기 위해 필요한 핵심 변수를 결정할 수 있도록 해주었다.

모델을 기반으로 하는 것: 환각에서 신뢰할 수 있는 맥락으로

대규모 언어 모델은 강력하지만, 맥락적 앵커링 없이 환각에 취약하다. 이를 해결하기 위해, 우리는 벡터 임베딩 기술을 구현했다.

사용자 가이드, 내부 문서 및 제품 비전은 숫자 벡터로 변환되었다. 이러한 임베딩은 의미적 의미를 캡처하여, 시스템이 단순한 키워드 매칭에 의존하는 대신 개념을 일치시킬 수 있도록 했다.

사용자가 질문을 하면, 시스템은 쿼리를 벡터 표현으로 변환하고 저장된 임베딩과 비교했다. 가장 의미적으로 관련된 문서를 검색하고 모델의 프롬프트에 주입했다. 모델은 그러면 그 특정 문서에 기반한 응답을 생성했으며, 종종 관련 정보를 요약했다.

이 접근법은 응답 정확도를 크게 개선했다. 일반 지식에만 기반한 답변을 생성하는 대신, 모델은 우리 조직의 문서를 맥락으로 사용하여 응답했다.

맥락 관리의 숨겨진 복잡성

대화 기록을 프롬프트에 포함하여 봇이 후속 질문을 해석하고 연속성을 유지할 수 있도록 하는 것이 중요했다. 기록이 없으면 상호작용이 단편화되고 반복되었다. 사용자는 종종 질문을 점진적으로 개선하며, 맥락이 없으면 “그 옵션”이나 “이전 단계”와 같은 참조를 해석할 수 없었다.

그러나 너무 많은 기록을 포함하면 다른 문제가 발생했다: 토큰 제한. 이것은 언어 모델이 최대 컨텍스트 창을 초과하는 입력을 자르기 때문이다. 질문이나 대화가 너무 길면 중요한 정보가 손실될 수 있었다. 이것은 명시적인 오류를 생성하지 않았지만 응답 품질 또는 검색 정확도를 저하했다.

이를 완화하기 위해, 우리는 프롬프트 크기를 제어하고 관련 콘텐츠를 우선순위로 지정하며 질문 길이를 모니터링하는 전략을 구현했다. 우리는 이전 메시지를 요약하고 대화의 가장 관련성이 높은 부분만 선택적으로 포함하는 것을 실험했다. 맥락은 중요했지만, 그것을 신중하게 관리해야 했다.

기능 확장 및 혼란 생성

문서화 기반 질문에 답변하는 것을 넘어서, 우리는 봇의 기능을 확장하기 위해 백엔드 함수를 추가했다. 이 함수는 사용자가 애플리케이션에 로그인하지 않고도 애플리케이션에서 직접 특정 공개 정보를 추출할 수 있도록 했다. 아이디어는 마찰을 줄이고 채팅봇을 유용한 인터페이스로 강화하는 것이었다. 그것은 정적 지식 계층이 아닌 단순한 지식 계층 이상의 것이었다.

그러나 이 확장은 일부 사용자에게 혼란을 가져왔다. 봇이 라이브 데이터를 검색하기 시작했을 때, 사용자는 플랫폼 내에서 직접 수행해야 하는 작업을 실행하도록 봇에 요청하기 시작했다. mereka는 채팅봇이 작업 단계를 대체할 수 있다고 가정했으며, 인증 또는 플랫폼 내에서 의도적인 실행이 필요한 단계를 포함했다.

봇은 그런 작업을 수행하도록 설계되지 않았다. 그러나 정보 지원과 작동 실행 사이의 구분은 항상 명확하지 않았다.

라이브 데이터를 통합하면 새로운 기술적 고려가 필요했다. 우리는 언제 질문이 임베딩 기반 검색을 거쳐야 하는지와 언제 백엔드 호출을 트리거해야 하는지 결정해야 했다. 그 결정 논리는 신중한 설계를 필요로 했다. 또한, 기술적 예외를 우아하게 처리하고 사용자에게 원시 시스템 오류를 노출하지 않도록 응답을 조정해야 했다.

다국어 기능은 자동으로 제공되지 않는다

테스트 중에, 우리는 봇이 영어로보다 다른 언어로 더 잘 수행된다는 것을 알게 되었다. 주된 이유는 구조적이었다: 임베딩을 생성하기 위해 사용된 대부분의 문서는 영어로 작성되었으며, 선택한 임베딩 모델은 영어 의미적 유사성을 위해 최적화되었다.

그것은 언어 간 검색이나 의미적 비교를 지원하지 않았다. 결과적으로, 비영어 쿼리는 관련성이 덜 높은 문서를 검색하여 약한 응답을 생성했다.

이것은 중요한 통찰력을 제공했다: 다국어 기능은 자동으로 제공되지 않는다.

기대가 범위 밖으로 확장될 때

사용 비용을 제어하기 위해, 우리는 사용자가 하루에ถาม을 수 있는 질문 수에 대한 제한을 구현했다. 그러나 우리는 질문의 범위를 명시적으로 제한하지 않았다. 사용자는 무엇이든 물어볼 수 있었다.

이 개방성은 예상치 못한 사용 패턴을 가져왔다. 일부 사용자는 애플리케이션과 관련이 없는 개인적 또는 탐색적 목적으로 봇과 상호작용하기 시작했다. 시간이 지남에 따라, 기대는 봇의 의도된 역할을超越했다. 사용자가 무엇을 기대하는지와 실제로 지원하는 것 사이에 간격이 생겼다.

이 불일치는 점차적으로 봇의 유용성을 감소시켰다. 사용량이 감소했고, 채팅봇은 최终적으로 폐기되었으며, 노력은 애플리케이션 자체를 더 직관적이고 사용하기 쉽게 재설계하는 쪽으로 방향을 틀었다.

진짜 교훈: 상호작용 설계

기술적인 관점에서, 시스템은 합리적으로 잘 작동했다. 그것은 문서를 검색하고, 대화 기록을 통합하고, 임베딩을 통해 환각을 줄이고, 백엔드 호출을 처리하고, 프롬프트 크기를 관리했다. 아키텍처는 의도된 대로 작동했다.

그러나 그것은 의도적인 상호작용 설계가 부족했다.

봇은 대화를 명확하게 형성하지 못했다. 그것은 일관되게 범위를 강화하지 못했다. 그것은 사용자에게 무엇을 할 수 있고 무엇을 할 수 없는지에 대한 구조화된 예를 제공하지 못했다. 그것은 질문에 답변했지만, 기대를 설정하지 못했다.

우리는 강력한 모델과 구조화된 데이터만으로는 충분하지 않다는 것을 배웠다. 사용자에게 에이전트의 역할, 경계, 강점에 대한 명확성을 제공하는 것이 필요하다. 시스템은 예시 프롬프트를 제공하고, 제한을 명확히 하고, 범위 밖의 질문을 일관되게 리디렉션해야 한다.

이 의도적인 프레이밍 없이, 기술적으로 사운드한 구현이라도 가치를 지속하기 위해 어려움을 겪을 수 있다. 사용자는 능력을 과대평가하거나 기대가 충족되지 않으면 탈퇴할 수 있다.

핵심적인 통찰은 간단하지만 강력하다.

대화형 AI를 구축하는 것은 기술적인 도전만이 아니다. 그것은 또한 상호작용 설계 도전이다.

강력한 맥락, 정확한 검색 및 강력한 아키텍처는 필요하지만, 충분하지 않다. 시스템의 효과는 에이전트의 역할을 정의하고, 경계를 전달하고, 사용자 기대를 형성하는 방식에 igual하게 зависит한다.

기술만으로는 채택을 보장할 수 없다. 명확한 상호작용 설계가 한다.

Angie Navia는 Jalasoft의 Full-Stack Developer로 5년간 생산용 애플리케이션을 구축하고 소프트웨어 솔루션에 AI 기능을 통합하는 경험을 가지고 있습니다. 그녀는 IBM의 Generative AI for Software Developers Specialization을 완료하고 일일 개발 워크플로에서 AI 도구를 적용합니다.