Simon Willison
9d9ecd0a73
Handle tool calls with empty arguments better, closes #1521
2026-07-09 09:02:50 -07:00
Simon Willison
706852ecea
New image_detail low/high/auto/original option
...
Refs https://github.com/simonw/llm/issues/1418#issuecomment-4316983472
2026-04-24 16:22:43 -07:00
Simon Willison
87efea179d
Cleaner dynamic self.Options building, refs #1418
2026-04-24 16:11:22 -07:00
Simon Willison
021a29d61a
OpenAI verbosity option
...
Refs https://github.com/simonw/llm/issues/1418#issuecomment-4316867527
2026-04-24 16:08:26 -07:00
Simon Willison
c9a3ac9fe0
New model: gpt-5.5 - refs #1418
2026-04-24 15:41:12 -07:00
Simon Willison
cad03fb4f4
Register async models for extra-openai-models.yaml, closes #1395
...
Note that Completion models do not have an async class so will not be registered as async.
2026-04-04 07:07:14 -07:00
Simon Willison
7169fe9085
Add Usage to llm/__init__ __all__ (to fix Ruff)
Test / test (windows-latest, 3.10) (push) Has been cancelled
Test / test (windows-latest, 3.11) (push) Has been cancelled
Test / test (windows-latest, 3.12) (push) Has been cancelled
Test / test (windows-latest, 3.13) (push) Has been cancelled
Test / test (windows-latest, 3.14) (push) Has been cancelled
Test / test (macos-latest, 3.10) (push) Has been cancelled
Test / test (macos-latest, 3.11) (push) Has been cancelled
Test / test (macos-latest, 3.12) (push) Has been cancelled
Test / test (macos-latest, 3.13) (push) Has been cancelled
Test / test (macos-latest, 3.14) (push) Has been cancelled
Test / test (ubuntu-latest, 3.10) (push) Has been cancelled
Test / test (ubuntu-latest, 3.11) (push) Has been cancelled
Test / test (ubuntu-latest, 3.12) (push) Has been cancelled
Test / test (ubuntu-latest, 3.13) (push) Has been cancelled
Test / test (ubuntu-latest, 3.14) (push) Has been cancelled
2026-03-31 13:33:56 -07:00
Simon Willison
946e433698
More docstrings and autoclass embeds in docs
2026-03-31 13:12:32 -07:00
Simon Willison
1562a8f444
Added some more autoclass docs, with new doctrings
2026-03-31 12:54:00 -07:00
Simon Willison
49d4e54639
register_models() model_aliases parameter
2026-03-31 12:45:38 -07:00
Simon Willison
c8889e0a76
Ran black
2026-03-17 11:25:12 -07:00
Simon Willison
07dccc00ef
GPT-5.4, 5.4-mini, 5.4-nano
...
Closes #1376
2026-03-17 11:24:52 -07:00
Simon Willison
683ca204b2
Ensure -x/--xl work with -t
2026-03-17 11:22:34 -07:00
Claude
947feaa0c9
Add gpt-5.4 and gpt-5.4-2026-03-05 model support
...
https://claude.ai/code/session_01HwqZ4WeDCrspfF8E7STiPA
2026-03-06 00:42:46 +00:00
Simon Willison
6b84a0d36b
Only do model_aluases=get_model_aliases() if needed by --save
...
I do not think this prevents hitting all the plugins for every prompt though
but it least we no longer hit all the plugins twice.
2026-01-19 13:19:57 -08:00
Simon Willison
5d237ce6ce
Show options in Markdown logs output, closes #1322
2025-12-17 22:19:33 -08:00
Eric Bloch
f7934c5c26
Fix some descriptor leaks ( #1313 )
...
Refs #1312
2025-12-11 14:20:58 -08:00
Arjan Mossel
73548c479a
Add type annotations for OpenAI Chat/AsyncChat/Completion execute methods ( #1315 )
...
* Add type annotations for OpenAI Chat/AsyncChat/Completion execute methods
* Add type hint for OpenAI _Shared class
* cast(Response) to make mypy happy
Co-authored-by: Simon Willison <swillison@gmail.com >
2025-12-11 14:17:17 -08:00
Giuseppe Rota
618463de13
fix: register fragment source in chat command ( #1316 )
...
* Register fragment source in chat command
2025-12-11 13:54:32 -08:00
Simon Willison
1753eb74ee
gpt-5.2, gpt-5.2-chat-latest - refs #1317
2025-12-11 11:50:08 -08:00
Simon Willison
14c2e2ab7e
Move the import to a better spot, refs #1309
2025-11-25 22:20:05 -08:00
Simon Willison
a0ac68c452
Custom HTTP user-agent for llm -f URL, closes #1309
2025-11-25 22:07:11 -08:00
Simon Willison
a04a6afa74
AsyncModel in llm.__all__, closes #1308
2025-11-25 13:44:42 -08:00
Simon Willison
c7abd58000
Fix for asyncio.iscoroutinefunction warning
2025-11-14 15:49:18 -08:00
Simon Willison
0526abeeea
gpt-5.1 and gpt-5.1-chat-latest, refs #1300
2025-11-13 11:35:14 -08:00
Simon Willison
c41c122239
Use tools in templates with llm chat, closes #1239
2025-08-11 22:11:17 -07:00
Simon Willison
2f206d0e26
Fix for duplicated prompts in llm chat with templates, closes #1240
...
Also includes a bug fix for system fragments, see https://github.com/simonw/llm/issues/1240#issuecomment-3177684518
2025-08-11 21:52:54 -07:00
Simon Willison
e6ac18fbcb
Fix for confusing error, closes #1238
2025-08-11 16:52:16 -07:00
Simon Willison
9f1417f6e8
Fix for enum options and --save, refs #1237
2025-08-11 16:16:27 -07:00
James Sanford
2a54939951
Fix streaming tool calls with tests for many variants. ( #1218 )
...
* Recorded instance of streaming tool response variant "a".
This is the typical response, where "arguments":"" arrives
first in the stream, followed by "arguments":"{}"
The response data is a real capture from the OpenRouter API,
however some request and header data may be from other test fixtures.
* Recorded instance of streaming tool response variant "b".
This is a streaming response where the first arguments
you get is a fully formed "arguments":"{}"
The response data is a real capture from the OpenRouter API,
however some request and header data may be from other test fixtures.
* Test cases for streaming tool responses.
Note that the replays are marked as "read-only", as they are variants
seen in the wild where the streaming tool call argument fragments
arrive in a specific order.
* Fix streaming tool response variant "b", where "arguments":"{}" is what arrives first.
The previous code erroneously caused the first "arguments" to be duplicated,
by using "+=" even when being initially set.
This went unnoticed as many models stream "arguments":"" first.
When a more fully formed "arguments" fragment arrived first, it was causing
"Error: Extra data: line 1 column 3 (char 2)"
* Recorded instance of streaming tool response variant "c".
This was failing with "Error: unsupported operand type(s) for +=: 'NoneType' and 'str'"
The response data is a real capture from the OpenRouter API,
however some request and header data may be from other test fixtures.
* Test case for streaming tool response variant "c".
* Fix streaming tool response variant "c".
However, I'm not sure why arguments was initially not present or seen as None.
2025-08-11 14:17:52 -07:00
Simon Willison
5204a11f33
Allow -o option when calling tools, closes #1233
2025-08-11 13:44:26 -07:00
Simon Willison
cbd3aab511
GPT-5 model IDs, refs #1229
2025-08-11 13:23:36 -07:00
Simon Willison
08094082f2
Toolbox.add_tool(), prepare() and prepare_async() methods
...
Closes #1111
2025-08-11 13:19:31 -07:00
Simon Willison
0863ed460e
llm logs -l/--latest -q option, closes #1177
2025-06-17 23:23:45 -07:00
Simon Willison
3a96d52895
Better handling of before_call cancellation, closes #1148
2025-06-01 18:36:55 -07:00
Simon Willison
d96ae4ed8d
Fix --async logging to database, closes #1150
2025-06-01 17:38:26 -07:00
Simon Willison
65dde782b7
Fix mypy warning, closes #1146
2025-06-01 17:03:44 -07:00
Simon Willison
30e0c4abe8
ToolResult.exception for tool errors, now logged to DB
...
Closes #1104
2025-06-01 17:01:40 -07:00
Sukhbinder Singh
f5a38d3342
Add -h shortcut for --help
...
Closes #983 , #1134
2025-06-01 12:31:02 -07:00
Joe Freeman
94c62f45b1
Fix type of tools argument ( #1144 )
...
* Fix type of 'tools'
2025-06-01 12:06:20 -07:00
Simon Willison
ed64fc3362
chain_limit/before_call/after_call for conversations
...
* chain_limit/before_call/after_call for conversations, closes #1088
* Docs for before_call/after_call including for model.conversation
2025-06-01 12:00:29 -07:00
Simon Willison
b5d1c5ee90
Tools can now return attachments
...
Closes #1014
- llm.ToolOutput(output='...', attachments=[...]) for tools to return attachments
- New table: `tool_results_attachments`
- Table is populated when tools return attachments
- llm --tools-debug shows attachments returned by tools
- llm logs shows attachments returned by tools
2025-06-01 10:08:36 -07:00
Simon Willison
f74e242442
Clarifying comment
2025-06-01 09:16:37 -07:00
Simon Willison
fd2f0ffbcd
Better error on llm templates show, closes #1053
2025-05-31 17:26:07 -07:00
Simon Willison
330a568683
Raise error if a non-Toolbox subclass is passed to register(), closes #1114
2025-05-30 21:37:41 -07:00
Simon Willison
a3a2996fed
Tools in templates ( #1138 )
...
Closes #1009
2025-05-30 17:44:52 -07:00
Simon Willison
b858b0083e
set_resolved_model() for async models, closes #1117
2025-05-28 07:39:57 -07:00
Simon Willison
301db6d76c
responses.resolved_model column and response.set_resolved_model(model_id) method, closes #1117
2025-05-28 07:17:03 -07:00
Simon Willison
6bab712cdd
Fix for module 'builtins' has no attribute 'instance_id, closes #1107
2025-05-27 13:13:28 -07:00
Simon Willison
7fb4245f9d
Fix for mypy
2025-05-27 10:16:27 -07:00