Demo script showing HTTP requests to use tools with reasoning with GPT-5.
OPENAI_API_KEY=$(llm keys get openai) uv run --with rich --with httpx gpt5_database_tools.py| <pre style="background: rgb(42, 42, 42); color: rgb(255, 255, 255); padding: 15px; border-radius: 4px;"><span style="color: rgb(255, 255, 255);">> Take a look at this issue and see what you think https://github.com/simonw/datasette/issues/2520 </span> | |
| ⏺<span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 255, 255); background: rgb(0, 0, 0);">Fetch</span><span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);">(https://github.com/simonw/datasette/issues/2520)</span> | |
| <span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> </span>⎿<span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> </span> <span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);">Received </span><span style="color: rgb(255, 255, 255); background: rgb(0, 0, 0);">239.1KB</span><span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> (200 OK)</span> | |
| ⏺<span style="color: rgb(242, 242, 242); background: rgb(0, 0, 0);"> </span><span style |
| <pre style="background: rgb(0, 0, 0); color: rgb(242, 242, 242); padding: 15px; border-radius: 4px;"> | |
| ╭───<span style="color: rgb(204, 98, 70);"> Claude Code </span><span style="color: rgb(135, 135, 135);">v2.0.25</span><span style="color: rgb(204, 98, 70);"> </span>──────────────────────────────────────────────────────╮ | |
| │<span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">Tips for getting </span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(255, 255, 255);">Welcome back Simon!</span><span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">started</span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> |
| <pre style="background: rgb(0, 0, 0); color: rgb(242, 242, 242); padding: 15px; border-radius: 4px;"> | |
| ╭───<span style="color: rgb(204, 98, 70);"> Claude Code </span><span style="color: rgb(135, 135, 135);">v2.0.25</span><span style="color: rgb(204, 98, 70);"> </span>──────────────────────────────────────────────────────╮ | |
| │<span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">Tips for getting </span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(255, 255, 255);">Welcome back Simon!</span><span style="color: rgb(242, 242, 242);"> </span>│<span style="color: rgb(242, 242, 242);"> </span><span style="color: rgb(204, 98, 70);">started</span><span style="color: rgb(242, 242, 242);"> </span>│ | |
| │<span style="color: rgb(242, 242, 242);"> |
| { | |
| "id": "chatcmpl-CTcq3dXrcStnVZibmdqTnUJKljYTv", | |
| "object": "chat.completion", | |
| "created": 1761176843, | |
| "model": "gpt-4o-mini-audio-preview-2024-12-17", | |
| "choices": [ | |
| { | |
| "index": 0, | |
| "message": { | |
| "role": "assistant", |
| ╔═══════════════════════════════════════════════════════════════════════════╗ | |
| ║ ║ | |
| ║ 🎓 LLM PRE-TRAINING FROM SCRATCH - COMPLETE JOURNEY ║ | |
| ║ ║ | |
| ╚═══════════════════════════════════════════════════════════════════════════╝ | |
| ═══════════════════════════════════════════════════════════════════════════ | |
| WHAT WE ACCOMPLISHED | |
| ═══════════════════════════════════════════════════════════════════════════ |
This prototype demonstrates how Datasette's permission checking logic (allow blocks) can be implemented entirely in SQLite using JSON functions, without requiring Python logic for the core matching algorithm.
Datasette uses "allow blocks" to control permissions. An allow block is a JSON object that specifies which actors can perform an action:
A secure, isolated development environment for Claude Code with network restrictions and pre-configured development tools.
This devcontainer provides a sandboxed environment for Claude Code with:
https://simonwillison.net/2024/Dec/31/llms-in-2024/ is my in-depth review of 2024 in LLMs
https://llm.datasette.io/ is the CLI tool I’ve been building
I like https://github.com/taketwo/llm-ollama and https://ollama.com/ for running local models - my current favorite is https://ollama.com/library/mistral-small
https://simonwillison.net/tags/llms/ is my LLMs tag, but it has 963 items already so may take a while to dig through!
| # /// script | |
| # requires-python = ">=3.12" | |
| # dependencies = [ | |
| # "click", | |
| # ] | |
| # /// | |
| import os | |
| import json | |
| import re |