This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
BEGIN;
|
||||
DROP TABLE IF EXISTS content_model_config;
|
||||
COMMIT;
|
||||
@@ -0,0 +1,37 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE content_model_config (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
public_id uuid NOT NULL UNIQUE DEFAULT gen_random_uuid(),
|
||||
tenant_id uuid NOT NULL REFERENCES tenant(id),
|
||||
display_name varchar(120) NOT NULL CHECK (length(trim(display_name)) BETWEEN 1 AND 120),
|
||||
provider varchar(32) NOT NULL CHECK (provider IN ('ark','openai_compatible')),
|
||||
base_url varchar(500) NOT NULL CHECK (length(trim(base_url)) BETWEEN 8 AND 500),
|
||||
model_id varchar(200) NOT NULL CHECK (length(trim(model_id)) BETWEEN 1 AND 200),
|
||||
encrypted_api_key bytea NOT NULL,
|
||||
nonce bytea NOT NULL,
|
||||
key_version bigint NOT NULL DEFAULT 1 CHECK (key_version > 0),
|
||||
credential_hint varchar(16) NOT NULL,
|
||||
temperature numeric(3,2) NOT NULL DEFAULT 0.20 CHECK (temperature >= 0 AND temperature <= 2),
|
||||
max_tokens integer NOT NULL DEFAULT 1200 CHECK (max_tokens BETWEEN 256 AND 8192),
|
||||
status varchar(16) NOT NULL DEFAULT 'inactive' CHECK (status IN ('inactive','active','revoked')),
|
||||
test_status varchar(16) NOT NULL DEFAULT 'untested' CHECK (test_status IN ('untested','passed','failed')),
|
||||
last_tested_at timestamptz,
|
||||
last_error_code varchar(80),
|
||||
activated_at timestamptz,
|
||||
created_by uuid NOT NULL,
|
||||
updated_by uuid NOT NULL,
|
||||
version bigint NOT NULL DEFAULT 1 CHECK (version > 0),
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now(),
|
||||
CONSTRAINT content_model_creator_tenant_fk FOREIGN KEY (created_by,tenant_id) REFERENCES user_account(id,tenant_id),
|
||||
CONSTRAINT content_model_updater_tenant_fk FOREIGN KEY (updated_by,tenant_id) REFERENCES user_account(id,tenant_id),
|
||||
CONSTRAINT content_model_identity_unique UNIQUE (tenant_id,provider,base_url,model_id)
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX content_model_one_active_per_tenant
|
||||
ON content_model_config(tenant_id) WHERE status='active';
|
||||
CREATE INDEX content_model_list_idx
|
||||
ON content_model_config(tenant_id,status,updated_at DESC);
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user