|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TYPE task_type_enum AS ENUM ( |
|
|
'general', 'greeting', 'faq', 'support', 'creative' |
|
|
); |
|
|
|
|
|
CREATE TYPE toxicity_level_enum AS ENUM ( |
|
|
'none', 'low', 'medium', 'high' |
|
|
); |
|
|
|
|
|
CREATE TYPE feedback_type_enum AS ENUM ( |
|
|
'good', 'bad', 'report' |
|
|
); |
|
|
|
|
|
|
|
|
CREATE TABLE responses ( |
|
|
id UUID PRIMARY KEY, |
|
|
input_message TEXT NOT NULL, |
|
|
input_context TEXT, |
|
|
task_type task_type_enum NOT NULL, |
|
|
max_length INTEGER NOT NULL, |
|
|
temperature FLOAT NOT NULL, |
|
|
top_p FLOAT NOT NULL, |
|
|
generated_text TEXT NOT NULL, |
|
|
quality_score FLOAT NOT NULL, |
|
|
toxicity_score FLOAT NOT NULL, |
|
|
confidence FLOAT NOT NULL, |
|
|
toxicity_level toxicity_level_enum NOT NULL, |
|
|
generation_time_ms FLOAT NOT NULL, |
|
|
tokens_generated INTEGER NOT NULL, |
|
|
model_name VARCHAR(100), |
|
|
model_version VARCHAR(50), |
|
|
user_id VARCHAR(100), |
|
|
is_approved BOOLEAN, |
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL, |
|
|
updated_at TIMESTAMP WITH TIME ZONE NOT NULL |
|
|
); |
|
|
|
|
|
|
|
|
CREATE TABLE feedbacks ( |
|
|
id UUID PRIMARY KEY, |
|
|
response_id UUID NOT NULL, |
|
|
feedback_type feedback_type_enum NOT NULL, |
|
|
comment TEXT, |
|
|
user_id VARCHAR(100), |
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL, |
|
|
FOREIGN KEY (response_id) REFERENCES responses(id) ON DELETE CASCADE |
|
|
); |
|
|
|
|
|
|
|
|
CREATE INDEX idx_responses_id ON responses(id); |
|
|
CREATE INDEX idx_responses_quality_score ON responses(quality_score); |
|
|
CREATE INDEX idx_responses_toxicity_score ON responses(toxicity_score); |
|
|
CREATE INDEX idx_responses_toxicity_level ON responses(toxicity_level); |
|
|
CREATE INDEX idx_responses_created_at ON responses(created_at); |
|
|
CREATE INDEX idx_responses_user_id ON responses(user_id); |
|
|
CREATE INDEX idx_responses_created_at_desc ON responses(created_at DESC); |
|
|
CREATE INDEX idx_responses_toxicity_quality ON responses(toxicity_score, quality_score); |
|
|
CREATE INDEX idx_responses_task_type_created ON responses(task_type, created_at); |
|
|
|
|
|
|
|
|
CREATE INDEX idx_feedbacks_id ON feedbacks(id); |
|
|
CREATE INDEX idx_feedbacks_response_id ON feedbacks(response_id); |
|
|
CREATE INDEX idx_feedbacks_feedback_type ON feedbacks(feedback_type); |
|
|
CREATE INDEX idx_feedbacks_user_id ON feedbacks(user_id); |
|
|
CREATE INDEX idx_feedbacks_created_at ON feedbacks(created_at); |
|
|
CREATE INDEX idx_feedbacks_response_created ON feedbacks(response_id, created_at); |
|
|
CREATE INDEX idx_feedbacks_type_created ON feedbacks(feedback_type, created_at); |
|
|
|
|
|
|
|
|
|