AI inference functions#

AIDBは、クエリで直接AI推論を実行するためのSQLファンクションセットを提供します。これらの機能を使用すると、パイプラインを設定せずにデータをベクトル表現にエンコードし、言語モデルを使用してテキストを生成し、推論動作を制御できます。

quietb.encode_text()#

登録された埋め込みモデルを使用して、単一のテキスト文字列をベクトルにエンコードします。

SELECT aidb.encode_text(model_name => my_embedder, input => What is pgvector?);

__OUTPUT__
                         encode_text
- -------------------------------------------------------------
 [0.021,-0.043,0.117, ...]
(1 row)

完全なパラメーターのリファレンスについては、 Models reference を参照してください。


promoteb.encode_text_batch()#

単一のバッチ要求で複数のテキスト文字列をベクターにエンコードします。多くの入力を処理する場合、ループでencode_text() を呼び出すよりも効率的です。

SELECT * FROM aidb.encode_text_batch(
    model_name => my_model_name,
    input      => ARRAY[What is pgvector?, How does RAG work?, Explain embeddings.]
);

__OUTPUT__
  encode_text_batch
- ------------------------
 [0.021,-0.043,0.117,...]
 [0.008, 0.091,-0.034,...]
 [0.055,-0.012, 0.076,...]
(3 rows)

完全なパラメーターのリファレンスについては、 Models reference を参照してください。


quietb.encode_image()#

登録されたマルチモーダル埋め込みモデルCLIPモデルなどを使用して、単一の画像をベクトルにエンコードします。

SELECT aidb.encode_image(
    model_name => my_model_name,
    input      => pg_read_binary_file(/path/to/image.png)::BYTEA
);

__OUTPUT__
                         encode_image
- -------------------------------------------------------------
 [-0.012, 0.084, 0.031, ...]
(1 row)

完全なパラメーターのリファレンスについては、 Models reference を参照してください。


quietb.generate_text()#

指定されたプロンプトに応じて言語モデルLLMからテキストを生成します。これは、AIDBのLLM推論のコア機能です。

SELECT aidb.generate_text(
    model_name => my_model_name,
    input      => Explain what a knowledge base is in two sentences.
);

__OUTPUT__
                                         generate_text
- -------------------------------------------------------------------------------------------
 A knowledge base is a structured repository of information used to answer queries or ...
(1 row)

生成動作を制御するには、 aidb.inference_config() によってビルドされたinference_config オブジェクトを渡します。呼び出しがaidb.generate_text(TEXT, TEXT, json) 署名と一致するように、JSONB結果をjson にキャストします。

SELECT aidb.generate_text(
    model_name       => my_model_name,
    input            => Summarize the following text: ...,
    inference_config => aidb.inference_config(
        system_prompt => You are a concise technical writer.,
        temperature   => 0.2,
        max_tokens    => 256
    )::json
);

完全なパラメーターのリファレンスについては、 Models reference を参照してください。


quietb.generate_text_batch()#

単一のバッチ要求で複数のプロンプトのテキスト応答を生成します。

SELECT aidb.generate_text_batch(
    model_name => my_model_name,
    input  => ARRAY[
        What is a vector database?,
        What is retrieval-augmented generation?
    ]
);

__OUTPUT__
                           generate_text_batch
- ---------------------------------------------------------
 A vector database stores high-dimensional vectors ...
 Retrieval-augmented generation (RAG) combines a ...
(2 rows)

完全なパラメーターのリファレンスについては、 Models reference を参照してください。


quietb.inference_config()#

推論構成オブジェクトをビルドして、言語モデル生成動作を制御します。結果をaidb.generate_text() またはaidb.generate_text_batch() のinference_config 引数として、またはパイプラインステップ内のaidb.summarize_text_config() の一部として渡します。

SELECT aidb.generate_text(
    model_name       => my_llm,
    input            => Write a haiku about PostgreSQL.,
    inference_config => aidb.inference_config(
        temperature => 0.9,
        max_tokens  => 64,
        seed        => 42
    )::json
);

完全なパラメーターのリファレンスについては、 Models reference を参照してください。

!!!note これらのファンクションをパイプライン内のステップとして使用するには、 Pipeline steps を参照してください。