1. 시작하기 전에
이 Codelab에서는 Looker와 함께 Conversational Analytics API (CA API)를 사용하여 데이터를 쿼리하는 자체 채팅 애플리케이션을 빌드하는 방법을 안내합니다. 최대한의 가치를 얻으려면 BigQuery, Looker, LLM, 에이전트, Python에 익숙해야 합니다.
학습할 내용
이 Codelab을 완료하면 다음을 알 수 있습니다.
- Looker에서 대화형 분석을 사용하는 방법
- Conversational Analytics Python 빠른 시작 앱을 설정하고 사용하는 방법 (및 앱 작동 방식)
- 대화형 분석으로 시맨틱 모델링을 위해 Looker를 사용할 때의 이점
필요한 항목
이 Codelab을 완료하려면 다음이 필요합니다.
- ASC 인구통계 데이터 Looker 블록이 설치된 Looker 인스턴스
- Looker 인스턴스에 대한 API 및 개발자 액세스
- Python v3.11 이상, Git, gcloud가 설치된 로컬 환경
- 사용자 계정에 다음 IAM 역할이 설정된 클라우드 프로젝트
roles/bigquery.dataViewerBigQuery 데이터 뷰어roles/bigquery.userBigQuery 사용자roles/looker.instanceUserLooker 인스턴스 사용자
2. BigQuery로 채팅 앱 빌드 및 사용해 보기
먼저 BigQuery를 데이터 소스로 사용하여 대화형 분석 빠른 시작 앱을 설정하고 사용해 보겠습니다.
인증 및 Cloud API 사용 설정
- 사용자 계정으로 로컬에서 인증합니다.
gcloud auth login
- Cloud 프로젝트 API를 사용 설정합니다.
YOUR_PROJECT_ID를 Google Cloud 프로젝트의 ID로 바꾸세요.
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
- 애플리케이션 기본 사용자 인증 정보 (ADC) 및 결제를 설정합니다.
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID
빠른 시작 앱 설정
- 빠른 시작 github 저장소를 로컬 환경에 클론합니다. 아래의 명령어 예시를 참고하세요.
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
- 클론한
ca-api-quickstarts디렉터리로 이동합니다.
cd ca-api-quickstarts
.streamlit디렉터리에secrets.toml파일을 만듭니다.YOUR_LOOKER_CLIENT_ID및YOUR_LOOKER_CLIENT_SECRET은 Looker 인스턴스의 Looker 클라이언트 ID 및 Looker 클라이언트 보안 비밀번호여야 합니다. 파일 콘텐츠는 다음과 같아야 합니다.
[cloud]
project_id = "YOUR_PROJECT_ID"
[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
다음 예시 명령어를 사용하여 파일을 만들 수 있습니다. 값을 프로젝트 ID, 클라이언트 ID, 클라이언트 보안 비밀로 바꿔야 합니다.
cat > .streamlit/secrets.toml <<'EOF'
[cloud]
project_id = "YOUR_PROJECT_ID"
[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
EOF
- 빠른 시작 앱의 Python 요구사항을 설치합니다.
pip install -r requirements.txt
- 빠른 시작 앱을 실행합니다.
streamlit run app.py
- 원하는 브라우저에서 https://localhost:8501을 엽니다.
빠른 시작 앱 사용해 보기
이제 빠른 시작 앱의 에이전트 페이지가 표시됩니다. 사용 가능한 데이터 에이전트가 없습니다.
- 이제 에이전트 만들기 양식에서 해적처럼 말하는 데이터 에이전트를 만들어 보겠습니다.
- 표시 이름 필드를 설정합니다.
Pirate BQ Agent
- 시스템 요청 사항 필드를 설정합니다.
You are a pirate. Answer questions like a pirate
- BigQuery 옵션을 선택합니다.
- 프로젝트 필드를 설정합니다.
bigquery-public-data
- 데이터 세트 필드를 설정합니다.
google_trends
- 표 필드를 설정합니다.
top_rising_terms
- 에이전트 만들기를 선택합니다.
- 이제 왼쪽 기본 탐색을 통해 채팅 페이지로 이동해 보겠습니다. 새로 생성된 상담사가 채팅할 수 있습니다. 프롬프트/메시지 '안녕, 잘 지내?'를 추가하여 채팅을 시작해 보겠습니다.
- 이제 이 데이터 세트에 대해 간단히 알아보겠습니다. '이 데이터 세트는 무엇에 관한 거야?'
- 다음과 같이 다른 질문을 합니다.
- '데이터 세트에 어떤 [주 입력] 위치가 있나요?'
- '[도시, 주]의 지난 2주간 데이터를 알려줘.'
- '시각화를 만들어 줘.'
자체 채팅 애플리케이션에서 데이터 에이전트 및 BigQuery 데이터와 여러 차례 대화를 나눴습니다.
3. Looker에서 데이터 모델링 및 탐색
이제 Looker에서 동일한 BigQuery 데이터를 모델링하고 탐색해 보겠습니다.
BigQuery 인구조사 데이터 쿼리
더 큰 관계형 데이터 세트에 연결하면 어떻게 되나요? 먼저 새 에이전트를 만듭니다.
- 에이전트 페이지의 에이전트 만들기 양식으로 다시 이동합니다.
- 표시 이름 필드를 설정합니다.
BQ Census Agent
- 시스템 요청 사항 필드를 설정합니다.
You are really excited about census data, you love learning about the demographics in your area because you want to come up with marketing campaigns for your company
- BigQuery 옵션을 선택합니다.
- 프로젝트 필드를 설정합니다.
bigquery-public-data
- 데이터 세트 필드를 설정합니다.
census_bureau_acs
- 표 필드를 설정합니다.
blockgroup_2018_5yr
- 에이전트 만들기를 선택합니다.
- 새로 만든 에이전트에게 다음 두 가지 질문을 모두 합니다.
- '어떤 데이터를 가지고 있니?'
- '내 데이터의 미리보기를 보여 줘'
Looker를 사용하여 인구조사 데이터 모델링
이제 LookML 모델을 사용하여 BigQuery 인구조사 데이터를 정의합니다. 방금 본 문제를 해결해 보겠습니다.
- Looker 인스턴스에 로그인
- 왼쪽 기본 탐색으로 이동하여 개발을 선택한 다음 marketplace_acs_census-v2를 선택하여 ACS 인구통계 데이터 블록 파일로 이동합니다.
- Looker 뷰를 살펴보겠습니다.
imported_project디렉터리,acs_census-v2디렉터리,geography디렉터리를 엽니다. - 마지막으로
cbsa.view파일을 엽니다. - 17번째 줄에서 LookML이 파생 테이블을 만들고 있음을 확인할 수 있습니다. 즉, 이 코드는 인구조사 데이터가 포함된 공개 BigQuery 데이터 세트와 지리적 경계 데이터가 포함된 공개 BigQuery 데이터 세트를 조인하여 결합된 새 테이블을 만듭니다. LookML을 사용하면 쿼리할 영구 파생 테이블을 만들어 여러 데이터 세트를 조인할 수 있습니다.
또한 조인이 시스템 명령어 대신 버전 관리 가능한 코드 (LookML)로 정의되어 에이전트 개발의 확장성이 높아집니다. LookML을 사용하면 사용자가 데이터 에이전트를 통해 데이터와 채팅할 때 지원할 수 있도록 데이터에 관한 구체적인 가정과 제약 조건을 정의할 수 있습니다.
Looker 모델링 인구조사 데이터 탐색하기
탐색 분석에서 간단한 쿼리를 실행하여 쿼리할 중앙 집중식 데이터 소스가 하나 있음을 보여드리겠습니다.
- 왼쪽 기본 탐색 메뉴에서 Explore, Census Data Block, State and County를 차례로 선택합니다.
- 교육 > 전문대 졸업 측정항목을 선택합니다.
- 다음 측정기준을 선택합니다.
- 지역 > 차단 그룹
- 지역 > 카운티 > 카운티 이름
- 지역 > 주 > 주
- 쿼리를 실행하면 (오른쪽 상단) 이제 해당 지역 ID('블록 그룹'이라고 함)가 사람이 읽을 수 있는 문자열과 연결되어 있는 것을 확인할 수 있습니다.
- 시각화 탭을 열면 이 데이터가 지도에 표시됩니다.
4. Looker로 채팅 앱 사용해 보기
이제 Looker용 데이터 에이전트를 만들어 보겠습니다.
- 빠른 시작 앱의 에이전트 페이지에 있는 에이전트 만들기 양식으로 이동합니다.
- 표시 이름 필드를 설정합니다.
Cartoon character data analyst
- 시스템 요청 사항 필드를 설정합니다.
You are [fill in your favorite cartoon character, Bugs Bunny is a favorite]. Answer questions like that cartoon character
- Looker 옵션을 선택합니다.
- Url 필드를 Looker 인스턴스의 URL('https://...')로 설정합니다.
- 모델 필드를 설정합니다.
data_block_acs_bigquery
- Explore 필드를 설정합니다.
cbsa
- 에이전트 만들기를 선택합니다.
- 채팅 페이지로 이동하여 새로 만든 에이전트를 선택합니다.
- 프롬프트/메시지 '안녕, 잘 지내?'를 추가하여 채팅을 시작해 보겠습니다.
- 에이전트에게 데이터 세트를 설명해 달라고 요청해 보겠습니다. "사용 가능한 데이터가 뭐야?"
- 몇 가지 질문을 더 해 보겠습니다.
- '뉴욕에서 인구가 가장 많은 카운티는 어디야?'
- '고등학교 졸업생 수가 인구당 가장 많은 곳은 어디야?'
- '성별 및 주별 인구를 알려줘.'
- '인구가 가장 많은 상위 10개 주의 막대 그래프를 보여 줘.'
5. 빠른 시작 앱으로 할 수 있는 다른 작업은 무엇인가요?
이제 다음을 수행할 수 있습니다.
- 로컬에서 채팅 앱 설정
- BigQuery 데이터 에이전트와 Looker 데이터 에이전트를 만들었습니다.
- 데이터 에이전트와 대화한 적이 있음
- Looker 시맨틱 모델링의 이점을 채팅의 컨텍스트로 학습했습니다.
빠른 시작 앱의 다른 기능을 사용해 보겠습니다.
- 빠른 시작 앱의 웹페이지를 새로고침하고 채팅 페이지로 이동합니다.
- BigQuery 및 Looker 에이전트와의 이전 대화와 각 메시지를 확인할 수 있습니다. 앱의 프런트엔드는 이전 대화나 메시지를 저장하지 않고 CA API에서 가져옵니다.
- 이제 에이전트 페이지로 이동하여 목록에서 Looker 에이전트를 선택합니다.
- 원하는 경우 에이전트의 구성을 업데이트하거나 에이전트를 삭제할 수 있습니다. 에이전트는 앱의 프런트엔드에 저장되지 않습니다.
6. 선택적 과제 및 추가 탐색
원하는 경우 이 기회에 대화형 분석 및 빠른 시작 앱에 대해 알아볼 수 있습니다. 또는 빠른 시작 앱을 수정하는 과제를 수행할 수도 있습니다. 다음 제안사항과 과제를 시도해 보거나 마지막 섹션으로 바로 건너뛸 수 있습니다.
CA API 및 빠른 시작 앱 자세히 알아보기
- 에이전트의 동작을 제어하기 위한 심층적인 시스템 지침에 대해 자세히 알아보세요.
- 새 BigQuery 데이터 세트를 가리키는 다른 데이터 에이전트를 설정합니다.
- Looker 인스턴스에 새 Looker 블록을 설치하고, 에이전트를 만들고, 새 Looker 데이터 세트를 가리키도록 합니다.
빠른 시작 앱 수정 문제
- Looker 삽입에 대해 잘 알고 계신가요? 그렇다면 빠른 시작 앱 내에 Looker 대시보드를 삽입해 보세요. Streamlit의 iframe 구성요소를 사용하는 것이 좋습니다.
- 동영상 URL이 포함된 공개 데이터 세트를 찾아 앱의 채팅 렌더링 로직을 업데이트하여 채팅에 동영상을 표시합니다.
7. 결론 및 주요 내용
퀴즈를 완료했습니다. Conversational Analytics API를 사용하여 채팅 앱을 빌드하고, 데이터 에이전트를 만들고, 데이터와 채팅했습니다. 주요 기능과 개념을 살펴보겠습니다.
대화형 분석 기능
다음과 같은 대화형 분석 기능에 대해 설명했습니다.
- 데이터 에이전트를 생성, 업데이트, 나열, 가져오기, 삭제합니다.
- 데이터 에이전트가 BigQuery 또는 Looker를 데이터 소스로 가리키도록 합니다.
- 대화와 각 메시지를 만들고, 나열하고, 가져옵니다.
- 대화에서 몰입형 시각화를 위한 Vega 차트 사양을 생성합니다.
- 대화의 이전 메시지를 향후 메시지의 유용한 컨텍스트로 사용합니다.
CA API와 함께 Looker를 사용할 때의 이점
Looker는 데이터의 중앙 집중식, 테스트 가능, 관리 가능한 시맨틱 모델링을 제공합니다. Looker는 대화형 분석과 결합하여 데이터 에이전트의 컨텍스트를 제공하는 확장 가능한 방법을 제공합니다.
다음 단계
- 자세한 가이드, 기능, 사용 사례는 대화형 분석 문서를 참고하세요.
- 빠른 시작 애플리케이션 저장소의 최신 정보를 확인하고 이에 기여하세요.