External model connections#

外部モデルは、Postgresインスタンスの外部でホストされるAPIベースのモデルです。 AIDBは、aidb.create_model() にモデルを登録し、プロバイダー名、構成オブジェクト、およびAPIキーなどの資格情報を必要に応じて提供することにより、それらに接続します。

!!!note このページの例では、簡潔にするためにcredentials => '{"api_key": "..."}'::JSONB としてインラインで資格情報を渡します。 config 自分自身は、ネストの深さでapi_key またはbasic_auth キーを含めることはできません— aidb.create_model() はそれを拒否します—したがって、常に別のcredentials 引数を介して資格情報を渡します。シークレットをデータベースに保存しないようにするには、代わりにcredentials_env を渡し、接続時に読み取る環境変数を名前付けます。 環境変数からの資格情報 を参照してください。

登録されると、外部モデルはデフォルトのローカルモデルとまったく同様に、AIDB SQLファンクションまたはパイプラインステップで名前によって使用されます。

作成時にモデルの検証#

デフォルトでは、aidb.create_model() は、登録の一部として、小さなプローブ要求をプロバイダーに送信することにより、外部モデルを検証します。これにより、登録がコミットされる前に、エンドポイントが到達可能であり、構成と資格情報が正しいことが確認され、無効なAPIキーや間違ったURLなどの問題が、最初に使用するときではなくすぐに表面化します。プローブが失敗した場合、エラーが報告され、モデルは登録されません。

- - Validated by default: sends a test request to the provider now.
SELECT aidb.create_model(
    my_openai_embedder,
    openai_embeddings,
    config      => aidb.embeddings_config(model => text-embedding-3-small),
    credentials => {"api_key": "sk-..."}::JSONB
);

validate => false を渡してプローブをスキップします。たとえば、エンドポイントまたは資格情報がまだ利用できない場合、またはスクリプトによるセットアップ中の要求を回避します。

SELECT aidb.create_model(
    my_openai_embedder,
    openai_embeddings,
    config      => aidb.embeddings_config(model => text-embedding-3-small),
    credentials => {"api_key": "sk-..."}::JSONB,
    validate    => false
);

!!!note 検証は実際の要求をプロバイダーに送信するため、作成時にPostgresホストからのネットワークアクセスが必要で、少額の使用コストが発生する場合があります。

aidb.validate_model() を使用して、モデルを後で検証したり、既存のモデルを再チェックしたりできます。

OpenAI互換エンドポイント#

AIDBは、OpenAI APIを実装する埋め込みまたはチャット/補完サービスをサポートしています。これには、OpenAI自分自身、 Ollama のようなセルフホストサーバー、およびその他の準拠エンドポイントが含まれます。

エンベディング#

aidb.embeddings_config() とともにopenai_embeddings プロバイダーを使用します。 url パラメーターをオーバーライドして、要求をOpenAI互換サーバーにリダイレクトします。

- - OpenAI
SELECT aidb.create_model(
    my_openai_embedder,
    openai_embeddings,
    config      => aidb.embeddings_config(
        model => text-embedding-3-small,
        url   => https://api.openai.com/v1
    ),
    credentials => {"api_key": "sk-..."}::JSONB
);

- - Local Ollama server
SELECT aidb.create_model(
    my_ollama_embedder,
    openai_embeddings,
    config => aidb.embeddings_config(
        model => llama3.2,
        url   => http://llama.local:11434/v1/embeddings
    )
);

Parameter

Type

Default

Description

model

TEXT

Required

APIが想定するモデル識別子。

api_key

TEXT

NULL

認証用のAPIキー。

url

TEXT

NULL

APIエンドポイントURL。デフォルトではOpenAIのエンドポイントです。

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

クエリエンコーディングの入力タイプヒントプロバイダー固有。

is_hcp_model

BOOLEAN

NULL

HCPで実行されているモデルを参照する場合、`true`に設定します。

チャット完了#

aidb.completions_config() とともにopenai_completions プロバイダーを使用します。 url パラメーターは同じように機能します。OpenAIの場合は省略するか、他の準拠サーバーの場合はオーバーライドします。

SELECT aidb.create_model(
    my_openai_llm,
    openai_completions,
    config      => aidb.completions_config(
        model       => gpt-4o,
        temperature => 0.2
    ),
    credentials => {"api_key": "sk-..."}::JSONB
);

Parameter

Type

Default

Description

model

TEXT

Required

モデル識別子。

api_key

TEXT

NULL

認証用のAPIキー。

url

TEXT

NULL

APIエンドポイントURL。デフォルトではOpenAIのエンドポイントです。

basic_auth

TEXT

NULL

基本的な認証資格情報 user:password 。

temperature

DOUBLE PRECISION

NULL

サンプリング温度。

top_p

DOUBLE PRECISION

NULL

nucleusサンプリングしきい値。

seed

BIGINT

NULL

再現可能な出力のランダムシード。

system_prompt

TEXT

NULL

すべての要求の前に追加されるデフォルトのシステムプロンプト。

max_tokens

JSONB

NULL

最大トークン構成`aidb.max_tokens_config()`から。

thinking

BOOLEAN

NULL

拡張推論を有効にしますサポートされているモデルのみ。

max_concurrent_requests

INTEGER

NULL

エンドポイントへの最大同時要求。

extra_args

JSONB

NULL

追加のプロバイダー固有の引数。

is_hcp_model

BOOLEAN

NULL

HCPで実行されているモデルを参照する場合、`true`に設定します。

!!!note pgvectorインデックスを使用する場合、 pgvector limits indexed vectors to 2000 dimensions に注意してください。選択したモデルがより多くのディメンションを生成する場合、パイプラインステップでaidb.vector_index_disabled_config() を使用し、インデックスを手動で管理します。

OpenAI Responses API#

AIDBには、OpenAIモデル用の2つのプロバイダーがあります。どちらも同じモデル識別子gpt-4o 、gpt-5.x などで動作するため、どのモデルが必要かではなく、やっていることに基づいてそれらを選択してください。

Provider

API

Best for

Tool calling

openai_completions

Chat Completions (/v1/chat/completions)

Simple, one-off text generation — aidb.generate_text(), summarization, pipeline steps.

Rejects tools/tool_choice/response_format in aidb.generate_text()'s inference_config.

openai_responses

Responses API (/v1/responses)

Agentic workloads — multi-step reasoning, reliable tool calling, structured output.

Native — emits the API's real tools/tool_choice request fields and parses real tool-call responses back.

どちらのプロバイダーも Managing agents エージェントをバッキングすることもできます。AIDBは常にエージェントツール呼び出し機能を提供しますが、 方法 はプロバイダーによって異なります。 openai_responses によってサポートされ、ツール呼び出しは、本物のレスポンスAPIツール呼び出しとして有線で送られます。 openai_completions またはほぼその他のプロバイダーに支えられて、AIDBはプロンプトテキストで使用可能なツールを説明し、モデルのプレーンテキストの応答からツールコールバックを解析します。モデル自身のツール呼び出し動作ではなく、シミュレーション。 openai_responses は、エージェントにとってより信頼できる選択です。ツール呼び出しではなく、テキスト出力が必要な場合にopenai_completions を使用します。

SELECT aidb.create_model(
    my_gpt,
    openai_responses,
    config      => aidb.openai_responses_config(model => gpt-5.1),
    credentials => {"api_key": "sk-..."}::JSONB
);

Azure AI Foundry#

Azure AI Foundryの統合されたResponses APIサーフェスでホストされるモデルにopenai_responses_azure を使用します。これは、直接OpenAIと同じワイヤー形状ですが、普遍的なデフォルトがないためurl が必要です。リソースのエンドポイントに向けます。

SELECT aidb.create_model(
    my_gpt_azure,
    openai_responses_azure,
    config      => aidb.openai_responses_config(
        model => gpt-5.1,
        url   => https://<resource>.openai.azure.com/openai/v1/responses
    ),
    credentials => {"api_key": "..."}::JSONB
);

完全なパラメーターリストについては promoteb.openai_responses_config を参照し、各プロバイダーでtools 、tool_choice 、およびresponse_format を使用する場合は ツール呼び出しと構造化出力 を参照してください。

Anthropic Messages API#

anthropic_messages プロバイダーは、AnthropicのネイティブメッセージAPI /v1/messages に接続します。

SELECT aidb.create_model(
    my_claude,
    anthropic_messages,
    config      => aidb.anthropic_messages_config(model => claude-opus-4-6),
    credentials => {"api_key": "sk-ant-..."}::JSONB
);

Azure AI FoundryとAWS Bedrock#

残りの2つのバリアントは、同じ構成ヘルパーとワイヤーボディを共有し、認証とエンドポイントのみが異なります。

  • anthropic_messages_azure — Azure AI FoundryのネイティブAnthropic Messages APIサーフェス。 url が必要ですリソースのメッセージエンドポイント。

  • anthropic_messages_bedrock — AWS BedrockのInvokeModel API、Bedrock APIキーAWS SigV4ではなくベアラートークンで認証されます。 url は必須で、リージョンのbedrock-runtime ベースエンドポイントである必要があります。AIDBはモデルIDをパスに自動的に追加します。

- - Azure AI Foundry
SELECT aidb.create_model(
    my_claude_azure,
    anthropic_messages_azure,
    config      => aidb.anthropic_messages_config(
        model => claude-opus-4-6,
        url   => https://<resource>.services.ai.azure.com/anthropic/v1/messages
    ),
    credentials => {"api_key": "..."}::JSONB
);

- - AWS Bedrock
SELECT aidb.create_model(
    my_claude_bedrock,
    anthropic_messages_bedrock,
    config      => aidb.anthropic_messages_config(
        model => anthropic.claude-opus-4-6-v1:0,
        url   => https://bedrock-runtime.us-east-1.amazonaws.com
    ),
    credentials => {"api_key": "..."}::JSONB
);

!!!note AnthropicのMessages APIには、ネイティブの構造化出力フィールドがありません。 response_format を使用すると、AIDBはそれを内部で合成ツールの強制呼び出しに変換します。機能的に同等ですが、これは、 response_format を同じ呼び出しでtools /tool_choice と組み合わせることはできないことを意味します。

anthropic_messages は、クロード専用に構築されたAIDBの唯一のプロバイダーです。openai_completions と同等の古いanthropic_completions はありません。ベンダーごとのプロバイダーではなく、単一のユニファイドゲートウェイを介してクロードまたはOpenAI、または他のベンダーに到達したい場合は、以下の OpenRouter を参照してください。トレードオフは上記のopenai_completions と同じです — OpenRouterモデルは、エージェントをバッキングするときにネイティブではなく、シミュレートされたプロンプト挿入されたツール呼び出しを取得します。

完全なパラメーターリストについては、 helpb.anthropic_messages_config を参照してください。

NVIDIA NIM#

AIDBは、 build.nvidia.com でホストされるNVIDIA NIMマイクロサービスと、独自の環境で実行されているNIMインスタンスをサポートしています。

テキスト生成NIM補完#

aidb.completions_config() とともにnim_completions プロバイダーを使用します。NIMの補完エンドポイントはOpenAI互換であるため、openai_completions が使用するのと同じ構成ヘルパーです。完全なパラメーターリストについては、上記の チャット完了 を参照してください。

SELECT aidb.create_model(
    my_nim_llm,
    nim_completions,
    config      => aidb.completions_config(
        model => meta/llama-3.3-70b-instruct
    ),
    credentials => {"api_key": "nvapi-..."}::JSONB
);

独自の環境で実行されているNIMインスタンスを使用するには、NIMエンドポイントをポイントしてurl からaidb.completions_config() に渡します。

登録後、aidb.generate_text() でモデルを実行します。

SELECT aidb.generate_text(my_nim_llm, Tell me a short, one sentence story);

__OUTPUT__
                                       generate_text
- ---------------------------------------------------------------------------------
 As the clock struck midnight, a single tear fell from the porcelain dolls eye.
(1 row)

マルチモーダルエンベディングNIM CLIP#

共同テキストと画像の埋め込みには、 aidb.nim_clip_config() とともにnim_clip プロバイダーを使用します。

SELECT aidb.create_model(
    my_nim_clip,
    nim_clip,
    config      => aidb.nim_clip_config(
        model => nvidia/nvclip
    ),
    credentials => {"api_key": "nvapi-..."}::JSONB
);

aidb.nim_clip_config() パラメーター

Parameter

Type

Default

Description

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

モデルがHCPで実行されている場合、`true`に設定します。

OCR NIM OCR#

nim_paddle_ocr プロバイダーをaidb.nim_ocr_config() とともに使用して、画像からテキストを抽出します。

SELECT aidb.create_model(
    my_nim_ocr,
    nim_paddle_ocr,
    config      => aidb.nim_ocr_config(),
    credentials => {"api_key": "nvapi-..."}::JSONB
);

aidb.nim_ocr_config() パラメーター

Parameter

Type

Default

Description

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

モデルがHCPで実行されている場合、`true`に設定します。

リランキングNIMリランキング#

nim_reranking プロバイダーをaidb.nim_reranking_config() とともに使用して、関連性によって検索結果を再スコアします。 aidb.rerank_text() での使用については、 Text reranking を参照してください。

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

aidb.nim_reranking_config() パラメーター

Parameter

Type

Default

Description

api_key

TEXT

NULL

NIM認証用のAPIキー。

model

TEXT

NULL

NIMリランキングモデル識別子。

url

TEXT

NULL

NIMエンドポイントURLのオーバーライド。

basic_auth

TEXT

NULL

基本的な認証資格情報。

is_hcp_model

BOOLEAN

NULL

モデルがHCPで実行されている場合、`true`に設定します。

NIM APIキーを取得するには、 build.nvidia.com でアカウントを作成し、モデルを選択して、モデルのページからキーを生成します。

Google Gemini#

aidb.gemini_config() でgemini プロバイダーを使用します。 api_key はaidb.gemini_config() の最初のパラメーターであり、デフォルトありませんが、 NULL として渡し、代わりにcreate_model() のcredentials 引数を介して実際のキーを提供します。 config にはapi_key フィールドを含めることはできません。

SELECT aidb.create_model(
    my_gemini,
    gemini,
    config      => aidb.gemini_config(
        api_key => NULL,
        model   => gemini-2.0-flash
    ),
    credentials => {"api_key": "AIza..."}::JSONB
);

aidb.gemini_config() パラメーター

Parameter

Type

Default

Description

api_key

TEXT

Required

デフォルトはありませんが、 `NULL`を渡し、代わりに`create_model()`の`credentials`引数を介して本当のキーを提供します。 `config`に`api_key`を含めることはできません。

model

TEXT

NULL

Geminiモデル識別子たとえば gemini-2.0-flash 。

url

TEXT

NULL

APIエンドポイントURLオーバーライド。

max_concurrent_requests

INTEGER

NULL

APIへの最大同時要求。

thinking_budget

INTEGER

NULL

拡張思考トークンの予算Gemini 2.xモデルのみ。

OpenRouter#

OpenRouter は、複数のプロバイダーの200以上のモデルに統合APIゲートウェイを提供します。 AIDBは、OpenRouterを介したチャット補完と埋め込みの両方をサポートしています。

チャット完了#

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

aidb.openrouter_chat_config() パラメーター

Parameter

Type

Default

Description

model

TEXT

Required

OpenRouterモデル識別子。

api_key

TEXT

NULL

OpenRouter APIキー。

url

TEXT

NULL

APIエンドポイントURLオーバーライド。

max_concurrent_requests

INTEGER

NULL

最大同時要求。

max_tokens

JSONB

NULL

最大トークン構成`aidb.max_tokens_config()`から。

エンベディング#

SELECT aidb.create_model(
    my_or_embedder,
    openrouter_embeddings,
    config      => aidb.openrouter_embeddings_config(mistral/mistral-embed),
    credentials => {"api_key": "sk-or-..."}::JSONB
);

aidb.openrouter_embeddings_config() パラメーター

Parameter

Type

Default

Description

model

TEXT

Required

OpenRouterエンベディングモデル識別子。

api_key

TEXT

NULL

OpenRouter APIキー。

url

TEXT

NULL

APIエンドポイントURLオーバーライド。

max_concurrent_requests

INTEGER

NULL

最大同時要求。

max_batch_size

INTEGER

NULL

バッチ要求ごとの最大入力。

すべての構成ヘルパー機能の完全なパラメーターの詳細については、 Models reference を参照してください。