Models reference#

Reference for all model-related functions and views in AIDB. For guide-style documentation, see Integrating models .

Configuration model#

A model’s behavior is controlled two ways, and it matters which one you use for a given setting:

  • Creation-time ``config`` — set when you call aidb.create_model() , using a provider-specific Model config helpers (aidb.bert_config() , aidb.completions_config() , and so on). This is the model’s persistent, stored configuration.

  • Call-time ``inference_config`` — an optional per-call override, built with aidb.inference_config() , passed directly to an inference function. It overrides the model’s stored config for that one call only; anything you don’t override falls back to the value set at creation time.

Only some inference functions accept a call-time override — the rest are fixed entirely by the model’s creation-time config :

Function

Call-time override?

aidb.generate_text(), aidb.generate_text_batch()

Yes — pass aidb.inference_config() (or raw JSON) as the inference_config argument.

aidb.summarize_text(), aidb.summarize_text_aggregate()

Yes — via the inference_config field of AI pipelines .

aidb.encode_text(), aidb.encode_text_batch(), aidb.encode_image()

No. Behavior is fixed by config at creation time.

aidb.rerank_text()

No. Behavior is fixed by config at creation time.

aidb.perform_ocr()

No — its options parameter only selects which registered model to run, not inference settings.

This asymmetry follows from what each capability needs: text generation has runtime knobs worth tuning per call (temperature, system prompt, and so on); embeddings, reranking, and OCR don’t, so there’s nothing to override.

Catalog views#

aidb.model_providers#

Lists all available model providers registered in the system.

Column

Type

Description

server_name

name

Name of the model provider

server_description

text

Description of the provider

server_options

text[]

Available configuration options

aidb.models#

Lists all models in the registry, including default and user-created models.

Column

Type

Description

name

text

User-defined name for the model

provider

text

Model provider name

options

text[]

Configured options for the model

functions

text[]

Internal capability identifiers the model's provider supports (for example, aidb-openai-text-embeddings, aidb-openai-text-completion)

Example#

SELECT * FROM aidb.models;

__OUTPUT__
  name  |  provider  |    options    |                      functions
- -------+------------+---------------+-------------------------------------------------------
 bert   | bert_local | {"config={}"} | {aidb-openai-text-embeddings}
 clip   | clip_local | {"config={}"} | {aidb-openai-text-image-embeddings}
 t5     | t5_local   | {"config={}"} | {aidb-openai-text-embeddings,aidb-openai-text-completion}
(3 rows)

Model management functions#

aidb.create_model#

Registers a new model in the AIDB model registry.

Parameters#

Parameter

Type

Default

Description

name

TEXT

Required

Unique name for the model.

provider

TEXT

Required

Provider name (see aidb.model_providers).

config

JSONB

'{}'

Provider-specific configuration. Build with a Model config helpers .

credentials

JSONB

'{}'

Provider credentials (for example, {"api_key": "..."}).

replace_credentials

BOOLEAN

false

If true, updates stored credentials without re-creating the model.

validate

BOOLEAN

true

If true, probe the model at creation time to confirm it's functional. See Validation .

credentials_env

TEXT

NULL

Name of an environment variable to read credentials from instead of storing them. See Credentials from environment variables . Mutually exclusive with credentials.

Credentials from environment variables#

!!!note Don’t want a provider’s API key or password sitting in a database table at all, even one with restricted grants? Pass credentials_env instead of credentials , naming a Postgres environment variable to read the credential from. Only the variable’s name is stored — the value itself is read fresh from the Postgres backend process’s environment every time the model is used, and is never persisted in the database.

Pass a variable name instead of a credentials object:

SELECT aidb.create_model(
    name            => my_openai,
    provider        => openai_embeddings,
    config          => aidb.embeddings_config(model => text-embedding-3-small),
    credentials_env => AIDB_OPENAI_API_KEY
);

The referenced variable can hold either a bare secret (used as api_key ) or a JSON object (for example, {"basic_auth": "..."} ) — the same shapes credentials itself accepts. credentials and credentials_env are mutually exclusive; passing both raises an error.

For security, the environment variable’s name must start with the prefix configured by aidb.env_var_allowed_prefix (AIDB_ by default) — this stops a model or MCP server configuration from naming an arbitrary, unrelated environment variable on the Postgres host and exfiltrating its value. The same mechanism and the same GUC apply to MCP server authentication; see headers_env .

TLS configuration#

To connect to HTTPS model endpoints, include a tls_config field inside config :

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

Validation#

By default (validate => true ), aidb.create_model() runs a minimal probe inference before the registration commits, to confirm the model is functional:

  • Local models are downloaded and loaded, and a test inference is run — so a bad model identifier or unloadable weights fail at creation time rather than on first use.

  • External models receive a small test request — so an invalid API key, wrong URL, or unreachable endpoint is caught right away.

If the probe fails, aidb.create_model() raises an error and registers nothing. Pass validate => false to skip the probe — for example, to defer a large download to first use, or to register a model before its endpoint or credentials are available. You can validate a model later with aidb.validate_model() .

Examples#

- - 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
);

aidb.get_model#

Returns the configuration for a registered model.

Parameters#

Parameter

Type

Description

model_name

TEXT

Name of the model to retrieve.

Returns#

Column

Type

Description

name

text

Model name

provider

text

Provider name

options

text[]

Configured options

Example#

SELECT * FROM aidb.get_model(t5);

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

aidb.delete_model#

Removes a model from the registry. Doesn’t affect pipelines or knowledge bases that reference it until they are next executed.

Parameters#

Parameter

Type

Description

model_name

TEXT

Name of the model to delete.

Returns#

The name, provider, and options of the deleted model.

Example#

SELECT aidb.delete_model(t5);

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

aidb.validate_model#

Probes a registered model to confirm it’s functional, running a minimal test inference. Called automatically by aidb.create_model() unless validate => false ; you can also call it directly to recheck an existing model.

Parameters#

Parameter

Type

Description

model_name

TEXT

Name of the model to validate.

Returns#

TEXT — the model capability that was probed (for example, text embedding , language , reranking , image embedding , or OCR ). Raises an error if the probe fails.

Example#

SELECT aidb.validate_model(my_bert);

__OUTPUT__
 validate_model
- ---------------
 text embedding
(1 row)

HCP model functions#

These functions manage models running on EDB Hybrid Manager (HM).

aidb.list_hcp_models#

Lists models currently running on HM.

Returns#

Column

Type

Description

name

text

Model instance name on HCP

url

text

API endpoint URL

model

text

Model identifier

Example#

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)

aidb.create_hcp_model#

Registers an HCP-hosted model by referencing its running instance name.

Parameters#

Parameter

Type

Description

name

TEXT

User-defined name for the model in AIDB.

hcp_model_name

TEXT

Name of the model instance running on HCP.


aidb.sync_hcp_models#

Synchronizes the AIDB model registry with models currently running on HCP. Creates entries for new HCP models and deletes entries for models no longer running there.

Returns#

Column

Type

Description

status

text

created, deleted, unchanged, or skipped

model

text

Name of the synchronized model


Inference functions#

!!!note aidb.generate_text() and aidb.generate_text_batch() were previously named aidb.decode_text() and aidb.decode_text_batch() . The old names still work but are deprecated and will be removed in a future version — use the new names in new code.

aidb.encode_text#

Encodes a single text string into a vector using the specified model.

Parameters#

Parameter

Type

Description

model_name

TEXT

Name of the registered model.

input

TEXT

Text to encode.

Returns#

real[] — the embedding for the input text. Cast to vector to use with pgvector operators.

Example#

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

aidb.encode_text_batch#

Encodes an array of text strings into vectors in a single call.

Parameters#

Parameter

Type

Description

model_name

TEXT

Name of the registered model.

input

TEXT[]

Array of strings to encode.

Returns#

SETOF real[] — one row per input, in input order. The result column is named encode_text_batch .

Example#

SELECT * FROM aidb.encode_text_batch(bert_local, ARRAY[The quick brown fox, Lorem ipsum dolor sit amet]);

aidb.encode_image#

Encodes a binary image into a vector using a multimodal model (for example, CLIP).

Parameters#

Parameter

Type

Description

model_name

TEXT

Name of the registered model.

input

BYTEA

Raw image bytes.

Returns#

real[] — the embedding for the input image. Cast to vector to use with pgvector operators.

Example#

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

aidb.generate_text#

Generates a text response from a prompt using the specified model.

Parameters#

Parameter

Type

Default

Description

model_name

TEXT

Required

Name of the registered model.

input

TEXT

Required

Text prompt or input.

inference_config

JSON

NULL

Runtime inference settings. Use :ref:``aidb.inference_config()` <#aidbinference_config>` . Cast the result to json.

Returns#

TEXT — the generated response.

Examples#

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

- - With inference configuration
SELECT aidb.generate_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
);

aidb.generate_text_batch#

Generates text responses for an array of prompts in a single call.

Parameters#

Parameter

Type

Default

Description

model_name

TEXT

Required

Name of the registered model.

input

TEXT[]

Required

Array of text prompts.

inference_config

JSON

NULL

Runtime inference settings. Use :ref:``aidb.inference_config()` <#aidbinference_config>` . Cast the result to json.

Returns#

SETOF TEXT — one row per input prompt, in input order. The result column is named generate_text_batch .

Example#

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

aidb.rerank_text#

Scores and ranks a set of text inputs against a query using a reranking model.

Parameters#

Parameter

Type

Default

Description

model_name

TEXT

Required

Name of a registered reranking model.

query

TEXT

Required

The query to rank inputs against.

input

TEXT[]

[]

Array of candidate texts to rank.

Returns#

Column

Type

Description

text

text

The candidate text

logit_score

double precision

Relevance score (higher = more relevant)

id

int

Original index of the text in the input array

Example#

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;

Inference configuration helper#

aidb.inference_config#

Builds a JSONB configuration object for runtime inference settings. Pass the result (cast to json ) to aidb.generate_text() , aidb.generate_text_batch() , or use it with aidb.summarize_text_config() .

All parameters are optional — omit any you don’t need.

Parameters#

Parameter

Type

Default

Description

system_prompt

TEXT

NULL

System prompt prepended to the request. Not supported by T5 models.

temperature

DOUBLE PRECISION

NULL

Sampling temperature. 0.0 is deterministic; higher values increase variety.

max_tokens

INTEGER

NULL

Maximum tokens to generate.

top_p

DOUBLE PRECISION

NULL

Nucleus sampling threshold.

seed

BIGINT

NULL

Random seed for reproducible outputs.

repeat_penalty

REAL

NULL

Penalty for repeating tokens. 1.0 = no penalty. Not supported by NIM or OpenAI.

repeat_last_n

INTEGER

NULL

Number of recent tokens considered for repeat_penalty. Not supported by NIM or OpenAI.

thinking

BOOLEAN

NULL

Controls <think> tag handling. true/NULL retains tags; false strips them.

extra_args

JSONB

NULL

Additional provider-specific arguments passed directly to the API.

Returns#

JSONB — cast to ::json before passing to inference functions.

Examples#

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

- - Full configuration
SELECT aidb.generate_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.generate_text(
    my_reasoning_model,
    Solve: 2x + 5 = 15,
    aidb.inference_config(thinking => false)::json
);

Tool calling and structured output#

Three more inference settings exist but aren’t exposed as named parameters of aidb.inference_config() — build them as raw JSON instead, merged with the helper’s output using || if you also need other settings. Only ``llamacpp_generate`` , ``openai_responses`` (+ ``openai_responses_azure`` ), and ``anthropic_messages`` (+ ``anthropic_messages_azure`` /``anthropic_messages_bedrock`` ) honor these; every other provider rejects them.

Field

Type

Description

tools

JSONB array

OpenAI-compatible tools array — function definitions the model can call.

tool_choice

JSONB

OpenAI-compatible tool_choice: the string "auto", "required", or "none", or {"type": "function", "function": {"name": "..."}} to force a specific tool.

response_format

JSONB

Structured output. {"type": "json_schema", "json_schema": {"schema": {...}}} constrains the response to a JSON schema. Mutually exclusive with tools/tool_choice on openai_responses and anthropic_messages (and their variants).

!!!note openai_responses and anthropic_messages (and their Azure/Bedrock variants) map these to each API’s native tools /tool_choice request fields and parse real tool-call responses back — see OpenAI Responses API and Anthropic Messages API . Every other remote provider (openai_completions , gemini , nim_completions , and so on) rejects tools /tool_choice /response_format outright — this rejection only applies to direct calls like aidb.generate_text() . Any of those providers (except t5_local ) can still back an Agents reference ; the agent framework falls back to simulating tool calls by describing them in the prompt and parsing the model’s reply, rather than using these three fields.

- - Tool calling
SELECT aidb.generate_text(
    my_llamacpp_chat,
    What is the weather in Paris?,
    (aidb.inference_config(temperature => 0.2) || jsonb_build_object(
        tools, jsonb_build_array(
            jsonb_build_object(
                type, function,
                function, jsonb_build_object(
                    name, get_weather,
                    description, Get current weather for a city,
                    parameters, jsonb_build_object(
                        type, object,
                        properties, jsonb_build_object(city, jsonb_build_object(type, string)),
                        required, jsonb_build_array(city)
                    )
                )
            )
        ),
        tool_choice, auto
    ))::json
);

- - Structured output
SELECT aidb.generate_text(
    my_llamacpp_chat,
    Extract the city from: I live in Paris.,
    jsonb_build_object(
        response_format, jsonb_build_object(
            type, json_schema,
            json_schema, jsonb_build_object(
                schema, jsonb_build_object(
                    type, object,
                    properties, jsonb_build_object(city, jsonb_build_object(type, string)),
                    required, jsonb_build_array(city)
                )
            )
        )
    )::json
);

Model config helpers#

These functions return a JSONB configuration object for the config parameter of aidb.create_model() . Each helper corresponds to a specific model provider.

aidb.embeddings_config#

For openai_embeddings and any OpenAI-compatible embeddings endpoint.

Parameter

Type

Default

Description

model

TEXT

Required

Model identifier.

api_key

TEXT

NULL

API key.

url

TEXT

NULL

Endpoint URL override.

basic_auth

TEXT

NULL

Basic auth (user:password).

max_concurrent_requests

INTEGER

NULL

Max concurrent requests.

max_batch_size

INTEGER

NULL

Max inputs per batch.

input_type

TEXT

NULL

Input type hint (provider-specific).

input_type_query

TEXT

NULL

Query input type hint (provider-specific).

tls_config

JSONB

NULL

TLS configuration.

is_hcp_model

BOOLEAN

NULL

true if model runs on HCP.

Example#

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
    )
);

aidb.completions_config#

For openai_completions and any OpenAI-compatible completions endpoint.

Parameter

Type

Default

Description

model

TEXT

Required

Model identifier.

api_key

TEXT

NULL

API key.

url

TEXT

NULL

Endpoint URL override.

basic_auth

TEXT

NULL

Basic auth (user:password).

system_prompt

TEXT

NULL

Default system prompt.

temperature

DOUBLE PRECISION

NULL

Sampling temperature.

top_p

DOUBLE PRECISION

NULL

Nucleus sampling threshold.

seed

BIGINT

NULL

Random seed.

thinking

BOOLEAN

NULL

<think> tag handling.

max_tokens

JSONB

NULL

Max tokens config (use :ref:``aidb.max_tokens_config()` <#aidbmax_tokens_config>` ).

max_concurrent_requests

INTEGER

NULL

Max concurrent requests.

extra_args

JSONB

NULL

Additional provider-specific arguments.

is_hcp_model

BOOLEAN

NULL

true if model runs on HCP.

Example#

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

!!!note For agentic use with reliable, native tool calling on OpenAI models, use aidb.openai_responses_config instead — see Tool calling and structured output for how the two providers differ, and Agents reference for building an agent around either one.


aidb.max_tokens_config#

Builds the max_tokens object for use with aidb.completions_config() .

Parameter

Type

Default

Description

size

INTEGER

Required

Maximum tokens to generate.

format

TEXT

NULL

Format: 'default', 'legacy', or 'both'.

Example#

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

aidb.bert_config#

For the bert_local provider.

Parameter

Type

Default

Description

model

TEXT

Required

HuggingFace model identifier.

revision

TEXT

NULL

Model revision or branch.

cache_dir

TEXT

NULL

Local cache directory.

Example#

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

aidb.clip_config#

For the clip_local provider.

Parameter

Type

Default

Description

model

TEXT

Required

HuggingFace model identifier.

revision

TEXT

NULL

Model revision or branch.

cache_dir

TEXT

NULL

Local cache directory.

image_size

INTEGER

NULL

Input image size in pixels.

Example#

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

aidb.llama_config#

For the llama_instruct_local provider.

Parameter

Type

Default

Description

model

TEXT

Required

Model identifier or HuggingFace path.

revision

TEXT

NULL

Model revision.

cache_dir

TEXT

NULL

Local cache directory.

model_path

TEXT

NULL

Explicit local path to model weights (overrides model).

system_prompt

TEXT

NULL

Default system prompt.

temperature

DOUBLE PRECISION

NULL

Sampling temperature.

top_p

DOUBLE PRECISION

NULL

Nucleus sampling threshold.

seed

BIGINT

NULL

Random seed.

sample_len

INTEGER

NULL

Max tokens to generate.

repeat_penalty

REAL

NULL

Repetition penalty.

repeat_last_n

INTEGER

NULL

Tokens considered for repetition penalty.

use_flash_attention

BOOLEAN

NULL

Enable flash attention.

use_kv_cache

BOOLEAN

NULL

Enable KV cache.

Example#

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

aidb.t5_config#

For the t5_local provider.

Parameter

Type

Default

Description

model

TEXT

Required

Model identifier or HuggingFace path.

revision

TEXT

NULL

Model revision.

model_path

TEXT

NULL

Explicit local path to model weights.

cache_dir

TEXT

NULL

Local cache directory.

temperature

DOUBLE PRECISION

NULL

Sampling temperature.

top_p

DOUBLE PRECISION

NULL

Nucleus sampling threshold.

seed

BIGINT

NULL

Random seed.

max_tokens

INTEGER

NULL

Max tokens to generate.

repeat_penalty

REAL

NULL

Repetition penalty.

repeat_last_n

INTEGER

NULL

Tokens considered for repetition penalty.

Example#

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

aidb.gemini_config#

For the gemini provider.

Parameter

Type

Default

Description

api_key

TEXT

Required

Google API key.

model

TEXT

NULL

Gemini model identifier (for example, gemini-2.0-flash).

url

TEXT

NULL

API endpoint override.

max_concurrent_requests

INTEGER

NULL

Max concurrent requests.

thinking_budget

INTEGER

NULL

Extended thinking token budget (Gemini 2.x only).

Example#

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

!!!note Unlike other remote providers, Gemini’s api_key is a plain field of config rather than being passed through aidb.create_model() ’s separate credentials parameter. It’s stored as part of the model’s config rather than the more restricted credentials store — keep that in mind if aidb.models.options is visible to more roles than you want to see the key.


aidb.nim_clip_config#

For the nim_clip provider (NVIDIA NIM multimodal embeddings).

Parameter

Type

Default

Description

api_key

TEXT

NULL

NIM API key.

model

TEXT

NULL

NIM CLIP model identifier.

url

TEXT

NULL

NIM endpoint URL override.

basic_auth

TEXT

NULL

Basic auth credentials.

is_hcp_model

BOOLEAN

NULL

true if model runs on HCP.

Example#

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

aidb.nim_ocr_config#

For the nim_ocr provider (NVIDIA NIM OCR).

Parameter

Type

Default

Description

api_key

TEXT

NULL

NIM API key.

model

TEXT

NULL

NIM OCR model identifier.

url

TEXT

NULL

NIM endpoint URL override.

basic_auth

TEXT

NULL

Basic auth credentials.

is_hcp_model

BOOLEAN

NULL

true if model runs on HCP.

Example#

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

aidb.nim_reranking_config#

For the nim_reranking provider.

Parameter

Type

Default

Description

api_key

TEXT

NULL

NIM API key.

model

TEXT

NULL

NIM reranking model identifier.

url

TEXT

NULL

NIM endpoint URL override.

basic_auth

TEXT

NULL

Basic auth credentials.

is_hcp_model

BOOLEAN

NULL

true if model runs on HCP.

Example#

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

aidb.openrouter_chat_config#

For the openrouter_chat provider.

Parameter

Type

Default

Description

model

TEXT

Required

OpenRouter model identifier.

api_key

TEXT

NULL

OpenRouter API key.

url

TEXT

NULL

API endpoint override.

max_concurrent_requests

INTEGER

NULL

Max concurrent requests.

max_tokens

JSONB

NULL

Max tokens config (use :ref:``aidb.max_tokens_config()` <#aidbmax_tokens_config>` ).

Example#

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

aidb.openrouter_embeddings_config#

For the openrouter_embeddings provider.

Parameter

Type

Default

Description

model

TEXT

Required

OpenRouter embeddings model identifier.

api_key

TEXT

NULL

OpenRouter API key.

url

TEXT

NULL

API endpoint override.

max_concurrent_requests

INTEGER

NULL

Max concurrent requests.

max_batch_size

INTEGER

NULL

Max inputs per batch.

Example#

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

aidb.openai_responses_config#

For the openai_responses and openai_responses_azure providers.

Parameter

Type

Default

Description

model

TEXT

Required

Model identifier (for example, gpt-5.1).

api_key

TEXT

NULL

API key for authentication.

basic_auth

TEXT

NULL

Basic auth credentials (user:password).

url

TEXT

NULL

API endpoint URL. Defaults to OpenAI's Responses endpoint for openai_responses; required for openai_responses_azure (no universal default — use your resource's endpoint).

max_concurrent_requests

INTEGER

25

Maximum concurrent requests to the endpoint.

system_prompt

TEXT

NULL

Default system prompt, sent via the Responses API's native instructions field.

temperature

DOUBLE PRECISION

NULL

Sampling temperature.

max_output_tokens

INTEGER

NULL

Maximum tokens to generate.

top_p

DOUBLE PRECISION

NULL

Nucleus sampling threshold.

extra_args

JSONB

NULL

Additional provider-specific arguments passed directly to the API.

Examples#

- - OpenAI
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
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
);

This provider natively supports the tools , tool_choice , and response_format fields described in Tool calling and structured output .


aidb.anthropic_messages_config#

For the anthropic_messages , anthropic_messages_azure , and anthropic_messages_bedrock providers.

Parameter

Type

Default

Description

model

TEXT

Required

Model identifier (for example, claude-opus-4-6, or a Bedrock model ID for the Bedrock variant).

api_key

TEXT

NULL

API key for authentication. For anthropic_messages_bedrock, this is a Bedrock API key (bearer token), not an AWS SigV4 credential.

basic_auth

TEXT

NULL

Basic auth credentials (user:password).

url

TEXT

NULL

API endpoint URL. Defaults to api.anthropic.com for anthropic_messages. Required for anthropic_messages_azure (your resource's Messages endpoint) and anthropic_messages_bedrock (the regional bedrock-runtime base endpoint — the model ID is appended automatically).

max_concurrent_requests

INTEGER

25

Maximum concurrent requests to the endpoint.

system_prompt

TEXT

NULL

Default system prompt, sent via the Messages API's native system field.

temperature

DOUBLE PRECISION

NULL

Sampling temperature.

max_tokens

INTEGER

4096

Maximum tokens to generate. Anthropic's Messages API requires this field; AIDB defaults it when omitted.

top_p

DOUBLE PRECISION

NULL

Nucleus sampling threshold.

extra_args

JSONB

NULL

Additional provider-specific arguments passed directly to the API.

Examples#

- - Anthropic direct
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
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
);

This provider natively supports the tools , tool_choice , and response_format fields described in Tool calling and structured output . Anthropic’s Messages API has no native structured-output field, so response_format is implemented as a forced call to a synthetic tool — functionally equivalent, but it means response_format and tools /tool_choice can’t be used in the same call.