Files
lang-agent/scripts/create_prompt_table.sql
2026-02-10 10:55:14 +08:00

31 lines
1.2 KiB
SQL

-- A prompt_set groups a full collection of prompts together.
-- Each pipeline can have many sets (versions, A/B variants, etc.);
-- exactly one should be marked is_active per pipeline.
CREATE TABLE IF NOT EXISTS prompt_sets (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
pipeline_id VARCHAR(64) NOT NULL,
name VARCHAR(128) NOT NULL,
description TEXT DEFAULT '',
is_active BOOLEAN DEFAULT false,
created_at TIMESTAMPTZ DEFAULT now(),
updated_at TIMESTAMPTZ DEFAULT now()
);
-- Fast lookup of the active set for a pipeline
CREATE INDEX IF NOT EXISTS idx_prompt_sets_pipeline_active
ON prompt_sets(pipeline_id, is_active);
-- Each prompt belongs to a prompt_set, keyed by prompt_key.
CREATE TABLE IF NOT EXISTS prompt_templates (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
prompt_set_id UUID NOT NULL REFERENCES prompt_sets(id) ON DELETE CASCADE,
prompt_key VARCHAR(64) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMPTZ DEFAULT now(),
updated_at TIMESTAMPTZ DEFAULT now(),
UNIQUE(prompt_set_id, prompt_key)
);
CREATE INDEX IF NOT EXISTS idx_prompt_templates_set_id
ON prompt_templates(prompt_set_id);