1-- LLM Requests table for tracking/debugging API calls
2-- Each row represents one HTTP request/response to an LLM provider
3
4CREATE TABLE llm_requests (
5 id INTEGER PRIMARY KEY AUTOINCREMENT,
6 conversation_id TEXT, -- optional, may be NULL for requests outside conversations
7 model TEXT NOT NULL, -- model ID used for the request
8 provider TEXT NOT NULL, -- e.g., "anthropic", "openai", "gemini"
9 url TEXT NOT NULL,
10 request_body TEXT, -- JSON request body
11 response_body TEXT, -- JSON response body
12 status_code INTEGER,
13 error TEXT, -- error message if any
14 duration_ms INTEGER, -- request duration in milliseconds
15 created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
16);
17
18-- Index on conversation_id for debugging specific conversations
19CREATE INDEX idx_llm_requests_conversation_id ON llm_requests(conversation_id);
20
21-- Index on created_at for time-based queries
22CREATE INDEX idx_llm_requests_created_at ON llm_requests(created_at DESC);
23
24-- Index on model for filtering by model
25CREATE INDEX idx_llm_requests_model ON llm_requests(model);