Conversational Analytics API 아키텍처 및 주요 개념

이 문서에서는 Conversational Analytics API(geminidataanalytics.googleapis.com) 사용에 관한 주요 개념을 설명합니다. 이 API를 사용하면 자연어를 사용하여 정형 데이터에 관한 질문에 답변하는 데이터 에이전트를 만들고 상호작용할 수 있습니다. 이 문서에서는 에이전트의 작동 방식, 일반적인 워크플로, 대화 모드, Identity and Access Management(IAM) 역할, 여러 에이전트로 시스템을 설계하는 방법을 설명합니다.

데이터 에이전트 작동 방식

Conversational Analytics API 데이터 에이전트는 사용자가 제공한 컨텍스트(비즈니스 정보 및 데이터)와 도구(예: SQL 및 Python)를 사용하여 자연어 질문을 해석하고 정형 데이터에서 응답을 생성합니다.

다음 다이어그램은 사용자가 질문할 때 에이전트 워크플로의 단계를 보여줍니다.

사용자 입력부터 추론 엔진을 거쳐 최종 출력까지의 흐름을 보여주는 Conversational Analytics API 아키텍처 다이어그램

다이어그램에 표시된 것처럼 사용자가 질문하면 에이전트는 다음 단계에서 요청을 처리합니다.

  1. 사용자 입력: 사용자가 자연어로 질문을 제출하고 개발자가 제공한 추가 컨텍스트를 함께 제출합니다.
  2. 데이터 소스: 에이전트가 Looker, BigQuery, Looker Studio의 데이터에 연결하여 필요한 정보를 가져옵니다.
  3. 추론 엔진: 에이전트의 핵심으로, 사용 가능한 도구를 사용해 응답을 생성하여 사용자의 질문을 처리합니다.
  4. 에이전트 출력: 에이전트가 텍스트, 데이터 테이블, 차트 사양 등을 포함할 수 있는 응답을 생성합니다.

에이전트 설계 및 사용 워크플로

Conversational Analytics API는 에이전트 생성자(에이전트를 빌드하고 구성하는 사용자)와 에이전트 소비자(에이전트와 상호작용하는 사용자)의 워크플로를 지원합니다.

다음 다이어그램은 에이전트 생성자의 초기 설정부터 에이전트 소비자의 최종 상호작용까지 엔드 투 엔드 프로세스를 보여줍니다.

생성 및 공유와 같은 생성자 작업부터 에이전트 상호작용과 같은 데이터 사용자 작업까지 에이전트 설계 및 사용을 위한 엔드 투 엔드 워크플로

다음 섹션에서는 에이전트 생성자와 에이전트 소비자의 워크플로를 자세히 설명합니다.

에이전트 생성자 워크플로

에이전트 생성자는 에이전트의 설정 및 구성을 담당합니다. 이 워크플로에는 다음 단계가 포함됩니다.

  1. 에이전트 만들기: 생성자는 먼저 새 에이전트를 만들고 시스템 요청 사항, 데이터 소스 연결 등 필요한 컨텍스트를 제공합니다. 이 단계는 에이전트가 사용자 질문을 효과적으로 이해하고 응답할 수 있도록 하는 데 중요합니다.
  2. 에이전트 공유: 에이전트가 구성되면 생성자가 다른 사용자와 공유하고 권한을 관리할 적절한 역할 기반 액세스 제어를 설정합니다.

에이전트 소비자 워크플로

에이전트 소비자는 일반적으로 구성된 에이전트로부터 답변을 받아야 하는 비즈니스 사용자입니다. 이 워크플로에는 다음 단계가 포함됩니다.

  1. 에이전트 찾기: 사용자가 먼저 자신과 공유된 에이전트를 찾습니다.
  2. 질문하기: 사용자가 자연어로 질문합니다. 이 질문은 단일 질문일 수도 있고 멀티턴 대화의 한 부분일 수도 있습니다.
  3. 에이전트 '사고': 에이전트의 추론 엔진이 질문을 처리합니다. 추론 엔진은 '추론 루프'에서 에이전트의 사전 정의된 지식과 사용 가능한 에이전트 도구(예: SQL, Python, 차트)를 사용하여 질문에 가장 적합한 응답 방법을 결정합니다.
  4. 에이전트 응답: 에이전트가 텍스트, 데이터 테이블 또는 차트가 포함될 수 있는 응답을 반환합니다.

대화 모드

Conversational Analytics API 에이전트는 에이전트가 대화 기록을 처리하는 방식과 상호작용 전반에서 컨텍스트의 지속성을 결정하는 다양한 대화 모드를 지원합니다. 사용 가능한 대화 모드는 다음과 같습니다.

  • 스테이트리스(Stateless) 모드: 에이전트가 대화 기록을 저장하지 않습니다. 각 상호작용은 독립적으로 처리됩니다. 이 모드는 여러 턴에 걸쳐 컨텍스트를 유지할 필요가 없는 애플리케이션에 유용합니다.
  • 스테이트풀(Stateful) 모드: 에이전트가 컨텍스트와 대화 기록을 유지하여 보다 컨텍스트에 맞는 상호작용이 가능합니다. 이 모드는 여러 턴에 걸쳐 컨텍스트를 유지해야 하는 애플리케이션에 유용합니다. 보다 우수한 정확성과 맞춤형 대답을 위해서는 스테이트풀(Stateful) 모드를 사용하는 것이 좋습니다.

대화 기록 및 컨텍스트 지속성에 대한 애플리케이션 요구사항에 따라 대화 모드를 선택합니다.

Conversational Analytics API 에이전트의 다양한 채팅 모드

IAM 역할

IAM 역할은 Conversational Analytics API 에이전트를 만들고, 관리하고, 공유하고, 상호작용할 수 있는 사용자를 제어합니다. 다음 표에서는 Conversational Analytics API의 주요 IAM 역할을 설명합니다.

역할 일반적인 범위 역할에서 사용 설정되는 기능 이 역할을 사용할 수 있는 사용자
Gemini 데이터 분석 데이터 에이전트 생성자(roles/geminidataanalytics.dataAgentCreator) 프로젝트 에이전트를 만들고 에이전트에 대한 소유자 권한을 상속합니다. 모든 데이터 분석가
Gemini 데이터 분석 데이터 에이전트 소유자(roles/geminidataanalytics.dataAgentOwner) 프로젝트, 에이전트 에이전트를 수정 또는 삭제하고 다른 사용자와 공유합니다. 선임 데이터 분석가
Gemini 데이터 분석 데이터 에이전트 편집자(roles/geminidataanalytics.dataAgentEditor) 에이전트, 프로젝트 에이전트의 구성 또는 컨텍스트를 업데이트합니다. 후임 데이터 분석가
Gemini 데이터 분석 데이터 에이전트 사용자(roles/geminidataanalytics.dataAgentUser) 에이전트, 프로젝트 에이전트와 채팅 마케팅 담당자, 매장 소유자
Gemini 데이터 분석 데이터 에이전트 뷰어(roles/geminidataanalytics.dataAgentViewer) 프로젝트, 에이전트 에이전트를 나열하고 세부정보를 가져옵니다. 모든 사용자
Gemini 데이터 분석 데이터 에이전트 스테이트리스(Stateless) 사용자(roles/geminidataanalytics.dataAgentStatelessUser) 프로젝트 컨텍스트 또는 대화 기록을 저장하지 않고 에이전트와 채팅합니다. 모든 사용자

에이전트가 여러 개인 시스템

여러 Conversational Analytics API 에이전트를 통합하여 복잡한 시스템을 설계할 수 있습니다. 일반적인 패턴은 판매 또는 마케팅 데이터와 같은 특정 도메인을 처리하는 하나 이상의 전문 에이전트에게 작업을 위임하는 기본 '조정자' 에이전트를 사용하는 것입니다. 이 접근 방식을 사용하면 여러 에이전트의 강점을 결합하여 다양한 질문을 처리할 수 있는 시스템을 빌드할 수 있습니다.

다음 다이어그램은 이 멀티 에이전트 패턴과 기본 에이전트가 전문 대화형 분석 에이전트에게 데이터 질문을 위임하는 방식을 보여줍니다.

기본 조정자 에이전트가 데이터 질문을 전문 판매 에이전트에게 위임하면 전문 판매 에이전트가 사용자에게 응답을 반환합니다.

멀티 에이전트 시스템의 일반적인 워크플로는 다음 단계를 포함합니다.

  1. 비즈니스 사용자 또는 데이터 분석가가 '수익이 가장 높은 상위 3개 매장을 보여줘'와 같은 자연어로 질문합니다.
  2. 기본 '조정자' 에이전트가 요청을 적절한 전문 에이전트에게 위임합니다.
  3. 전문 에이전트는 위임된 요청을 수신하고, 관련 데이터 소스에 연결하고, 도구를 사용하여 필요한 SQL 쿼리와 차트를 생성하고, 응답을 생성합니다.
  4. 전문 에이전트의 응답이 사용자에게 반환됩니다(예: '매장 4, 9, 3의 수익이 가장 높습니다. 차트를 제공해 드리겠습니다.'

다음 단계

Conversational Analytics API의 핵심 개념을 이해한 후 다음 기능을 구현하는 방법을 알아보세요.