2.4 KiB
Logging to SQLite
llm can log all prompts and responses to a SQLite database.
First, create a database in the correct location. You can do that using the llm init-db command:
llm init-db
This creates a database in a directory on your computer. You can find the location of that database using the llm logs path command:
llm logs path
On my Mac that outputs:
/Users/simon/Library/Application Support/io.datasette.llm/logs.db
This will differ for other operating systems.
Once that SQLite database has been created any prompts you run will be logged to that database.
To avoid logging a prompt, pass --no-log or -n to the command:
llm 'Ten names for cheesecakes' -n
Viewing the logs
You can view the logs using the llm logs command:
llm logs
This will output the three most recent logged items as a JSON array of objects.
Add -n 10 to see the ten most recent items:
llm logs -n 10
Or -n 0 to see everything that has ever been logged:
llm logs -n 0
You can truncate the display of the prompts and responses using the -t/--truncate option:
llm logs -n 5 -t
This is useful for finding a conversation that you would like to continue.
You can also use Datasette to browse your logs like this:
datasette "$(llm logs path)"
SQL schema
Here's the SQL schema used by the logs.db database:
CREATE TABLE [conversations] (
[id] TEXT PRIMARY KEY,
[name] TEXT,
[model] TEXT
);
CREATE TABLE [responses] (
[id] TEXT PRIMARY KEY,
[model] TEXT,
[prompt] TEXT,
[system] TEXT,
[prompt_json] TEXT,
[options_json] TEXT,
[response] TEXT,
[response_json] TEXT,
[conversation_id] TEXT REFERENCES [conversations]([id]),
[duration_ms] INTEGER,
[datetime_utc] TEXT
);