- Migration 000003: request_log_content table (messages jsonb, completion text) - InsertRequestLog now returns the new row's ID so content can be linked - Chat handler captures prompt messages and completion text (streaming accumulates deltas) - ListRequestLogs left-joins content; logs API passes key filter through - KeyStats query aggregates requests/tokens/cost/errors per key prefix - GET /api/admin/stats/keys endpoint - Logs page: expandable rows show prompt + completion inline - Analytics page: per-key usage table below the chart
9 lines
509 B
SQL
9 lines
509 B
SQL
-- Full prompt/completion content stored separately from the metadata log so
|
|
-- large payloads don't bloat the hot request_logs table.
|
|
CREATE TABLE request_log_content (
|
|
request_log_id uuid PRIMARY KEY REFERENCES request_logs (id) ON DELETE CASCADE,
|
|
messages jsonb NOT NULL DEFAULT '[]', -- the full messages array sent upstream
|
|
completion text NOT NULL DEFAULT '' -- the assistant turn text from the response
|
|
);
|
|
CREATE INDEX idx_rlc_log ON request_log_content (request_log_id);
|