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 を参照してください。