LLM Configuration and Access

An LlmNode or Agent uses a DbmsVectorChainLlmConfig component to identify the model provider, API endpoint, model, database credential, and generation settings for a model invocation.

Three separate configurations participate in an external model call:

ConfigurationResponsibility
LLM configurationIdentifies the provider, endpoint, model, credential name, and request settings.
Database credentialStores the authentication material used for the provider request.
Network access control list (ACL)Authorizes the database principal to connect to the endpoint host.

The Agent Spec contains the credential name, but it does not contain the credential secret. The database credential and network ACL are created separately from the Agent Spec.

LLM Configuration Fields

FieldRequirementDescription
component_typeRequiredIdentifies the component as a DbmsVectorChainLlmConfig.
idRequiredUniquely identifies the configuration for symbolic references.
nameRequiredProvides a human-readable component name.
providerRequiredIdentifies the model provider.
urlRequiredSpecifies the complete provider API endpoint used for model requests.
modelRequiredIdentifies the model requested from the provider.
credential_nameConditionally requiredIdentifies the database credential used for authentication. It is required for an external provider and omitted when host is local.
hostOptionalSet to local for a supported local OpenAI-compatible or Ollama endpoint that does not use a database credential.
default_generation_parametersOptionalSupplies supported generation settings used for model invocations.
transfer_timeoutOptionalSets a nonnegative client-side transfer timeout, in seconds, for the provider request.

The supported generation settings are:

FieldDescription
max_tokensLimits the number of tokens generated by the model.
temperatureControls variation in the generated response.
top_pControls nucleus sampling for providers that support it.
reasoning_effortSelects a supported reasoning level for models that provide this setting.

Generation settings remain subject to the selected provider and model. A setting accepted by one provider might be unsupported or interpreted differently by another provider.

Define an LLM Configuration

The following component configures an external model:

{
  "component_type": "DbmsVectorChainLlmConfig",
  "id": "application-llm-config",
  "name": "application_llm_config",
  "provider": "example_provider",
  "url": "https://api.example.com/chat/completions",
  "model": "example_model",
  "credential_name": "AI_PROVIDER_CREDENTIAL",
  "transfer_timeout": 120,
  "default_generation_parameters": {
    "max_tokens": 512,
    "temperature": 0.2,
    "top_p": 0.9
  }
}

An LlmNode or Agent refers to this component by its id:

{
  "llm_config": {
    "$component_ref": "application-llm-config"
  }
}

The provider, url, and model values form one provider-specific configuration. The endpoint must implement the request and response format expected for the selected provider and model.

Create the Database Credential

The database credential stores the authentication material required by the model provider. The database user that creates the credential requires the applicable credential privileges and access to DBMS_VECTOR_CHAIN.CREATE_CREDENTIAL.

The following example creates an API-key credential:

BEGIN
  DBMS_VECTOR_CHAIN.CREATE_CREDENTIAL (
    CREDENTIAL_NAME => 'AI_PROVIDER_CREDENTIAL',
    PARAMS          => JSON ('{"access_token":"replace-with-provider-api-key"}')
  );
END;
/

The access_token value is an example for providers that authenticate with an API key or bearer token. Other providers can require different credential attributes. Create the credential with the payload required by the selected provider.

The name passed to CREATE_CREDENTIAL must match thecredential_name in the LLM configuration. A schema-qualified name can identify a credential in another schema when the applicable database authorization permits access to it.

Grant Network Access

An external provider request also requires a network ACL entry for the endpoint host. A database administrator grants the outbound privilege to the database principal that executes the Agent Spec.

For the endpoint
https://api.example.com/v1/chat/completions, the ACL host is api.example.com:

BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE (
    HOST => 'api.example.com',
    ACE  => XS$ACE_TYPE (
              PRIVILEGE_LIST => XS$NAME_LIST ('http'),
              PRINCIPAL_NAME => 'APP_SCHEMA',
              PRINCIPAL_TYPE => XS_ACL.PTYPE_DB
            )
  );
END;
/

The ACL HOST value contains only the host name. It does not contain the https:// scheme or the endpoint path. APP_SCHEMA represents the database principal authorized to make the outbound request and must be replaced with the principal used by the application.

How the Settings Work Together

Description of the illustration LLM Provider, Credential, and Network Configuration

The credential and ACL provide different permissions. Possession of a valid credential does not grant network access, and an ACL entry does not provide provider authentication. Both must be configured for an authenticated external model request.

Configure a Local Model

A supported local OpenAI-compatible or Ollama endpoint can set host to local and omit credential_name:

{
  "component_type": "DbmsVectorChainLlmConfig",
  "id": "local-llm-config",
  "name": "local_llm_config",
  "provider": "ollama",
  "host": "local",
  "url": "http://localhost:11434/api/chat",
  "model": "<model-name>"
}

Replace with the exact model identifier recognized by the configured endpoint. For an Ollama endpoint, this is the installed model name, including its tag when applicable. The provider, url, and model values must be mutually compatible.

host and credential_name are mutually exclusive. The local setting does not make an arbitrary remote endpoint unauthenticated; it applies only to supported local provider configurations.