WangDL 98bc9961ba
Some checks failed
Deploy API Server / build-and-deploy (push) Failing after 33s
feat: M2-07 — RAG Chat module with sessions, messages, citations
- ChatSession/ChatMessage/ChatCitation Prisma models
- CAPI: create/list sessions, send message, get history, delete
- Admin AAPI: view user sessions and messages
- Content safety integration on user input
- Placeholder RAG pipeline (real pipeline in M3)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 13:39:14 +08:00

36 lines
1.4 KiB
SQL

CREATE TABLE IF NOT EXISTS `ChatSession` (
`id` VARCHAR(191) NOT NULL,
`userId` VARCHAR(191) NOT NULL,
`knowledgeBaseId` VARCHAR(191) NOT NULL,
`title` VARCHAR(200) NOT NULL DEFAULT '新对话',
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL,
INDEX `ChatSession_userId_idx`(`userId`),
INDEX `ChatSession_knowledgeBaseId_idx`(`knowledgeBaseId`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `ChatMessage` (
`id` VARCHAR(191) NOT NULL,
`sessionId` VARCHAR(191) NOT NULL,
`role` VARCHAR(16) NOT NULL,
`content` LONGTEXT NOT NULL,
`tokens` INTEGER NOT NULL DEFAULT 0,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
INDEX `ChatMessage_sessionId_idx`(`sessionId`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `ChatCitation` (
`id` VARCHAR(191) NOT NULL,
`messageId` VARCHAR(191) NOT NULL,
`chunkId` VARCHAR(191) NULL,
`sourceId` VARCHAR(191) NULL,
`sourceTitle` VARCHAR(255) NULL,
`excerptText` VARCHAR(2000) NULL,
`pageNumber` INT NULL,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
INDEX `ChatCitation_messageId_idx`(`messageId`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;