Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

AIP 챗봇의 문맥, 상태와 도구

AIP Chatbot Studio에서는 조직의 정보와 도구를 사용하는 대화형 챗봇을 구성합니다. AIP 챗봇은 사용자와 대화하면서 필요한 정보를 검색하거나 제공된 도구를 호출하여 업무를 수행할 수 있습니다.

이 도구는 이전에 AIP Agent Studio, 여기서 만드는 챗봇은 AIP Agents라는 이름으로 사용되기도 했습니다. 현재의 AIP Chatbot Studio와 AIP 챗봇을 이해할 때에는 네트워크 연결용 에이전트나 Apollo 에이전트와 구분해야 합니다.

챗봇을 구성하는 정보

챗봇의 동작에는 지시문, 애플리케이션 상태, 검색 문맥과 도구가 함께 관여합니다.

구성역할
지시문어떤 작업을 어떤 방식으로 수행할지 안내
애플리케이션 상태작업과 화면의 맥락에 따라 달라지는 변수 제공
검색 문맥사용자 메시지에 대응하여 찾은 정보 제공
도구모델이 직접 수행할 수 없는 외부 기능이나 조회 및 변경 작업 제공
대화 이력이전 메시지와 응답의 맥락 제공

모델에는 명시적으로 제공한 정보와 사용할 수 있도록 구성한 기능이 전달됩니다.

애플리케이션 상태

애플리케이션 상태(Application state)는 프롬프트에서 사용하여 LLM의 동작을 조정하는 애플리케이션 변수입니다. 작업의 요구에 따라 동적으로 바뀌는 입력을 제공할 수 있습니다. 이전 구성에서 이 개념을 parameters라고 부르는 경우도 있습니다.

가상의 고객 조회 화면에서 사용자가 특정 고객을 선택하면 관련 값을 챗봇에 전달하여 대화할 대상을 정할 수 있습니다. 연결할 변수와 제공할 정보는 챗봇에서 구성합니다.

애플리케이션 상태는 현재 작업에 필요한 값을 명시적으로 전달하는 구성이고, 대화 이력은 앞서 주고받은 메시지입니다. 화면에서 선택한 대상이 바뀌면 챗봇에 전달하는 상태도 의도대로 바뀌는지 확인해야 합니다.

지시문과 설명

지시문, 도구 설명과 변수 설명은 모델의 시스템 프롬프트에 들어갑니다. 이 정보는 모델이 주어진 문맥과 기능을 이용해 작업하는 방법을 안내합니다.

지시문은 먼저 작업의 핵심 목적을 제시하고, 필요한 정보와 도구 및 상태의 사용 방법을 이어서 구성하는 방식이 적합합니다. 도구와 변수의 설명에는 각각을 언제, 어떻게 사용해야 하는지 구체적으로 적습니다.

가상의 주문 조회 챗봇에는 "주문을 도와준다"는 목표와 함께 현재 선택한 고객을 확인할 변수, 주문 조회 도구를 호출할 시점, 사용자에게 추가 정보를 요청할 조건을 지정합니다.

도구 설명은 실제로 연결한 도구의 입력과 권한에 맞춰 작성합니다. 도구 연결과 실행 권한도 별도로 설정해야 합니다.

검색 증강 생성

검색 증강 생성(Retrieval-augmented generation, RAG)은 질문에 필요한 외부 정보를 검색하여 모델의 생성 과정에 제공하는 방식입니다. 모델이 학습 과정에서 알게 된 내용에만 의존하지 않고 현재 작업에 필요한 자료를 사용할 수 있게 합니다.

검색 대상에 필요한 자료를 포함하고, 검색 결과가 사용자 메시지와 관련된 내용인지 확인해야 합니다. 생성한 응답의 정확성도 별도로 검토합니다.

검색 문맥이 만들어지는 과정

검색 문맥(Retrieval context)은 각 메시지에 대응하여 검색한 구체적인 정보입니다. 기본적인 처리 순서는 다음과 같습니다.

  1. 사용자가 새 메시지를 보냅니다.
  2. 메시지를 바탕으로 구성된 데이터소스에서 관련 내용을 가져옵니다.
  3. 가져온 내용과 사용자 메시지를 모델에 함께 제공합니다.
  4. 모델이 제공된 문맥을 사용하여 응답을 생성합니다.

검색 대상에는 문서, 온톨로지 데이터나 함수의 출력 등을 사용할 수 있습니다. 어떤 데이터가 검색 대상인지와 그 결과를 모델에 어떻게 제공할지는 챗봇의 검색 문맥 구성에 달려 있습니다.

검색 문맥은 응답에 사용할 정보를 제공하고, 도구는 조회나 액션 같은 기능을 수행합니다. 같은 업무에서 두 기능을 함께 사용할 수 있습니다.

벡터 임베딩

벡터 임베딩(Vector embedding)은 텍스트의 의미를 수치 벡터로 표현한 값입니다. 텍스트 사이의 유사성을 비교하거나 관련 내용을 검색할 때 사용합니다.

챗봇에서는 메시지와 관련된 문서나 문맥을 찾는 데 임베딩을 활용할 수 있습니다. 문자열이 정확히 같은지를 비교하는 방식과 의미에 가까운 내용을 찾는 방식은 서로 다릅니다.

임베딩 벡터는 검색과 비교에 사용하는 수치 표현이며, 응답을 생성할 때는 검색으로 찾아낸 실제 정보가 문맥으로 제공됩니다.

도구

도구(Tool)는 LLM이 사용할 수 있도록 연결한 외부 기능이나 API입니다. 모델의 기본 생성 기능을 넘어 정보를 조회하거나 특정 작업을 수행할 때 사용합니다.

도구를 구성할 때에는 다음을 분리해서 생각해야 합니다.

  • 모델에 어떤 기능을 사용할 수 있다고 설명하는가?
  • 그 도구가 실제로 어떤 입력을 받고 무엇을 수행하는가?
  • 실행 결과로 어떤 정보나 변경이 발생하는가?
  • 호출할 수 있는 범위와 실행 권한은 무엇인가?

예를 들어 고객 정보 검색 도구는 조회 결과를 반환하고, 고객 상태를 변경하는 액션 도구는 실제 업무 데이터를 수정합니다.

문맥 창

문맥 창(Context window)은 모델이 한 번에 처리할 수 있는 텍스트의 범위입니다. 보통 토큰(Token) 단위로 계산합니다.

AIP 챗봇의 문맥에는 다음과 같은 내용이 포함됩니다.

  • 시스템 프롬프트.
  • 대화 이력.
  • 검색 문맥.
  • 애플리케이션 상태.
  • 도구와 사용에 필요한 정보.

문맥 크기를 계산할 때는 사용자의 마지막 메시지 외에 대화 이력, 검색 결과와 도구 설명도 포함해야 합니다.

문맥 창의 한도를 초과하면 오류가 발생하고, 계속 대화하려면 새 세션을 만들어야 합니다. 같은 작업을 안정적으로 수행하려면 제공할 정보의 관련성과 크기를 함께 고려해야 합니다.

챗봇을 함수로 게시하기

AIP 챗봇은 함수(Function)로 게시할 수 있습니다. 함수로 게시하면 플랫폼에서 함수를 실행할 수 있는 경로에 챗봇을 연결할 수 있습니다.

대표적인 사용 방식은 다음과 같습니다.

사용 위치활용 방식
AIP Evals챗봇의 동작을 평가 사례와 지표로 비교
Automate조건에 따라 챗봇 기반 업무 흐름 실행
Code Repositories코드에서 챗봇 함수를 활용

함수로 게시한 챗봇을 다른 실행 경로에서 호출할 때는 그 경로의 입력, 반환 결과와 실행 권한을 확인해야 합니다.

평가의 구성 요소는 AIP Evals, 블록 기반 AI 함수를 구성하는 방식은 AIP Logic 핵심 개념에서 설명합니다.