28 lines
1.2 KiB
MySQL
28 lines
1.2 KiB
MySQL
|
|
-- AI Conversations: persistent log of "Ask Ash" chat interactions
|
||
|
|
-- Stores per-message context (persona, pillar, intent) and the model's reply.
|
||
|
|
-- Used by the /api/ai/history endpoint to show recent chats to the user.
|
||
|
|
|
||
|
|
BEGIN;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS ai_conversations (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||
|
|
persona VARCHAR(32), -- companies | job_seekers | customers | professionals
|
||
|
|
pillar VARCHAR(32), -- create | complete | discover | improve
|
||
|
|
query TEXT NOT NULL,
|
||
|
|
response TEXT NOT NULL,
|
||
|
|
intent VARCHAR(64), -- detected intent (e.g. help_search, ticket_creation)
|
||
|
|
confidence REAL, -- intent confidence in [0, 1]
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Hot path: "last 10 conversations for user X"
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_ai_conversations_user_id_created_at
|
||
|
|
ON ai_conversations (user_id, created_at DESC);
|
||
|
|
|
||
|
|
-- Optional grouping by conversation thread (frontend may pass a thread id).
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_ai_conversations_user_pillar
|
||
|
|
ON ai_conversations (user_id, pillar, created_at DESC);
|
||
|
|
|
||
|
|
COMMIT;
|