> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# MySQL 用 vsql_ai 拡張機能

> vsql_ai 拡張機能は、SQL から Claude、Gemini、OpenAI、およびローカルの Ollama モデルを呼び出し、プロンプトへの回答と埋め込みベクトルをクエリの中で返します。

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

| | |
| - | - |
| **メンテナー** | VillageSQL |
| **ソースと完全なドキュメント** | [villagesql/vsql-ai](https://github.com/villagesql/vsql-ai) |
| **ライセンス** | GPL-2.0 |

## インストール

インストールスクリプト、Docker イメージ、またはリリース tarball で VillageSQL をインストールした場合、`vsql_ai.veb` はすでにサーバーの `lib/veb/` ディレクトリにあります。1 つのステートメントでサーバーにインストールします。

```sql theme={null}
INSTALL EXTENSION vsql_ai;
```

インストールされたことを確認します。

```sql theme={null}
SELECT EXTENSION_NAME
FROM INFORMATION_SCHEMA.EXTENSIONS
WHERE EXTENSION_NAME = 'vsql_ai';
```

```
+----------------+
| EXTENSION_NAME |
+----------------+
| vsql_ai        |
+----------------+
```

自分でビルドするには、[リポジトリ](https://github.com/villagesql/vsql-ai)のビルド手順に従ってください。

## 追加される機能

| 関数 | 戻り値 | 説明 |
| - | - | - |
| `ai_prompt(provider, model, api_key, prompt)` | text | プロンプトを送信し、モデルの応答を返す |
| `ai_embedding(provider, model, api_key, text)` | text | 埋め込みベクトルを JSON 配列として返す |

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

## 例

ローカルモデルに質問します。

```sql theme={null}
SELECT ai_prompt('local', 'llama3.2', '', 'Reply with exactly one word: the capital of France.') AS answer;
```

```
+--------+
| answer |
+--------+
| Paris. |
+--------+
```

モデルは自身の言葉で答えるため、あなたの環境での応答はこれとは異なります。

テキストをベクトルに変換し、その幅を確認します。

```sql theme={null}
SELECT JSON_LENGTH(ai_embedding('local', 'nomic-embed-text', '', 'Machine learning')) AS dimensions;
```

```
+------------+
| dimensions |
+------------+
|        768 |
+------------+
```

ホスト型プロバイダーでは、同じ呼び出しにキーを付けます。

```sql theme={null}
SET @api_key = '...';
SELECT ai_prompt('anthropic', 'claude-opus-5', @api_key, 'Hello!');
```

> [!NOTE]
>
> 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 以降では不要で、上記の例はそのまま動作します。

> [!WARNING]
>
> 各呼び出しは、モデルが答えるまでそのステートメントをブロックし、各呼び出しにはプロバイダーが請求する料金がかかります。大きなテーブルの行ごとに 1 回呼び出すと、遅く、高くつきます。変数に保持したキーはモデルを呼び出すステートメントには現れませんが、それを保持する `SET` ステートメントは、キーを含めてクエリログに書き込まれます。

## 関連項目

* [AI API キーの設定](https://villagesql.com/docs/en/guides/ai-api-setup.md) — キーを置く場所と、ログに残さない方法
* [MySQL での AI プロンプト](https://villagesql.com/docs/en/guides/ai-prompts-in-mysql.md) — テーブルに対して実際に使えるプロンプトのパターン
* [ベクトル埋め込みの生成](https://villagesql.com/docs/en/guides/vector-embeddings.md) — ベクトルの保存と検索
* [拡張機能のインストール](https://villagesql.com/docs/ja/extensions/install.md) — `INSTALL EXTENSION` の仕組みと、サーバーがバンドルを探す場所
* [利用可能な拡張機能](https://villagesql.com/docs/ja/extensions/catalog) — 完全なカタログ
* [villagesql/vsql-ai](https://github.com/villagesql/vsql-ai) — ソース、ビルド手順、および既知の制限事項


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.