46 lines
2.8 KiB
SQL
46 lines
2.8 KiB
SQL
-- 风控中心内容审计配置与记录
|
|
|
|
INSERT INTO settings (key, value, updated_at)
|
|
VALUES ('risk_control_enabled', 'false', NOW())
|
|
ON CONFLICT (key) DO NOTHING;
|
|
|
|
CREATE TABLE IF NOT EXISTS content_moderation_logs (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
request_id VARCHAR(128) NOT NULL DEFAULT '',
|
|
user_id BIGINT REFERENCES users(id) ON DELETE SET NULL,
|
|
user_email VARCHAR(255) NOT NULL DEFAULT '',
|
|
api_key_id BIGINT REFERENCES api_keys(id) ON DELETE SET NULL,
|
|
api_key_name VARCHAR(100) NOT NULL DEFAULT '',
|
|
group_id BIGINT REFERENCES groups(id) ON DELETE SET NULL,
|
|
group_name VARCHAR(255) NOT NULL DEFAULT '',
|
|
endpoint VARCHAR(128) NOT NULL DEFAULT '',
|
|
provider VARCHAR(64) NOT NULL DEFAULT '',
|
|
model VARCHAR(255) NOT NULL DEFAULT '',
|
|
mode VARCHAR(32) NOT NULL DEFAULT '',
|
|
action VARCHAR(32) NOT NULL DEFAULT '',
|
|
flagged BOOLEAN NOT NULL DEFAULT FALSE,
|
|
highest_category VARCHAR(64) NOT NULL DEFAULT '',
|
|
highest_score DECIMAL(8, 6) NOT NULL DEFAULT 0,
|
|
category_scores JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
threshold_snapshot JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
input_excerpt TEXT NOT NULL DEFAULT '',
|
|
upstream_latency_ms INT,
|
|
error TEXT NOT NULL DEFAULT '',
|
|
violation_count INT NOT NULL DEFAULT 0,
|
|
auto_banned BOOLEAN NOT NULL DEFAULT FALSE,
|
|
email_sent BOOLEAN NOT NULL DEFAULT FALSE,
|
|
queue_delay_ms INT,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
ALTER TABLE content_moderation_logs ADD COLUMN IF NOT EXISTS violation_count INT NOT NULL DEFAULT 0;
|
|
ALTER TABLE content_moderation_logs ADD COLUMN IF NOT EXISTS auto_banned BOOLEAN NOT NULL DEFAULT FALSE;
|
|
ALTER TABLE content_moderation_logs ADD COLUMN IF NOT EXISTS email_sent BOOLEAN NOT NULL DEFAULT FALSE;
|
|
ALTER TABLE content_moderation_logs ADD COLUMN IF NOT EXISTS queue_delay_ms INT;
|
|
CREATE INDEX IF NOT EXISTS idx_content_moderation_logs_created_at ON content_moderation_logs(created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_content_moderation_logs_group_created_at ON content_moderation_logs(group_id, created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_content_moderation_logs_flagged_created_at ON content_moderation_logs(flagged, created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_content_moderation_logs_user_created_at ON content_moderation_logs(user_id, created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_content_moderation_logs_api_key_created_at ON content_moderation_logs(api_key_id, created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_content_moderation_logs_endpoint_created_at ON content_moderation_logs(endpoint, created_at DESC);
|