AI 関数
AI 関数は ClickHouse に組み込まれている関数で、データに対して AI を呼び出したり、埋め込みを生成したり、情報を抽出したり、データを分類したりするために使用できます。
注記
AI 関数は予測不能な出力を返すことがあります。結果は、プロンプトの品質や使用するモデルに大きく左右されます。
すべての関数は共通のインフラストラクチャを使用しており、次の機能を提供します。
- クォータの適用: クエリごとのトークン数制限 (
ai_function_max_input_tokens_per_query、ai_function_max_output_tokens_per_query) および API 呼び出し数制限 (ai_function_max_api_calls_per_query) 。 - backoff を伴う再試行: 一時的な障害が発生した場合は再試行され (
ai_function_max_retries) 、指数 backoff が適用されます (ai_function_retry_initial_delay_ms) 。
設定
AI 関数は、プロバイダーの認証情報と設定を格納する名前付きコレクションを参照します。各関数の最初の引数は、このコレクションの名前です。
プロバイダーの認証情報を含む名前付きコレクションを作成するための例の文:
名前付きコレクションのパラメータ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
provider | String | — | モデルプロバイダー。対応: 'openai', 'anthropic'。以下の注記を参照してください。 |
endpoint | String | — | API エンドポイント URL。 |
model | String | — | モデル名 (例: 'gpt-4o-mini', 'text-embedding-3-small') 。 |
api_key | String | — | プロバイダーの認証キー。 |
max_tokens | UInt64 | 1024 | API 呼び出しごとに出力できるトークンの最大数。 |
api_version | String | — | API バージョン文字列。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 を通じて追跡されます。
| ProfileEvent | Description |
|---|---|
AIAPICalls | AI プロバイダーに送信された HTTP リクエスト数。 |
AIInputTokens | 消費された入力トークンの総数。 |
AIOutputTokens | 消費された出力トークンの総数。 |
AIRowsProcessed | 結果を受け取った行の数。 |
AIRowsSkipped | スキップされた行の数 (クォータ超過、または ai_function_throw_on_error = 0 の場合のエラー) 。 |
以下のように、これらのイベントをクエリします。