메인 콘텐츠로 건너뛰기
AI 함수는 ClickHouse에 내장된 함수로, AI를 호출하거나 임베딩을 생성해 데이터를 활용하고, 정보를 추출하고, 데이터를 분류하는 등의 작업에 사용할 수 있습니다…
AI 함수는 예측하기 어려운 출력을 반환할 수 있습니다. 결과는 프롬프트의 품질과 사용된 모델에 크게 좌우됩니다.
모든 함수는 다음을 제공하는 공통 인프라를 기반으로 합니다:

구성

AI 함수는 공급자 자격 증명과 구성을 저장하는 명명된 컬렉션을 참조합니다. 각 함수의 첫 번째 인수는 이 컬렉션의 이름입니다. 공급자 자격 증명이 포함된 명명된 컬렉션을 생성하는 예시 SQL 문:

명명된 컬렉션 매개변수

provider = 'openai'로 설정하고 endpoint가 해당 서비스를 가리키도록 지정하면 모든 OpenAI 호환 API(예: vLLM, Ollama, LiteLLM)를 사용할 수 있습니다.

쿼리 수준 설정

모든 AI 관련 설정은 설정 문서에서 ai_function_ 접두사로 나열되어 있습니다.

endpoint 호스트 제한

AI 명명된 컬렉션의 endpoint URL은 서버가 자체 아이덴티티로 연결하는 아웃바운드 대상입니다. 이때 요청 헤더에는 명명된 컬렉션의 api_key가 포함됩니다. 기본적으로 ClickHouse는 모든 호스트를 허용합니다. 함수를 특정 프로바이더 집합으로 제한하려면 서버 config에서 remote_url_allow_hosts를 구성하십시오. 예:
이 설정은 서버 전체에 적용되며 HTTP를 사용하는 모든 기능에 영향을 미친다는 점에 유의하십시오.

지원되는 프로바이더

관측성

AI 함수 활동은 ClickHouse ProfileEvents를 통해 추적됩니다. 다음과 같이 이 이벤트를 조회합니다.

aiClassify

도입 버전: v26.4.0 LLM provider를 사용해 주어진 텍스트를 제공된 범주 중 하나로 분류합니다. 이 함수는 텍스트를 고정된 분류 프롬프트 및 JSON 스키마 응답 포맷과 함께 전송하여 모델이 제공된 레이블 중 정확히 하나만 반환하도록 제한합니다. 응답이 JSON 객체 {"category": "..."} 형태로 반환되면 레이블을 추출해 레이블 문자열을 반환합니다. 첫 번째 인수는 provider, model, endpoint, API Key를 지정하는 명명된 컬렉션입니다. 구문
별칭: AIClassify 인수
  • collection — 공급자 자격 증명과 구성이 포함된 명명된 컬렉션의 이름입니다. String
  • text — 분류할 텍스트입니다. String
  • categories — 후보 카테고리 레이블의 상수 목록입니다. Array(String)
  • temperature — 무작위성을 제어하는 샘플링 온도입니다. 기본값: 0.0. Float64
반환 값 제공된 카테고리 레이블 중 하나를 반환합니다. 요청이 실패하고 ai_function_throw_on_error가 비활성화된 경우에는 컬럼 타입의 기본값(빈 문자열)을 반환합니다. String 예시 감정 분류
Query
Response
컬럼 분류
Query
Response

aiExtract

도입 버전: v26.4.0 LLM provider를 사용해 비구조화 텍스트에서 구조화된 정보를 추출합니다. 세 번째 인수는 자유 형식의 자연어 지시문(예: 'the main complaint')이거나 '{"field_a": "description of field a", "field_b": "description of field b"}' 형태의 JSON 인코딩 스키마일 수 있습니다. 지시문 모드에서 이 함수는 추출된 값을 일반 문자열로 반환하고, 아무것도 찾지 못하면 빈 문자열을 반환합니다. 스키마 모드에서 이 함수는 키가 요청한 스키마와 일치하는 JSON 객체 문자열을 반환하며, 누락된 필드는 null로 반환됩니다. 첫 번째 인수는 provider, model, endpoint, API Key를 지정하는 명명된 컬렉션입니다. 구문
별칭: AIExtract 인수
  • collection — provider 자격 증명과 구성을 포함하는 명명된 컬렉션의 이름입니다. String
  • text — 정보를 추출할 텍스트입니다. String
  • instruction_or_schema — 자유 형식의 추출 지침 또는 추출할 필드를 설명하는 상수 JSON 객체입니다. const String
  • temperature — 무작위성을 제어하는 샘플링 temperature입니다. 기본값: 0.0입니다. const Float64
반환 값 단일 추출 값(지침 모드) 또는 JSON 객체 문자열(스키마 모드)입니다. 요청이 실패하고 ai_function_throw_on_error가 비활성화되어 있으면 컬럼 유형의 기본값(빈 문자열)을 반환합니다. String 예시 자유 형식 추출 지침
Query
Response
스키마 추출
Query
Response

aiGenerate

도입 버전: v26.4.0 LLM 프로바이더를 사용해 프롬프트로부터 자유 형식의 텍스트 콘텐츠를 생성합니다. 이 함수는 프롬프트를 구성된 AI 프로바이더로 전송한 뒤, 생성된 텍스트를 반환합니다. 선택적으로 system prompt를 제공하여 모델의 동작(예: 어조, 포맷, 역할)을 유도할 수 있습니다. system prompt를 지정하지 않으면 기본 system prompt는 다음과 같습니다: You are a helpful assistant. Provide a clear and concise response. 첫 번째 인수는 프로바이더, 모델, endpoint, API Key를 지정하는 명명된 컬렉션입니다. 구문
별칭: AIGenerate 인수
  • collection — provider 자격 증명 및 구성이 포함된 명명된 컬렉션의 이름입니다. String
  • prompt — 모델에 보낼 사용자 프롬프트 또는 질문입니다. String
  • system_prompt — 각 프롬프트와 함께 전송되며 모델의 동작(예: 페르소나, 출력 형식)을 안내하는 선택적 상수 시스템 수준 지침입니다. String
  • temperature — 무작위성을 제어하는 샘플링 온도입니다. 기본값은 0.7입니다. Float64
반환 값 생성된 텍스트 응답 또는 요청이 실패했고 ai_function_throw_on_error가 비활성화된 경우 컬럼 타입의 기본값(빈 문자열)입니다. String 예시 간단한 질문
Query
Response
시스템 프롬프트 사용 시
Query
Response
컬럼 값 요약
Query
Response

aiTranslate

도입 버전: v26.4.0 지정된 LLM provider를 사용해 주어진 텍스트를 지정한 대상 언어로 번역합니다. 추가 스타일 또는 방언 지침은 네 번째 인수로 전달할 수 있습니다(예: '기술 용어는 번역하지 않기'). 첫 번째 인수는 provider, model, endpoint 및 API Key를 지정하는 명명된 컬렉션입니다. 구문
별칭: AITranslate 인수
  • collection — provider 자격 증명과 구성이 포함된 명명된 컬렉션의 이름입니다. String
  • text — 번역할 텍스트입니다. String
  • target_language — 대상 언어 이름 또는 BCP-47 코드입니다(예: 'French', 'es-MX'). String
  • instructions — 번역기에 전달할 선택적 상수 추가 지침입니다. String
  • temperature — 무작위성을 제어하는 샘플링 온도입니다. 기본값: 0.3. Float64
반환 값 번역된 텍스트 또는 요청이 실패했고 ai_function_throw_on_error가 비활성화된 경우 컬럼 타입의 기본값(빈 문자열)입니다. String 예시 프랑스어로 번역
Query
Response
스타일 지침에 따라 일본어로 번역하세요
Query
Response
마지막 수정일 2026년 6월 19일