メインコンテンツへスキップ
データベースでの AI 処理の多くは同じ形をしています。行を読み取り、モデルに送り、待ち、答えを書き戻す。vsql_ai は SQL からモデルを呼び出すことで、その中間を取り除きます。2 つの関数でこれをカバーします。1 つはプロンプト用、もう 1 つは埋め込み用です。プロンプト関数は、Anthropic Claude、Google Gemini、OpenAI、または Ollama を通じてローカルで動作するモデルに対して機能します。埋め込み関数は、Anthropic を除くそれらすべてに対して機能します。

インストール

インストールスクリプト、Docker イメージ、またはリリース tarball で VillageSQL をインストールした場合、vsql_ai.veb はすでにサーバーの lib/veb/ ディレクトリにあります。1 つのステートメントでサーバーにインストールします。
インストールされたことを確認します。
自分でビルドするには、リポジトリのビルド手順に従ってください。

追加される機能

provider は anthropic、google、openai、または local です。ローカルモデルは Ollama を通じて実行され、空の API キーを受け取ります。ai_embedding は Google、OpenAI、およびローカルモデルをサポートします。

例

ローカルモデルに質問します。
モデルは自身の言葉で答えるため、あなたの環境での応答はこれとは異なります。 テキストをベクトルに変換し、その幅を確認します。
ホスト型プロバイダーでは、同じ呼び出しにキーを付けます。
VillageSQL 0.0.6 以前では、結果は binary 文字セットを持ち、2 つの影響があります。JSON 関数や JSON カラムはそれを拒否するため、上記の埋め込みの例はそこでは ERROR 3144 (22032): Cannot create a JSON value from a string with CHARACTER SET 'binary'. で失敗します。JSON_OBJECT() や JSON_ARRAY() の中では受け入れられますが base64 でエンコードされるため、SELECT JSON_OBJECT('v', ai_prompt(...)) は {"v": "base64:type15:UGFyaXMu"} を返します。これらのバージョンでは、呼び出しを CONVERT(... USING utf8mb4) で包んでください。0.0.7 以降では不要で、上記の例はそのまま動作します。
各呼び出しは、モデルが答えるまでそのステートメントをブロックし、各呼び出しにはプロバイダーが請求する料金がかかります。大きなテーブルの行ごとに 1 回呼び出すと、遅く、高くつきます。変数に保持したキーはモデルを呼び出すステートメントには現れませんが、それを保持する SET ステートメントは、キーを含めてクエリログに書き込まれます。

関連項目