Models reference
================

AIDBのすべてのモデル関連のファンクションとビューのリファレンス。ガイドスタイルのドキュメントについては、
:ref:`Integrating models <Integrating models>`  を参照してください。

カタログビュー
--------------

helpb.model_providers
^^^^^^^^^^^^^^^^^^^^^

システムに登録されている使用可能なモデルプロバイダーをすべてリストします。

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `server_name`,name,モデルプロバイダーの名前
  `server_description`,text,プロバイダーの説明
  `server_options`,text[],使用可能な構成オプション

helpb.models
^^^^^^^^^^^^

ビルトインおよびユーザー作成モデルを含む、レジストリ内のすべてのモデルをリストします。

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,text,モデルのユーザー定義の名前
  `provider`,text,モデルプロバイダー名
  `options`,jsonb,モデルの設定済みオプション

例
^^

.. code:: sql

   SELECT * FROM aidb.models;

   __OUTPUT__
     name  |  provider  |    options
   - -------+------------+---------------
    bert   | bert_local | {"config={}"}
    clip   | clip_local | {"config={}"}
    t5     | t5_local   | {"config={}"}
   (3 rows)

--------------

モデル管理機能
--------------

promoteb.create_model
^^^^^^^^^^^^^^^^^^^^^

新しいモデルをAIDBモデルレジストリに登録します。

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `name`,TEXT,Required,モデルの一意の名前。
  `provider`,TEXT,Required,プロバイダー名 `aidb.model_providers`を参照してください。
  `config`,JSONB,`'{}'`,プロバイダー固有の構成。  :ref:`モデル構成ヘルパー<モデル構成ヘルパー>` でビルドします。
  `credentials`,JSONB,`'{}'`,"プロバイダーの資格情報たとえば `{""api_key"": ""...""}` 。"
  `replace_credentials`,BOOLEAN,`false`,`true`の場合、モデルを再作成せずに保存されている資格情報を更新します。

TLS構成
^^^^^^^

HTTPSモデルエンドポイントに接続するには、\ ``config``
内に\ ``tls_config`` フィールドを含めます。

.. code:: json

   "tls_config": {
     "insecure_skip_verify": true,
     "ca_path": "/etc/aidb/myCA.pem"
   }

.. _例-1:

例
^^

.. code:: sql

   - - Minimal registration
   SELECT aidb.create_model(my_t5, t5_local);

   - - With config and credentials
   SELECT aidb.create_model(
       name        => my_t5,
       provider    => t5_local,
       config      => {"param1": "value1"}::JSONB,
       credentials => {"token": "abcd"}::JSONB
   );

   - - Rotate credentials without re-creating
   SELECT aidb.create_model(
       name                => my_openai,
       provider            => openai_embeddings,
       config              => aidb.embeddings_config(model => text-embedding-3-small),
       credentials         => {"api_key": "<new-key>"}::JSONB,
       replace_credentials => true
   );

--------------

promoteb.get_model
^^^^^^^^^^^^^^^^^^

登録されたモデルの構成を返します。

.. _パラメーター-1:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `model_name`,TEXT,取得するモデルの名前。

返品
^^^^

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,text,モデル名
  `provider`,text,プロバイダー名
  `options`,jsonb,設定されたオプション

.. _例-2:

例
^^

.. code:: sql

   SELECT * FROM aidb.get_model(t5);

   __OUTPUT__
    name | provider |    options
   - -----+----------+---------------
    t5   | t5_local | {"config={}"}
   (1 row)

--------------

promoteb.delete_model
^^^^^^^^^^^^^^^^^^^^^

レジストリからモデルを削除します。次に実行されるまで、それを参照するパイプラインまたはナレッジベースには影響しません。

.. _パラメーター-2:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `model_name`,TEXT,削除するモデルの名前。

.. _返品-1:

返品
^^^^

JSONBとしての削除されたモデルの名前、プロバイダー、およびオプション。

.. _例-3:

例
^^

.. code:: sql

   SELECT aidb.delete_model(t5);

   __OUTPUT__
        delete_model
   - --------------------------------
    (t5,t5_local,"{""config={}""}")
   (1 row)

--------------

HCPモデルファンクション
-----------------------

これらの機能は、EDB Hybrid
ManagerHCPで実行されているモデルを管理します。

promoteb.list_hcp_models
^^^^^^^^^^^^^^^^^^^^^^^^

ハイブリッドマネージャーで現在実行されているモデルをリストします。

.. _返品-2:

返品
^^^^

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,text,HCPでのモデルインスタンス名
  `url`,text,APIエンドポイントURL
  `model`,text,モデル識別子

.. _例-4:

例
^^

.. code:: sql

   SELECT * FROM aidb.list_hcp_models();

   __OUTPUT__
                name              |                         url                          |            model
   - ------------------------------+------------------------------------------------------+------------------------------
    llama-3-1-8b-instruct-1xgpu   | http://llama-3-1-8b-predictor.default.svc.local      | meta/llama-3.1-8b-instruct
   (1 row)

--------------

promoteb.create_hcp_model
^^^^^^^^^^^^^^^^^^^^^^^^^

実行中のインスタンス名を参照することにより、HCPホストモデルを登録します。

.. _パラメーター-3:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `name`,TEXT,AIDB内のモデルのユーザー定義の名前。
  `hcp_model_name`,TEXT,HCPで実行されているモデルインスタンスの名前。

--------------

promoteb.sync_hcp_models
^^^^^^^^^^^^^^^^^^^^^^^^

AIDBモデルレジストリを、現在HCPで実行されているモデルと同期します。新しいHCPモデルのエントリを作成し、そこで実行されなくなったモデルのエントリを削除します。

.. _返品-3:

返品
^^^^

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `status`,text,`created`、`deleted`、`unchanged`、または`skipped`
  `model`,text,同期モデルの名前

--------------

推論ファンクション
------------------

helpb.encode_text
^^^^^^^^^^^^^^^^^

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

.. _パラメーター-4:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `model_name`,TEXT,登録されているモデルの名前。
  `text`,TEXT,エンコードするテキスト。

.. _返品-4:

返品
^^^^

``VECTOR`` —入力テキストの埋め込み。

.. _例-5:

例
^^

.. code:: sql

   SELECT aidb.encode_text(bert_local, The quick brown fox);

--------------

helpb.encode_text_batch
^^^^^^^^^^^^^^^^^^^^^^^

1回の呼び出しでテキスト文字列の配列をベクトルにエンコードします。

.. _パラメーター-5:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `model_name`,TEXT,登録されているモデルの名前。
  `text`,TEXT[],エンコードする文字列の配列。

.. _返品-5:

返品
^^^^

``TABLE(id INT, value VECTOR)`` — 入力ごとに1行、 ``id``
を介して入力順序を保存します。

--------------

promoteb.encode_image
^^^^^^^^^^^^^^^^^^^^^

マルチモーダルモデルCLIPなどを使用して、バイナリイメージをベクトルにエンコードします。

.. _パラメーター-6:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `model_name`,TEXT,登録されているモデルの名前。
  `image`,BYTEA,Raw画像バイト。

.. _返品-6:

返品
^^^^

``VECTOR`` —入力画像の埋め込み。

.. _例-6:

例
^^

.. code:: sql

   SELECT aidb.encode_image(clip_local, pg_read_binary_file(/tmp/photo.jpg)::BYTEA);

--------------

helpb.encode_image_batch
^^^^^^^^^^^^^^^^^^^^^^^^

1回の呼び出しでバイナリイメージの配列をベクトルにエンコードします。

.. _パラメーター-7:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `model_name`,TEXT,登録されているモデルの名前。
  `images`,BYTEA[],生の画像バイトの配列。

.. _返品-7:

返品
^^^^

``TABLE(id INT, value VECTOR)`` —入力画像ごとに1行、 ``id``
を介して入力順序を保存します。

--------------

promoteb.decode_text
^^^^^^^^^^^^^^^^^^^^

指定されたモデルを使用して、プロンプトからテキスト応答を生成します。

.. _パラメーター-8:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model_name`,TEXT,Required,登録されているモデルの名前。
  `text`,TEXT,Required,テキストプロンプトまたは入力。
  `inference_config`,JSON,NULL,実行時推論設定。  :ref:``aidb.inference_config()` <#aidbinference_config>` を使用します。

.. _返品-8:

返品
^^^^

``TEXT`` — 生成されたレスポンス

.. _例-7:

例
^^

.. code:: sql

   - - Basic usage
   SELECT aidb.decode_text(t5_local, translate to French: Hello, world.);

   - - With inference configuration
   SELECT aidb.decode_text(
       my_llama,
       Explain quantum computing in one sentence.,
       aidb.inference_config(
           system_prompt => Be concise and factual.,
           temperature   => 0.7,
           max_tokens    => 100
       )::json
   );

--------------

promoteb.decode_text_batch
^^^^^^^^^^^^^^^^^^^^^^^^^^

1回の呼び出しで一連のプロンプトに対するテキスト応答を生成します。

.. _パラメーター-9:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model_name`,TEXT,Required,登録されているモデルの名前。
  `input`,TEXT[],Required,テキストプロンプトの配列。
  `inference_config`,JSON,NULL,実行時推論設定。  :ref:``aidb.inference_config()` <#aidbinference_config>` を使用します。

.. _返品-9:

返品
^^^^

``TABLE(id INT, value TEXT)`` — 入力プロンプトごとに1行。

.. _例-8:

例
^^

.. code:: sql

   SELECT * FROM aidb.decode_text_batch(t5_local, ARRAY[
       translate to German: hello,
       translate to German: goodbye
   ]);

--------------

helpb.rerank_text
^^^^^^^^^^^^^^^^^

リランキングモデルを使用して、クエリに対してテキスト入力セットをスコアリングおよびランク付けします。

.. _パラメーター-10:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model_name`,TEXT,Required,登録されたリランキングモデルの名前。
  `query`,TEXT,Required,入力をランク付けするクエリー。
  `input`,TEXT[],`[]`,ランク付けの候補テキストの配列。

.. _返品-10:

返品
^^^^

.. csv-table::
  :header: Column,Type,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  `text`,text,候補テキスト
  `logit_score`,double precision,関連性スコア高いほど関連性が高い
  `id`,int,入力配列内のテキストの元のインデックス

.. _例-9:

例
^^

.. code:: sql

   SELECT * FROM aidb.rerank_text(
       my_reranker,
       How do I configure AIDB?,
       ARRAY[
           AIDB requires shared_preload_libraries.,
           Postgres supports JSON natively.,
           Run CREATE EXTENSION aidb CASCADE to install.
       ]
   ) ORDER BY logit_score DESC;

--------------

推論構成ヘルパー
----------------

helpb.inference_config
^^^^^^^^^^^^^^^^^^^^^^

ランタイム推論設定のJSONB構成オブジェクトをビルドします。結果\ ``json``
へのキャストを\ ``aidb.decode_text()`` 、\ ``aidb.decode_text_batch()``
に渡すか、 ``aidb.summarize_text_config()`` で使用します。

すべてのパラメーターはオプショナル - 必要ないものは省略します。

.. _パラメーター-11:

パラメーター
^^^^^^^^^^^^

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `system_prompt`,TEXT,NULL,要求の前に追加されるシステムプロンプト。 T5モデルではサポートされていません。
  `temperature`,DOUBLE PRECISION,NULL,サンプリング温度。 `0.0`は決定的です。値が高いほど多様性が増します。
  `max_tokens`,INTEGER,NULL,生成する最大トークン。
  `top_p`,DOUBLE PRECISION,NULL,nucleusサンプリングしきい値。
  `seed`,BIGINT,NULL,再現可能な出力のランダムシード。
  `repeat_penalty`,REAL,NULL,トークンを繰り返す場合のペナルティ。 `1.0` =ペナルティなし。 NIMまたはOpenAIではサポートされていません。
  `repeat_last_n`,INTEGER,NULL,`repeat_penalty`と考えられる最近のトークンの数。 NIMまたはOpenAIではサポートされていません。
  `thinking`,BOOLEAN,NULL,`<think>`タグの処理を制御します。 `true`/`NULL`はタグを保持します。 `false`はそれらを削除します。
  `extra_args`,JSONB,NULL,APIに直接渡される追加のプロバイダー固有の引数。

.. _返品-11:

返品
^^^^

``JSONB`` — 推論ファンクションに渡す前に\ ``::json`` にキャストします。

.. _例-10:

例
^^

.. code:: sql

   - - With temperature and token limit
   SELECT aidb.decode_text(
       my_llama,
       What is machine learning?,
       aidb.inference_config(temperature => 0.5, max_tokens => 150)::json
   );

   - - Full configuration
   SELECT aidb.decode_text(
       my_llama,
       Explain relativity.,
       aidb.inference_config(
           system_prompt  => You are a physics professor. Be precise.,
           temperature    => 0.3,
           max_tokens     => 200,
           top_p          => 0.9,
           seed           => 42,
           repeat_penalty => 1.1
       )::json
   );

   - - Hide reasoning tags from a thinking model
   SELECT aidb.decode_text(
       my_reasoning_model,
       Solve: 2x + 5 = 15,
       aidb.inference_config(thinking => false)::json
   );

--------------

モデル構成ヘルパー
------------------

これらのファンクションは、 ``aidb.create_model()`` の\ ``config``
パラメーターの\ ``JSONB``
構成オブジェクトを結果ます。各ヘルパーは、特定のモデルプロバイダーに対応します。

promoteb.embeddings_config
^^^^^^^^^^^^^^^^^^^^^^^^^^

``openai_embeddings`` およびOpenAI互換の埋め込みエンドポイントの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model`,TEXT,Required,モデル識別子。
  `api_key`,TEXT,NULL,APIキー。
  `url`,TEXT,NULL,エンドポイントURLのオーバーライド。
  `basic_auth`,TEXT,NULL,基本認証 `user:password`
  `max_concurrent_requests`,INTEGER,NULL,最大同時要求。
  `max_batch_size`,INTEGER,NULL,バッチごとの最大入力数。
  `input_type`,TEXT,NULL,入力タイプのヒントプロバイダー固有。
  `input_type_query`,TEXT,NULL,クエリ入力タイプのヒントプロバイダー固有。
  `tls_config`,JSONB,NULL,TLS構成。
  `is_hcp_model`,BOOLEAN,NULL,`true` モデルがHCPで実行される場合。

.. code:: sql

   SELECT aidb.create_model(
       my_embedder,
       openai_embeddings,
       config => aidb.embeddings_config(
           model   => text-embedding-3-small,
           api_key => sk-...,
           url     => https://api.openai.com/v1
       )
   );

--------------

promoteb.completions_config
^^^^^^^^^^^^^^^^^^^^^^^^^^^

``openai_completions``
およびOpenAI互換のコンプリートエンドポイントの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model`,TEXT,Required,モデル識別子。
  `api_key`,TEXT,NULL,APIキー。
  `url`,TEXT,NULL,エンドポイントURLのオーバーライド。
  `basic_auth`,TEXT,NULL,基本認証 `user:password`
  `system_prompt`,TEXT,NULL,デフォルトのシステムプロンプト。
  `temperature`,DOUBLE PRECISION,NULL,サンプリング温度。
  `top_p`,DOUBLE PRECISION,NULL,nucleusサンプリングしきい値。
  `seed`,BIGINT,NULL,ランダムシード。
  `thinking`,BOOLEAN,NULL,`<think>`タグの処理。
  `max_tokens`,JSONB,NULL,最大トークン構成 `aidb.max_tokens_config()`を使用します。
  `max_concurrent_requests`,INTEGER,NULL,最大同時要求。
  `extra_args`,JSONB,NULL,追加のプロバイダー固有の引数。
  `is_hcp_model`,BOOLEAN,NULL,`true` モデルがHCPで実行される場合。

.. code:: sql

   SELECT aidb.create_model(
       my_llm,
       openai_completions,
       config => aidb.completions_config(
           model       => gpt-4o,
           api_key     => sk-...,
           temperature => 0.2
       )
   );

--------------

promoteb.max_tokens_config
^^^^^^^^^^^^^^^^^^^^^^^^^^

``aidb.completions_config()`` で使用する\ ``max_tokens``
オブジェクトをビルドします。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `size`,INTEGER,Required,生成する最大トークン。
  `format`,TEXT,NULL,形式 `'default'`、`'legacy'`、または`'both'`

.. code:: sql

   SELECT aidb.completions_config(
       model      => gpt-4o,
       max_tokens => aidb.max_tokens_config(size => 1024, format => default)
   );

--------------

promoteb.bert_config
^^^^^^^^^^^^^^^^^^^^

``bert_local`` プロバイダーの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model`,TEXT,Required,HuggingFaceモデル識別子。
  `revision`,TEXT,NULL,モデルのリビジョンまたはブランチ。
  `cache_dir`,TEXT,NULL,ローカルキャッシュディレクトリ。

.. code:: sql

   SELECT aidb.create_model(my_bert, bert_local,
       config => aidb.bert_config(sentence-transformers/all-MiniLM-L6-v2));

--------------

promoteb.clip_config
^^^^^^^^^^^^^^^^^^^^

``clip_local`` プロバイダーの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model`,TEXT,Required,HuggingFaceモデル識別子。
  `revision`,TEXT,NULL,モデルのリビジョンまたはブランチ。
  `cache_dir`,TEXT,NULL,ローカルキャッシュディレクトリ。
  `image_size`,INTEGER,NULL,ピクセル単位の入力画像サイズ。

.. code:: sql

   SELECT aidb.create_model(my_clip, clip_local,
       config => aidb.clip_config(openai/clip-vit-base-patch32));

--------------

promoteb.llama_config
^^^^^^^^^^^^^^^^^^^^^

``llama_local`` プロバイダーの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model`,TEXT,Required,モデル識別子またはHuggingFaceパス。
  `revision`,TEXT,NULL,モデルリビジョン。
  `cache_dir`,TEXT,NULL,ローカルキャッシュディレクトリ。
  `model_path`,TEXT,NULL,モデルの重みへの明示的なローカルパス `model`をオーバーライドします。
  `system_prompt`,TEXT,NULL,デフォルトのシステムプロンプト。
  `temperature`,DOUBLE PRECISION,NULL,サンプリング温度。
  `top_p`,DOUBLE PRECISION,NULL,nucleusサンプリングしきい値。
  `seed`,BIGINT,NULL,ランダムシード。
  `sample_len`,INTEGER,NULL,生成する最大トークン。
  `repeat_penalty`,REAL,NULL,リピートペナルティ。
  `repeat_last_n`,INTEGER,NULL,反復ペナルティの対象とされるトークン。
  `use_flash_attention`,BOOLEAN,NULL,フラッシュアテンションを有効にします。
  `use_kv_cache`,BOOLEAN,NULL,KVキャッシュを有効にします。

.. code:: sql

   SELECT aidb.create_model(my_llama, llama_local,
       config => aidb.llama_config(
           meta-llama/Llama-3.2-3B-Instruct,
           temperature => 0.5
       )
   );

--------------

promoteb.t5_config
^^^^^^^^^^^^^^^^^^

``t5_local`` プロバイダーの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model`,TEXT,Required,モデル識別子またはHuggingFaceパス。
  `revision`,TEXT,NULL,モデルリビジョン。
  `model_path`,TEXT,NULL,モデルの重みへの明示的なローカルパス。
  `cache_dir`,TEXT,NULL,ローカルキャッシュディレクトリ。
  `temperature`,DOUBLE PRECISION,NULL,サンプリング温度。
  `top_p`,DOUBLE PRECISION,NULL,nucleusサンプリングしきい値。
  `seed`,BIGINT,NULL,ランダムシード。
  `max_tokens`,INTEGER,NULL,生成する最大トークン。
  `repeat_penalty`,REAL,NULL,リピートペナルティ。
  `repeat_last_n`,INTEGER,NULL,反復ペナルティの対象とされるトークン。

.. code:: sql

   SELECT aidb.create_model(my_t5, t5_local,
       config => aidb.t5_config(google/flan-t5-base));

--------------

promoteb.gemini_config
^^^^^^^^^^^^^^^^^^^^^^

``gemini`` プロバイダーの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `api_key`,TEXT,Required,Google APIキー。
  `model`,TEXT,NULL,Geminiモデル識別子たとえば `gemini-2.0-flash` 。
  `url`,TEXT,NULL,APIエンドポイントのオーバーライド。
  `max_concurrent_requests`,INTEGER,NULL,最大同時要求。
  `thinking_budget`,INTEGER,NULL,拡張思考トークンの予算Gemini 2.xのみ。

.. code:: sql

   SELECT aidb.create_model(my_gemini, gemini,
       config => aidb.gemini_config(AIza..., model => gemini-2.0-flash));

--------------

promoteb.nim_clip_config
^^^^^^^^^^^^^^^^^^^^^^^^

``nim_clip`` プロバイダーNVIDIA NIMマルチモーダル埋め込みの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `api_key`,TEXT,NULL,NIM APIキー。
  `model`,TEXT,NULL,NIM CLIPモデル識別子。
  `url`,TEXT,NULL,NIMエンドポイントURLのオーバーライド。
  `basic_auth`,TEXT,NULL,基本的な認証資格情報。
  `is_hcp_model`,BOOLEAN,NULL,`true` モデルがHCPで実行される場合。

.. code:: sql

   SELECT aidb.create_model(my_nim_clip, nim_clip,
       config => aidb.nim_clip_config(api_key => nvapi-..., model => nvidia/nvclip));

--------------

promoteb.nim_ocr_config
^^^^^^^^^^^^^^^^^^^^^^^

``nim_ocr`` プロバイダーNVIDIA NIM OCRの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `api_key`,TEXT,NULL,NIM APIキー。
  `model`,TEXT,NULL,NIM OCRモデル識別子。
  `url`,TEXT,NULL,NIMエンドポイントURLのオーバーライド。
  `basic_auth`,TEXT,NULL,基本的な認証資格情報。
  `is_hcp_model`,BOOLEAN,NULL,`true` モデルがHCPで実行される場合。

.. code:: sql

   SELECT aidb.create_model(my_nim_ocr, nim_ocr,
       config => aidb.nim_ocr_config(api_key => nvapi-...));

--------------

promoteb.nim_reranking_config
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``nim_reranking`` プロバイダーの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `api_key`,TEXT,NULL,NIM APIキー。
  `model`,TEXT,NULL,NIMリランキングモデル識別子。
  `url`,TEXT,NULL,NIMエンドポイントURLのオーバーライド。
  `basic_auth`,TEXT,NULL,基本的な認証資格情報。
  `is_hcp_model`,BOOLEAN,NULL,`true` モデルがHCPで実行される場合。

.. code:: sql

   SELECT aidb.create_model(my_reranker, nim_reranking,
       config => aidb.nim_reranking_config(
           api_key => nvapi-...,
           model   => nvidia/nv-rerankqa-mistral-4b-v3
       )
   );

--------------

promoteb.openrouter_chat_config
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``openrouter_chat`` プロバイダーの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model`,TEXT,Required,OpenRouterモデル識別子。
  `api_key`,TEXT,NULL,OpenRouter APIキー。
  `url`,TEXT,NULL,APIエンドポイントのオーバーライド。
  `max_concurrent_requests`,INTEGER,NULL,最大同時要求。
  `max_tokens`,JSONB,NULL,最大トークン構成 `aidb.max_tokens_config()`を使用します。

.. code:: sql

   SELECT aidb.create_model(my_or_chat, openrouter_chat,
       config => aidb.openrouter_chat_config(
           anthropic/claude-3-5-haiku,
           api_key => sk-or-...
       )
   );

--------------

promoteb.openrouter_embeddings_config
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``openrouter_embeddings`` プロバイダーの場合。

.. csv-table::
  :header: Parameter,Type,Default,Description
  :widths: 15,12,12,20
  :align: left
  :class: longtable

  `model`,TEXT,Required,OpenRouterエンベディングモデル識別子。
  `api_key`,TEXT,NULL,OpenRouter APIキー。
  `url`,TEXT,NULL,APIエンドポイントのオーバーライド。
  `max_concurrent_requests`,INTEGER,NULL,最大同時要求。
  `max_batch_size`,INTEGER,NULL,バッチごとの最大入力数。

.. code:: sql

   SELECT aidb.create_model(my_or_embedder, openrouter_embeddings,
       config => aidb.openrouter_embeddings_config(
           mistral/mistral-embed,
           api_key => sk-or-...
       )
   );
