Simon Willison
Simon Willison
Flash also reminded me that there's another blocking call: the `resolve_type()` thing. Even if I'm passing a URL directly to a model that supports URL I may still need to...
Easiest way to write this is probably to have an `await attachment.prepare()` method which is called in asyncio context prior to `.execute()`.
The thread thing wouldn't help, because an operation in a thread can only unblock the event loop if you call `asyncio.to_thread(fn)` - so I would still need to re-engineer `build_messages()`...
If I wasn't so keen to avoid rewriting a bunch of plugins, what would the solution look like? I think it might be to have an `AsyncAttachment` class (similar to...
Maybe I could even move in that direction - implement the workaround version first, but also have the `AsyncAttachment` mechanism and coach people to upgrade their plugins to use it....
Getting a second opinion on _that_ from o4-mini: ```bash llm -f /tmp/llm.txt \ -m o4-mini \ -o reasoning_effort high \ -f issue:https://github.com/simonw/llm/issues/1143 \ -s 'Think hard about this problem and...
For the moment, I am going to mention this in the documentation as a restriction and link to this issue.
I want to fix this in LLM itself. I think the answer is to write to a `plugins.txt` file in the `llm.user_dir()` folder every time a plugin is installed or...
Maybe the trigger for the message is if suddenly NONE (or ~90%) of the plugins in that file are available?
See also: - #1113