Ask questions of your data with LLM assistance
See Ask questions of SQLite databases and CSV/JSON files in your terminal for background on this project.
Install this plugin in the same environment as sqlite-utils.
sqlite-utils install sqlite-utils-ask
Ask questions of a SQLite database file like this:
sqlite-utils ask content.db 'How many repos?'
The tool will use an LLM (gpt-4o-mini
by default) to generate the appropriate SQL query by passing through your question and the database schema, and will then execute the query and return the result.
You can also ask questions directly of CSV, TSV or JSON files. These will be imported into an in-memory SQLite database prior to running the query.
sqlite-utils ask-files data.csv 'How many repos?'
You can pass multiple files and run queries across multiple resulting tables.
sqlite-utils ask-files legislators.csv votes.csv 'How many votes did each legislator cast?'
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd sqlite-utils-ask
python -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
python -m pytest
To capture new HTTP interactions, run:
PYTEST_OPENAI_API_KEY=your-key python -m pytest --record-mode once
Or use --record-mode all
to re-record all interactions.