メインコンテンツへスキップ
メインコンテンツへスキップ

AI 関数

AI 関数は ClickHouse に組み込まれている関数で、データに対して AI を呼び出したり、埋め込みを生成したり、情報を抽出したり、データを分類したりするために使用できます。

注記

AI 関数は予測不能な出力を返すことがあります。結果は、プロンプトの品質や使用するモデルに大きく左右されます。

すべての関数は共通のインフラストラクチャを使用しており、次の機能を提供します。

設定

AI 関数は、プロバイダーの認証情報と設定を格納する名前付きコレクションを参照します。各関数の最初の引数は、このコレクションの名前です。

プロバイダーの認証情報を含む名前付きコレクションを作成するための例の文:

CREATE NAMED COLLECTION ai_credentials AS
    provider = 'openai',
    endpoint = 'https://api.openai.com/v1/chat/completions',
    model = 'gpt-4o-mini',
    api_key = 'sk-...';

名前付きコレクションのパラメータ

パラメータデフォルト説明
providerStringモデルプロバイダー。対応: 'openai', 'anthropic'。以下の注記を参照してください。
endpointStringAPI エンドポイント URL。
modelStringモデル名 (例: 'gpt-4o-mini', 'text-embedding-3-small') 。
api_keyStringプロバイダーの認証キー。
max_tokensUInt641024API 呼び出しごとに出力できるトークンの最大数。
api_versionStringAPI バージョン文字列。Anthropic で使用されます ('2023-06-01') 。
注記

provider = 'openai' を設定し、endpoint を対象のサービスに向けることで、任意の OpenAI 互換 API (例: vLLM, Ollama, LiteLLM) を使用できます。

クエリレベルの設定

AI 関連の設定はすべて、設定ai_function_ プレフィックス配下に記載されています。

サポート対象のプロバイダー

プロバイダーprovider の値チャット関数備考
OpenAI'openai'デフォルトのプロバイダーです。
Anthropic'anthropic'/v1/messages エンドポイント を使用します。

オブザーバビリティ

AI 関数のアクティビティは、ClickHouse の ProfileEvents を通じて追跡されます。

ProfileEventDescription
AIAPICallsAI プロバイダーに送信された HTTP リクエスト数。
AIInputTokens消費された入力トークンの総数。
AIOutputTokens消費された出力トークンの総数。
AIRowsProcessed結果を受け取った行の数。
AIRowsSkippedスキップされた行の数 (クォータ超過、または ai_function_throw_on_error = 0 の場合のエラー) 。

以下のように、これらのイベントをクエリします。

SELECT
    ProfileEvents['AIAPICalls'] AS api_calls,
    ProfileEvents['AIInputTokens'] AS input_tokens,
    ProfileEvents['AIOutputTokens'] AS output_tokens
FROM system.query_log
WHERE query_id = 'query_id'
AND type = 'QueryFinish'
ORDER BY event_time DESC;