AI 함수는 예측하기 어려운 출력을 반환할 수 있습니다. 결과는 프롬프트의 품질과 사용된 모델에 크게 좌우됩니다.
- Quota 적용: 토큰에 대한 쿼리별 제한(
ai_function_max_input_tokens_per_query,ai_function_max_output_tokens_per_query) 및 API 호출 제한(ai_function_max_api_calls_per_query). - 백오프를 사용하는 재시도: 일시적인 실패는 지수형 백오프(
ai_function_retry_initial_delay_ms)를 적용하여 재시도됩니다(ai_function_max_retries).
구성
명명된 컬렉션 매개변수
| 매개변수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
provider | String | — | 모델 제공자입니다. 지원값: 'openai', 'anthropic'. 아래 참고를 확인하십시오. |
endpoint | String | — | API endpoint URL입니다. |
model | String | — | 모델 이름입니다(예: 'gpt-4o-mini', 'text-embedding-3-small'). |
api_key | String | — | 제공자 authentication 키입니다. |
max_tokens | UInt64 | 1024 | API 호출당 최대 출력 token 수입니다. |
api_version | String | — | API 버전 문자열입니다. Anthropic에서 사용됩니다('2023-06-01'). |
provider = 'openai'로 설정하고 endpoint가 해당 서비스를 가리키도록 지정하면 모든 OpenAI 호환 API(예: vLLM, Ollama, LiteLLM)를 사용할 수 있습니다.쿼리 수준 설정
ai_function_ 접두사로 나열되어 있습니다.
endpoint 호스트 제한
endpoint URL은 서버가 자체 아이덴티티로 연결하는 아웃바운드 대상입니다. 이때 요청 헤더에는 명명된 컬렉션의 api_key가 포함됩니다. 기본적으로 ClickHouse는 모든 호스트를 허용합니다. 함수를 특정 프로바이더 집합으로 제한하려면 서버 config에서 remote_url_allow_hosts를 구성하십시오. 예:
지원되는 프로바이더
| 프로바이더 | provider 값 | 채팅 함수 | 참고 |
|---|---|---|---|
| OpenAI | 'openai' | 예 | 기본 프로바이더입니다. |
| Anthropic | 'anthropic' | 예 | /v1/messages endpoint를 사용합니다. |
관측성
| ProfileEvent | Description |
|---|---|
AIAPICalls | AI 프로바이더로 전송된 HTTP 요청 수입니다. |
AIInputTokens | 사용된 총 입력 토큰 수입니다. |
AIOutputTokens | 사용된 총 출력 토큰 수입니다. |
AIRowsProcessed | 결과를 받은 행 수입니다. |
AIRowsSkipped | 건너뛴 행 수입니다(QUOTA를 초과했거나 ai_function_throw_on_error = 0일 때 오류가 발생한 경우). |
aiClassify
{"category": "..."} 형태로 반환되면 레이블을 추출해 레이블 문자열을 반환합니다.
첫 번째 인수는 provider, model, endpoint, API Key를 지정하는 명명된 컬렉션입니다.
구문
AIClassify
인수
collection— 공급자 자격 증명과 구성이 포함된 명명된 컬렉션의 이름입니다.Stringtext— 분류할 텍스트입니다.Stringcategories— 후보 카테고리 레이블의 상수 목록입니다.Array(String)temperature— 무작위성을 제어하는 샘플링 온도입니다. 기본값:0.0.Float64
ai_function_throw_on_error가 비활성화된 경우에는 컬럼 타입의 기본값(빈 문자열)을 반환합니다. String
예시
감정 분류
Query
Response
Query
Response
aiExtract
'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 자격 증명과 구성을 포함하는 명명된 컬렉션의 이름입니다.Stringtext— 정보를 추출할 텍스트입니다.Stringinstruction_or_schema— 자유 형식의 추출 지침 또는 추출할 필드를 설명하는 상수 JSON 객체입니다.const Stringtemperature— 무작위성을 제어하는 샘플링 temperature입니다. 기본값:0.0입니다.const Float64
ai_function_throw_on_error가 비활성화되어 있으면 컬럼 유형의 기본값(빈 문자열)을 반환합니다. String
예시
자유 형식 추출 지침
Query
Response
Query
Response
aiGenerate
You are a helpful assistant. Provide a clear and concise response.
첫 번째 인수는 프로바이더, 모델, endpoint, API Key를 지정하는 명명된 컬렉션입니다.
구문
AIGenerate
인수
collection— provider 자격 증명 및 구성이 포함된 명명된 컬렉션의 이름입니다.Stringprompt— 모델에 보낼 사용자 프롬프트 또는 질문입니다.Stringsystem_prompt— 각 프롬프트와 함께 전송되며 모델의 동작(예: 페르소나, 출력 형식)을 안내하는 선택적 상수 시스템 수준 지침입니다.Stringtemperature— 무작위성을 제어하는 샘플링 온도입니다. 기본값은0.7입니다.Float64
ai_function_throw_on_error가 비활성화된 경우 컬럼 타입의 기본값(빈 문자열)입니다. String
예시
간단한 질문
Query
Response
Query
Response
Query
Response
aiTranslate
'기술 용어는 번역하지 않기').
첫 번째 인수는 provider, model, endpoint 및 API Key를 지정하는 명명된 컬렉션입니다.
구문
AITranslate
인수
collection— provider 자격 증명과 구성이 포함된 명명된 컬렉션의 이름입니다.Stringtext— 번역할 텍스트입니다.Stringtarget_language— 대상 언어 이름 또는 BCP-47 코드입니다(예:'French','es-MX').Stringinstructions— 번역기에 전달할 선택적 상수 추가 지침입니다.Stringtemperature— 무작위성을 제어하는 샘플링 온도입니다. 기본값:0.3.Float64
ai_function_throw_on_error가 비활성화된 경우 컬럼 타입의 기본값(빈 문자열)입니다. String
예시
프랑스어로 번역
Query
Response
Query
Response