feat(rag): add temporary chat attachments

This commit is contained in:
wren
2026-05-25 15:37:37 +08:00
parent 0f385c9839
commit 75c077da77
16 changed files with 2257 additions and 16 deletions
@@ -0,0 +1,31 @@
CREATE TABLE IF NOT EXISTS rag_chat_attachment (
id BIGSERIAL PRIMARY KEY,
attachment_id VARCHAR(64) NOT NULL UNIQUE,
conversation_id VARCHAR(64) NOT NULL,
user_id BIGINT NOT NULL,
tenant_code VARCHAR(64) NULL,
area VARCHAR(255) NULL,
filename VARCHAR(512) NOT NULL,
original_name VARCHAR(512) NOT NULL,
content_type VARCHAR(255) NULL,
file_size BIGINT NOT NULL DEFAULT 0,
minio_path TEXT NULL,
collection_name VARCHAR(160) NOT NULL,
indexing_status VARCHAR(32) NOT NULL DEFAULT 'waiting',
indexing_error TEXT NULL,
chunk_count INTEGER NOT NULL DEFAULT 0,
indexing_started_at TIMESTAMPTZ NULL,
indexing_completed_at TIMESTAMPTZ NULL,
expires_at TIMESTAMPTZ NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ NULL
);
CREATE INDEX IF NOT EXISTS idx_rag_chat_attachment_scope
ON rag_chat_attachment(tenant_code, user_id, conversation_id, attachment_id)
WHERE deleted_at IS NULL;
CREATE INDEX IF NOT EXISTS idx_rag_chat_attachment_expires
ON rag_chat_attachment(expires_at)
WHERE deleted_at IS NULL;