[Snowflake] Copilot & Cortex AI Functions

차지예·2026년 6월 3일

Snowflake

목록 보기
15/49
post-thumbnail

1. Snowflake Copilot

개요

  • LLM 기반 AI 어시스턴트로, 데이터 분석 전 과정을 자연어로 지원
  • Snowflake Cortex 내에서 실행되며, 엔터프라이즈 데이터와 메타데이터는 Snowflake 외부로 나가지 않음
  • RBAC(역할 기반 접근 제어)를 완전히 준수하며, 사용자가 접근 가능한 데이터셋 기반으로만 결과를 제공
  • Snowsight의 SQL Worksheet에서 사용 가능 (우측 하단 Ask Copilot 패널)

⚠️ 중요: Snowflake Copilot은 Cortex Code로 대체되고 있음. 자세한 내용은 Cortex Code in Snowsight 참고

지원 지역 (Native 지원)

클라우드리전
AWSUS West 2 (Oregon), US East 1 (N. Virginia), US East Commercial Gov, Europe Central 1 (Frankfurt), AP Northeast 1 (Tokyo), Europe West 1 (Ireland), AP Southeast 2 (Sydney)
AzureEast US 2 (Virginia), West Europe (Netherlands)
  • 그 외 리전에서 사용하려면 CORTEX_ENABLED_CROSS_REGION 파라미터 설정 필요

접근 제어 (Access Control)

  • SNOWFLAKE.COPILOT_USER 데이터베이스 역할이 기본적으로 PUBLIC 역할에 부여됨
  • → 모든 사용자가 기본적으로 Copilot 사용 가능
  • 접근을 제한하려면 ACCOUNTADMIN으로 PUBLIC 역할에서 COPILOT_USER 역할을 회수
-- 접근 제한 예시
USE ROLE ACCOUNTADMIN;
REVOKE DATABASE ROLE SNOWFLAKE.COPILOT_USER FROM ROLE PUBLIC;

-- 특정 역할에만 부여
CREATE ROLE copilot_access_role;
GRANT DATABASE ROLE SNOWFLAKE.COPILOT_USER TO ROLE copilot_access_role;
GRANT ROLE copilot_access_role TO USER some_user;
  • SNOWFLAKE.COPILOT_USER 역할은 사용자에게 직접 부여 불가 → 반드시 Role을 통해 부여

모델 선택 로직 (Model-Level RBAC 활성화 시)

  1. Anthropic Claude Sonnet 3.5 사용 (AWS US West, AWS US East, 또는 Cross-region inference 활성화 시)
  2. Claude Sonnet 3.5 불가 시 → Mistral Large 2 사용
  3. Mistral Large 2도 불가 시 → Copilot이 Snowsight UI에서 표시되지 않으며 API 요청도 실패

지원 기능 (Use Cases)

  • 데이터 구조 탐색 (Explore your data)
  • 자연어로 SQL 쿼리 생성 (Generate SQL queries)
  • 생성된 SQL 즉시 실행 또는 편집 후 실행
  • 후속 질문을 통한 복잡한 쿼리 빌드 (대화형)
  • Snowflake 개념 및 기능 학습 (문서 기반 답변)
  • 쿼리 최적화 및 디버깅 지원
  • 응답에 대한 피드백 제공 (👍 / 👎)
  • Custom Instructions 추가 가능 (사용자별 설정)

제한 사항 (Limitations)

  • 테이블 내부 데이터에 직접 접근 불가: 필터 값을 사용자가 직접 제공해야 함
  • Cross database/schema 쿼리 미지원: View를 생성하여 우회 가능
  • 상위 10개 테이블, 각 테이블당 상위 10개 컬럼만 고려하여 응답 생성
  • 새로 생성된 DB/스키마/테이블 인식까지 최대 3~4시간 지연 가능
  • SQL 제안이 항상 유효하지 않을 수 있음 (피드백으로 개선에 기여)

Custom Instructions

  • 최대 2,000자 제한
  • 사용자 개별 설정이며 해당 사용자의 모든 대화에 적용
  • 영어 평문(plain English)으로 작성 권장
  • Ask Copilot → Copilot 메뉴 → Custom Instructions → Enable 토글 → 저장

비용 (Costs)

  • 현재 무료 (요금 부과 전 사전 공지 예정)

2. Cortex AI Functions: Documents

개요

Snowflake는 다양한 문서 유형에서 정보를 처리·파싱·분류·추출하는 AI 기반 문서 인텔리전스 기능을 SQL 함수로 제공한다.

핵심 기능 3가지:

  • 비정형 텍스트/레이아웃 → 구조화된 분석 가능 콘텐츠로 변환 (Parse)
  • 엔티티·테이블·필드 등 구조화 정보 추출 (Extract)
  • 문서 유형 분류 → 다운스트림 워크플로우 자동화 (Classify)

핵심 문서 처리 함수

함수역할
AI_PARSE_DOCUMENT디지털/스캔 문서를 레이아웃 보존하여 텍스트로 변환. 이미지 추출 가능. RAG 파이프라인, 시맨틱 검색, 요약에 적합
AI_EXTRACT텍스트·테이블·체크박스·필기·시각 요소 이해. 스키마 기반 구조화 데이터 추출 특화
AI_CLASSIFY사용자 정의 카테고리로 문서 분류 (예: 인보이스, 계약서, 명세서 구분 → 각 워크플로우로 라우팅)
AI_COMPLETE가장 범용적. 프롬프트 기반 텍스트 생성/추출/변환. 모델 선택 가능

텍스트 추가 처리 함수

함수역할
AI_SENTIMENT텍스트 감성 분석
AI_TRANSLATE언어 간 번역
SUMMARIZE텍스트 요약

주요 Use Cases

1) RAG 파이프라인 구축 (챗봇 / 기업 검색 서비스)

  • AI_PARSE_DOCUMENT로 문서 처리 → Cortex Search Services로 인덱싱 → AI_COMPLETE로 컨텍스트 기반 응답 생성

2) 문서 처리 파이프라인 구축

  • 스키마 기반 추출, 자연어 Q&A, 텍스트/레이아웃 추출, 분류 기반 라우팅
  • 커스텀 추출·분류 모델을 모델 레지스트리에 저장하여 팀 간 재사용 가능

3. Cortex AI Functions (LLM Functions)

개요

  • OpenAI, Anthropic, Meta, Mistral AI, DeepSeek 등 산업 최고 수준 LLM을 사용하여 텍스트 및 이미지에 대한 비정형 분석 수행
  • SQL 함수 형태 및 Python으로도 사용 가능
  • 모든 LLM은 Snowflake Service 경계 내부에 배포됨 → 데이터 보안 보장

접근 권한

  • USE AI FUNCTIONS 계정 레벨 권한 필요
  • CORTEX_USER 또는 AI_FUNCTIONS_USER 데이터베이스 역할 중 하나 필요

전체 Cortex AI Functions 목록

핵심 AI 함수 (Cortex AI Functions)

함수설명
AI_COMPLETE텍스트 또는 이미지에 대한 LLM 응답 생성. 대부분의 생성형 AI 작업에 사용
AI_CLASSIFY텍스트 또는 이미지를 사용자 정의 카테고리로 분류
AI_FILTER텍스트/이미지 입력에 대해 True/False 반환 (SELECT, WHERE, JOIN ON 절에서 사용 가능)
AI_AGG텍스트 컬럼을 집계하여 여러 행에 걸친 인사이트 반환. 컨텍스트 윈도우 제한 없음
AI_EMBED텍스트/이미지 임베딩 벡터 생성 (유사도 검색, 클러스터링, 분류에 사용)
AI_EXTRACT문자열 또는 파일(텍스트, 이미지, 문서)에서 정보 추출. 다국어 지원
AI_SENTIMENT텍스트 감성 추출
AI_SUMMARIZE_AGG텍스트 컬럼 집계 후 요약 반환. 컨텍스트 윈도우 제한 없음
AI_SIMILARITY두 입력 간 임베딩 유사도 계산
AI_TRANSCRIBE스테이지에 저장된 오디오/비디오 파일을 텍스트·타임스탬프·화자 정보로 변환
AI_PARSE_DOCUMENT스테이지의 문서에서 텍스트 추출 (OCR 모드 또는 LAYOUT 모드). 이미지 추출 가능
AI_REDACT텍스트에서 PII(개인 식별 정보) 마스킹
AI_TRANSLATE지원 언어 간 텍스트 번역
SUMMARIZE (SNOWFLAKE.CORTEX)지정한 텍스트의 요약 반환

헬퍼 함수 (Helper Functions)

함수설명
TO_FILE내부/외부 스테이지의 파일 참조 생성 (AI_COMPLETE 등에서 사용)
AI_COUNT_TOKENS입력 텍스트의 토큰 수 반환 (모델 한도 초과 방지)
PROMPTAI_COMPLETE 등에서 사용할 프롬프트 객체 생성

성능 고려사항

  • Cortex AI Functions는 처리량(Throughput) 최적화 설계 → 대규모 테이블의 다수 입력 처리에 적합
  • 배치 처리 권장
  • 레이턴시가 중요한 인터랙티브 사용 사례에는 REST API 사용 권장 (Complete API, Embed API, Agents API)

4. AI_COMPLETE 함수 상세

개요

  • 텍스트 또는 이미지를 기반으로 지원 언어 모델에서 응답(Completion) 생성
  • COMPLETE 함수의 업데이트 버전 (최신 기능 사용 시 AI_COMPLETE 권장)

입력 유형별 Syntax

입력 유형참조 문서
텍스트 프롬프트 (단일 문자열)AI_COMPLETE (Single string)
단일 이미지 + 텍스트 프롬프트AI_COMPLETE (Single image)
프롬프트 객체 (다중 이미지 + 텍스트)AI_COMPLETE (Prompt object)
  • 모든 Syntax 변형에서 선택적으로 return_error_details BOOLEAN 파라미터 사용 가능

에러 처리 (Error Behavior)

  • 기본 동작: 처리 실패 시 NULL 반환
  • 다중 행 처리 시, 에러가 발생한 행만 NULL 반환 (전체 쿼리는 계속 실행)
return_error_details반환 값
FALSE 또는 미입력NULL
TRUEvalue (성공 시 결과, 실패 시 NULL) + error (실패 시 에러 메시지, 성공 시 NULL) 가 포함된 OBJECT

접근 제어 (Access Control)

  • SNOWFLAKE.CORTEX_USER 데이터베이스 역할이 부여된 역할 사용 필요

🗂️ 핵심 요약 비교표

항목Snowflake CopilotCortex AI Functions
주요 목적자연어로 SQL 생성 및 데이터 탐색SQL 기반 AI 작업 자동화 (텍스트·이미지·문서)
사용 위치Snowsight Worksheet (UI)SQL 쿼리 내 함수 호출
데이터 접근테이블 내부 데이터 접근 불가테이블 데이터에 직접 함수 적용 가능
접근 권한SNOWFLAKE.COPILOT_USERSNOWFLAKE.CORTEX_USER 또는 AI_FUNCTIONS_USER
비용현재 무료별도 요금 정책 적용
모델 선택자동 선택 (Claude Sonnet 3.5 → Mistral Large 2)AI_COMPLETE에서 직접 모델 지정 가능
데이터 보안Snowflake 내부에서만 처리모든 LLM이 Snowflake Service 경계 내 배포

0개의 댓글