이 문서에서는 Gemini CLI 및 MCP 툴박스를 사용하여 에이전트 컨텍스트 파일을 빌드하는 방법을 설명합니다. 이러한 파일에는 자연어에서 SQL 쿼리를 생성하기 위한 컨텍스트를 제공하는 템플릿, 패싯, 값 검색이 포함되어 있습니다. 또한 DB 컨텍스트 보강 확장 프로그램을 사용합니다.
컨텍스트 집합에 대해 알아보려면 컨텍스트 집합 개요를 참조하세요.에이전트 컨텍스트 파일을 빌드하려면 다음 대략적인 단계를 수행하세요.
- 개발 환경 준비
- 타겟 템플릿 생성
- 타겟 패싯 생성
- 타겟 값 검색 생성
- 선택사항입니다. 대량 템플릿 생성
시작하기 전에
에이전트를 만들기 전에 다음 기본 요건을 완료하세요.
필수 서비스 사용 설정
프로젝트에 대해 다음 서비스를 사용 설정합니다.Cloud SQL 인스턴스 준비
- 기존 Cloud SQL 인스턴스에 액세스할 수 있는지 확인하거나 새 인스턴스를 만듭니다. 자세한 내용은 Cloud SQL 인스턴스 만들기를 참조하세요.
- 테이블을 만들 인스턴스에서 데이터베이스를 만드는지 확인합니다. 자세한 내용은 Cloud SQL 인스턴스에서 데이터베이스 만들기를 참조하세요.
필수 역할 및 권한
- 인스턴스 수준에서 IAM 사용자 또는 서비스 계정을 추가합니다. 자세한 내용은 사용자, 서비스 계정 또는 그룹에 IAM 정책 바인딩 추가를 참조하세요.
- 프로젝트 수준에서 IAM 사용자 또는 서비스 계정에
cloudsql.studioUser,cloudsql.instanceUser,geminidataanalytics.queryDataUser역할을 부여합니다. 자세한 내용은 프로젝트에 IAM 정책 바인딩 추가를 참조하세요. - 권한이 있는 사용자가
IAM 사용자 또는 서비스 계정에 데이터베이스 권한을 부여해야 합니다.
GRANT SELECT PRIVILEGES ON * TO "IAM_USERNAME";.
자세한 내용은 개별 IAM 사용자 또는 서비스 계정에 데이터베이스 권한 부여를 참조하세요.
Cloud SQL 인스턴스에 executesql 권한 부여
Cloud SQL 인스턴스에 executesql 권한을 부여하고 Cloud SQL Data API를 사용 설정하려면 다음 명령어를 실행합니다.
gcloud config set project PROJECT_ID gcloud components update gcloud beta sql instances patch INSTANCE_ID --data-api-access=ALLOW_DATA_API
PROJECT_ID: 프로젝트의 ID입니다. Google CloudINSTANCE_ID: Cloud SQL 인스턴스의 ID입니다.
값 검색을 위한 데이터베이스 준비
의미론적 및 트라이그램 값 검색을 사용하려면 벡터 임베딩 및 n-그램 색인 생성을 지원하도록 MySQL용 Cloud SQL 인스턴스를 구성해야 합니다.
MySQL용 Cloud SQL 인스턴스가 의미론적 값 검색을 수행하도록 하려면 다음 플래그를 사용 설정해야 합니다.
cloudsql_vector플래그를 사용 설정합니다.gcloud sql instances patch INSTANCE_NAME --database-flags=cloudsql_vector=onMySQL용 Cloud SQL 인스턴스가 Vertex AI와 통합되도록
enable-google-ml-integration플래그를 사용 설정합니다.gcloud sql instances patch INSTANCE_NAME --enable-google-ml-integration도시 임베딩을 저장할 벡터 열 만들기
ALTER TABLE `airports` ADD COLUMN `city_embedding` VECTOR(768);도시 이름의 벡터 임베딩 생성 및 저장
UPDATE `airports` SET `city_embedding` = mysql.ml_embedding('text-embedding-005', `city`) WHERE `city` IS NOT NULL;
MySQL용 Cloud SQL 인스턴스가 트라이그램 값 검색을 수행하도록 하려면 다음 단계를 수행합니다.
ngram_token_size플래그를 사용 설정합니다.gcloud sql instances patch INSTANCE_NAME --database-flags=ngram_token_size=3공항 이름에 대한 트라이그램 일치를 위한 FULLTEXT 색인 만들기
CREATE FULLTEXT INDEX `idx_ngram_airports_name` ON `airports`(`name`) WITH PARSER ngram;
개발 환경 준비
로컬 개발 환경 또는 IDE에서 컨텍스트 집합 파일을 빌드할 수 있습니다. 환경을 준비하려면 다음 단계를 수행하세요.
- Gemini CLI 설치
- DB 컨텍스트 보강 확장 프로그램 설치
- 데이터베이스 연결 설정
Gemini CLI 설치
Gemini CLI를 설치하려면 Gemini CLI 시작하기를 참조하세요.
DB 컨텍스트 보강 MCP 확장 프로그램 설치
DB 컨텍스트 보강 확장 프로그램은 데이터베이스 스키마에서 구조화된 NL2SQL 컨텍스트를 생성하는 안내식 대화형 워크플로를 제공합니다.
DB 컨텍스트 보강 확장 프로그램 설치에 대한 자세한 내용은 DB 컨텍스트 보강 확장 프로그램을 참조하세요.
DB 컨텍스트 보강 확장 프로그램을 설치하려면 다음 단계를 따르세요.
DB 컨텍스트 보강 Gemini CLI 확장 프로그램을 설치합니다.
gemini extensions install https://github.com/GoogleCloudPlatform/db-context-enrichment(선택사항) DB 컨텍스트 보강 확장 프로그램을 업데이트합니다.
설치된 확장 프로그램 버전을 확인하려면 다음 명령어를 실행합니다.
gemini extensions list버전이
0.4.2이상인지 확인합니다. DB 컨텍스트 보강 확장 프로그램을 업데이트하려면 다음 명령어를 실행합니다.gemini extensions update mcp-db-context-enrichmentDB 컨텍스트 보강 확장 프로그램을 업데이트하거나
GEMINI_API_KEY를 바꾸려면 다음 명령어를 실행합니다.gemini extensions config mcp-db-context-enrichment GEMINI_API_KEYGEMINI_API_KEY를 Gemini API 키로 바꿉니다.
DB 연결 설정
확장 프로그램에는 스키마를 가져오고 SQL 문을 실행하기 위한 컨텍스트 생성을 위한 데이터베이스 연결이 필요합니다. 확장 프로그램이 데이터베이스와 상호작용하도록 하려면 인증 사용자 인증 정보를 구성하고 데이터베이스 소스 및 도구를 정의해야 합니다.
애플리케이션 기본 사용자 인증 정보 구성
두 가지 주요 구성요소에 사용자 인증 정보를 제공하려면 애플리케이션 기본 사용자 인증 정보 (ADC)를 구성해야 합니다.
- 툴박스 MCP 서버: 사용자 인증 정보를 사용하여 데이터베이스에 연결하고, 스키마를 가져오고, 유효성 검사를 위해 SQL을 실행합니다.
- DB 컨텍스트 보강 확장 프로그램: 사용자 인증 정보를 사용하여 Gemini API를 인증하고 호출합니다.
터미널에서 다음 명령어를 실행하여 인증합니다.
gcloud auth application-default logintools.yaml 파일 구성
확장 프로그램에는 컨텍스트 생성을 위한 데이터베이스 연결이 필요하며, 이는 MCP 툴박스에서 지원되고 tools.yaml 구성 파일 내에 정의됩니다.
tools.yaml 파일은 스키마를 가져오거나 SQL을 실행하는 데 필요한 데이터베이스 소스 및 도구를 지정합니다. 확장 프로그램에는 구성을 생성하는 데 도움이 되는 사전 설치된 에이전트 기술이 포함되어 있습니다.
Gemini CLI를 시작합니다.
geminiGemini CLI에 입력하여 기술이 활성 상태인지 확인합니다.
/skillshelp me setup the database connection과 같은 프롬프트를 입력합니다. 이 기술은 현재 작업 디렉터리에서tools.yaml파일을 만드는 과정을 안내합니다.Gemini CLI에서 다음 명령어를 실행하여
tools.yaml구성을 툴박스 MCP 서버에 적용합니다./mcp reload
tools.yaml 파일을 수동으로 구성하는 방법에 대한 자세한 내용은 MCP 툴박스 구성을 참조하세요.
컨텍스트 생성
이전에 설치된 확장 프로그램을 사용하면 Gemini CLI를 사용하여 JSON 파일 형식으로 컨텍스트를 작성할 수 있습니다.
타겟 템플릿 생성
특정 쿼리 쌍을 컨텍스트 집합에 쿼리 템플릿으로 추가하려면 /generate_targeted_templates 명령어를 사용하면 됩니다. 템플릿에 대한 자세한 내용은 컨텍스트 집합 개요를 참조하세요.
컨텍스트 집합에 쿼리 템플릿을 추가하려면 다음 단계를 수행하세요.
동일한 디렉터리에서 Gemini CLI를 시작합니다.
geminiGemini CLI 인증 설정을 완료합니다.
MCP 툴박스와 데이터베이스 보강 확장 프로그램을 사용할 준비가 되었는지 확인합니다.
/mcp reload/generate_targeted_templates명령어를 실행합니다./generate_targeted_templates쿼리 템플릿에 추가할 자연어 쿼리를 입력합니다.
쿼리 템플릿에 해당하는 SQL 쿼리를 입력합니다.
생성된 쿼리 템플릿을 검토합니다. 쿼리 템플릿을 컨텍스트 집합 파일로 저장하거나 기존 컨텍스트 집합 파일에 추가할 수 있습니다.
my-cluster-psc-primary_postgres_templates_20251104111122.json과 유사한 컨텍스트 집합 파일이 명령어를 실행한 디렉터리에 저장됩니다.
컨텍스트 집합 파일 및 쿼리 템플릿에 대한 자세한 내용은 컨텍스트 집합 개요를 참조하세요.
타겟 패싯 생성
특정 쿼리 쌍을 컨텍스트 집합 파일에 패싯으로 추가하려면 /generate_targeted_facets 명령어를 사용하면 됩니다.
컨텍스트 집합 파일에 패싯을 추가하려면 다음 단계를 수행하세요.
/generate_targeted_facets명령어를 실행합니다./generate_targeted_facets쿼리 템플릿에 추가할 자연어 쿼리를 입력합니다.
쿼리 템플릿에 해당하는 SQL 쿼리를 입력합니다.
생성된 패싯을 검토합니다. 패싯을 컨텍스트 집합 파일에 저장하거나 기존 컨텍스트 집합 파일에 추가할 수 있습니다.
my-cluster-psc-primary_postgres_templates_20251104111122.json과 유사한 컨텍스트 집합 파일이 명령어를 실행한 디렉터리에 저장됩니다.
컨텍스트 집합 파일 및 패싯에 대한 자세한 내용은 컨텍스트 집합 개요를 참조하세요.
값 검색 쿼리 생성
시스템이 개념 유형 내에서 특정 값을 검색하고 일치시키는 방법을 지정하는 값 검색을 생성하려면 /generate_targeted_value_searches 명령어를 사용하면 됩니다.
값 검색을 위한 데이터베이스 준비의 단계를 완료했는지 확인합니다.
값 색인을 생성하려면 다음 단계를 수행하세요.
/generate_targeted_value_searches명령어를 실행합니다./generate_targeted_value_searches
mysql을 입력하여 MySQL을 데이터베이스 엔진으로 선택합니다. 기본값을 선택하여 MySQL 8.0을 선택합니다.
다음과 같이 값 검색 구성을 입력합니다.
Table name: TABLE_NAME Column name: COLUMN_NAME Concept type: CONCEPT_TYPE Match function: MATCH_FUNCTION Description: DESCRIPTION다음을 바꿉니다.
TABLE_NAME: 개념 유형과 연결된 열이 있는 테이블입니다.COLUMN_NAME: 개념 유형과 연결된 열 이름입니다.CONCEPT_TYPE: 정의하려는 개념 유형입니다(예:City name).MATCH_FUNCTION: 값 검색에 사용할 일치 함수입니다. 다음 함수 중 하나를 사용할 수 있습니다.EXACT_STRING_MATCH: 두 문자열 값의 정확한 일치입니다. 고유 ID, 코드, 기본 키에 가장 적합합니다.TRIGRAM_STRING_MATCH: 정규화된 트라이그램 거리를 계산하는 퍼지 일치입니다. 사용자 검색 및 이름 수정에 가장 적합합니다.TRIGRAM_STRING_MATCH를 사용하려면 n-그램 색인 생성을 지원하도록 데이터베이스를 준비해야 합니다.
SEMANTIC_SIMILARITY_MATCH: 문자열 값에 대한 의미론적 검색입니다. 교차 언어 및 동의어 검색에 가장 적합합니다. 지원되는 모델 목록은 지원되는 Google 모델을 참조하세요.SEMANTIC_SIMILARITY_MATCH를 사용하려면 벡터 임베딩을 지원하도록 데이터베이스를 준비해야 합니다.
DESCRIPTION: (선택사항) 값 검색 쿼리에 대한 설명입니다.
필요에 따라 값 검색을 추가합니다. 값 색인을 추가하지 않으면 템플릿 기반 SQL 생성이 다음 단계로 이동합니다.
생성된 값 검색을 검토합니다. 컨텍스트 집합을 컨텍스트 집합 파일로 저장하거나 기존 컨텍스트 집합 파일에 추가할 수 있습니다.
my-cluster-psc-primary_postgres_templates_20251104111122.json과 유사한 컨텍스트 집합 파일이 명령어를 실행한 디렉터리에 저장됩니다.
값 색인에 대한 자세한 내용은 컨텍스트 집합 개요를 참조하세요.
선택사항: 대량 템플릿 생성
데이터베이스 스키마 및 데이터를 기반으로 컨텍스트 집합 파일을 자동 생성하려면 /generate_bulk_templates 명령어를 사용하면 됩니다.
대량 템플릿을 자동 생성하려면 다음 단계를 수행하세요.
/generate_bulk_templates명령어를 실행합니다./generate_bulk_templates데이터베이스 스키마를 기반으로 템플릿 기반 SQL 생성은 데이터베이스 정보 확인 및 데이터베이스 스키마에 액세스할 수 있는 권한 부여와 관련된 일련의 질문을 안내합니다.
생성된 쿼리 템플릿을 검토합니다. 템플릿을 승인하거나 수정하려는 쿼리 쌍을 업데이트할 수 있습니다.
쿼리 템플릿에 추가할 자연어 쿼리를 입력합니다.
쿼리 템플릿에 해당하는 SQL 쿼리를 입력합니다.
생성된 쿼리 템플릿을 검토합니다. 쿼리 템플릿을 컨텍스트 집합 파일로 저장하거나 기존 컨텍스트 파일에 추가할 수 있습니다.
쿼리 템플릿을 승인한 후 새 템플릿 파일을 만들거나 쿼리 쌍을 기존 템플릿 파일에 추가할 수 있습니다. 쿼리 템플릿은 로컬 디렉터리에 JSON 파일로 저장됩니다.
my-cluster-psc-primary_postgres_templates_20251104111122.json과 유사한 컨텍스트 집합 파일이 명령어를 실행한 디렉터리에 저장됩니다.
컨텍스트 집합 파일에 대한 자세한 내용은 컨텍스트 집합 개요를 참조하세요.
다음 단계
- 컨텍스트 집합에 대해 자세히 알아보세요.
- Cloud SQL Studio에서 컨텍스트 집합을 만들거나 삭제하는 방법을 알아보세요.
- 컨텍스트 집합을 테스트하는 방법을 알아보세요.