Model DDLs
On this page
This topic describes the data definition language (DDL) statements for registering, viewing, modifying, and deleting AI models.
Usage Notes
- The system supports various large model services with OpenAI compatible interfaces.
CREATE MODEL
Register a Model
Run a CREATE MODEL command in the SQL editor to register a model.
Syntax
1CREATE [TEMPORARY] MODEL [catalog_name.][db_name.]model_name
2INPUT ( { <physical_column_definition> [, ...n] )
3OUTPUT ( { <physical_column_definition> [, ...n] )
4WITH (key1=val1, key2=val2, ...)
5
6<physical_column_definition>:
7 column_name column_type [COMMENT column_comment]Examples
Completion Model
The following example registers a model for sentiment analysis using an OpenAI-compatible completion service. You can use a proxy to access the API if needed.
1CREATE MODEL sentiment_analysis_model
2INPUT (input STRING)
3OUTPUT (output STRING)
4WITH (
5 'provider' = 'openai',
6 'task' = 'completions',
7 'endpoint' = 'https://proxy.example.com/v1/chat/completions',
8 'apiKey' = '<your-api-key>',
9 'system_prompt' = 'Analyze the sentiment of the text and return only POSITIVE, NEGATIVE, or NEUTRAL.',
10 'model' = 'gpt-4.1'
11);When you call this model, the following happens:
- You pass a string of text via the
inputcolumn. - The model sends this to the API with the system prompt.
- The model analyzes the text and responds with POSITIVE, NEGATIVE, or NEUTRAL.
- The result is returned in the
outputfield.
Embedding Model
The following example registers an embedding model to convert text into numerical vectors.
1CREATE MODEL text_embedding_model
2INPUT (input STRING)
3OUTPUT (embedding ARRAY<FLOAT>)
4WITH (
5 'provider' = 'openai',
6 'endpoint' = 'https://api.example.com/v1/chat/embeddings',
7 'apiKey' = '<your-api-key>',
8 'model' = 'text-embedding-v3'
9);These embeddings are useful for:
- Semantic search: Find relevant documents based on meaning rather than keyword matches.
- Duplicate detection: Identify semantically identical entries.
- Text clustering: Automatically group similar documents.
- Recommendation systems: Suggest items based on content similarity.
- Anomaly detection: Find unusual or unexpected text entries.
Parameters
General
chat/completions
embeddings
View Models
Use the following commands to view information about registered models.
- Show registered models:
1SHOW MODELS [ ( FROM | IN ) [catalog_name.]database_name ];- Show model registration statement:
1SHOW CREATE MODEL [catalog_name.][db_name.]model_name;- Show model schema:
1DESCRIBE MODEL [catalog_name.][db_name.]model_name;Modify Models
Use the ALTER MODEL command to modify an existing model.
1ALTER MODEL [IF EXISTS] [catalog_name.][db_name.]model_name {
2 RENAME TO new_model_name
3 SET (key1=val1, ...)
4 RESET (key1, ...)
5}Examples
- Rename a model:
1ALTER MODEL m RENAME TO m1;- Modify a parameter:
1ALTER MODEL m SET ('endpoint' = 'https://new-endpoint.example.com');- Reset a parameter:
1ALTER MODEL m RESET ('endpoint');Context Overflow Handling
VERA Engine 4.3 introduces configurable strategies to handle inputs that exceed an AI model's maximum context window. You can define these strategies using the max-context-size and context-overflow-action parameters in the WITH clause of your CREATE MODEL statement.
Supported Overflow Actions
The following table describes the supported actions for handling context overflow.
SQL Examples
The following examples demonstrate how to use context overflow parameters with ML_PREDICT.
Chat and Completions
This example uses a completion model with a small context size and truncated-tail action.
1CREATE TEMPORARY MODEL `gpt-model`
2INPUT (`input` STRING)
3OUTPUT (`output` STRING)
4WITH (
5 'provider' = 'openai-compat',
6 'endpoint' = 'https://api.openai.com/v1/chat/completions',
7 'max-context-size' = '4',
8 'context-overflow-action' = 'truncated-tail',
9 'api-key' = '${secret_values.openai-key}',
10 'model' = 'gpt-4o'
11);
12
13-- Use ML_PREDICT to call the model
14SELECT `value`, `output`
15FROM ML_PREDICT(
16 INPUT => TABLE `source_table`,
17 MODEL => MODEL `gpt-model`,
18 ARGS => DESCRIPTOR(`value`)
19);Embeddings
This example uses an embedding model with a max-context-size of 2 and truncated-tail action. If the input contains more than two words, it is truncated before generating the embedding.
1CREATE TEMPORARY MODEL `embedding-model`
2INPUT (`input` STRING)
3OUTPUT (`output` ARRAY<FLOAT>)
4WITH (
5 'provider' = 'openai-compat',
6 'endpoint' = 'https://api.openai.com/v1/embeddings',
7 'max-context-size' = '2',
8 'context-overflow-action' = 'truncated-tail',
9 'api-key' = '${secret_values.openai-key}',
10 'model' = 'text-embedding-3-small',
11 'dimension' = '1536'
12);
13
14-- Use ML_PREDICT to generate embeddings
15SELECT `value`, `output`
16FROM ML_PREDICT(
17 INPUT => TABLE `source_table`,
18 MODEL => MODEL `embedding-model`,
19 ARGS => DESCRIPTOR(`value`)
20);Delete Models
Use the DROP MODEL command to delete a registered model.
1DROP [TEMPORARY] MODEL [IF EXISTS] [catalog_name.][db_name.]model_nameExample
1DROP MODEL sentiment_analysis_model;