Model: qwen2.5vl:latest
convert to markdown
- image/jpeg:
/private/tmp/p/poster.jpg
# Datasette: An Ecosystem of Tools for Finding Stories in Data
## Datasette
Datasette is a tool for exploring and publishing data. It helps data journalists and everyone else take data of any shape, analyze, and explore it, and publish it as an interactive website and accompanying API.
Datasette has over 180 plugins adding features for visualizing, editing, and transforming data.
- datasette-cluster-map
- datasette-graphql
- datasette-publish-cloudrun
- datasette-query-query-assistant
- datasette-extract-extract
## sqlite-utils
sqlite-utils is a Python library and CLI tool for manipulating SQLite databases. It aims to make the gap from "I have data" to "that data is in SQLite" as small as possible.
```python
from sqlite_utils import Database
db = Database("chickens.db")
db.table("chickens").insert_all([
{"name": "Lila", "color": "white"},
{"name": "Suna", "color": "gold"},
{"name": "Snowy", "color": "blue"},
])
```
## LLM
LLM is a Python library and CLI tool for interacting with Large Language Models. It provides a plugin-based abstraction over hundreds of different models, both local and hosted.
```python
from sqlite_utils import Database
db = Database("chickens.db")
db.table("chickens").enable_fts([
{"name": "Lila", "color": "white"},
{"name": "Suna", "color": "gold"},
{"name": "Snowy", "color": "blue"},
])
```
LLMs are proficient at SQL and extremely good at extracting structured data from unstructured text, images, and documents.
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
And in the terminal:
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions pk_id \
--default_name name Untitled \
--drop address
```
```bash
llm -m claude-3.5-haiku --functions 'import re
def extract_re_numbers(s):
return re.findall(r'(\d+\.?\d+)?', s)
' -f https://datasette.io \
```
```python
sqlite-utils transform places.db \
--rename_attractions