2.2 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/log.db
This will differ for other operating systems.
(You can customize the location of this file by setting a path in the LLM_LOG_PATH environment variable.)
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 log.db database:
CREATE TABLE "log" (
[id] INTEGER PRIMARY KEY,
[model] TEXT,
[timestamp] TEXT,
[prompt] TEXT,
[system] TEXT,
[response] TEXT,
[chat_id] INTEGER REFERENCES [log]([id]),
[debug] TEXT,
[duration_ms] INTEGER
);