Simon Willison

Results 2637 comments of Simon Willison

This test fails with `ulid.ULID()` but passes with `monotonic_ulid()`: ```python def test_monotonic_ulids(): ulids = [monotonic_ulid() for i in range(1000)] assert ulids == sorted(ulids) ```

Options: 1. Ignore the strings that are too long, embed everything else, show a warning about the ones that were skipped 2. Truncate the strings that are too long and...

If we DO need to include that library I'd prefer to have it a dependency of https://github.com/simonw/llm-openai-plugin/ so that `llm` itself can be installed without needing `tiktoken` as well.

The list of all tools made available to a model is important context, because even the fact that a model did _not_ chose to execute a tool is important information....

Just running these two commands: ```bash llm -T simple_eval '1234 * 123415' llm -c '* 33' ``` Produced the following sequence of _four* logs entries, grouped under one conversation. I...

Here's a demo with multiple tool rounds from a single prompt: ```bash llm --functions ' def lookup_population(country: str) -> int: "Returns the current population of the specified fictional country" return...

Here's a neater design for the logs without getting into the tool classes thing: > # conversation: 01jw2ckbm1s2wrm9p6a08fgk1g > > Model: **gpt-4.1-mini** > > Tools: > > - **lookup_population**: `47a2be714160f98686797a434ea1d3551ca55d71848b2aabb85ca866252b9bfc`...

That example assumes tools stay constant throughout the conversation. I want to let users use `--tool X` to change the tools available half way through. Not entirely sure if this...

... but OK, if I assume that new design what could it look like with class-based tools like Playwright? Maybe this - with a special note for when the `Playwright()`...

I haven't thought very hard about what happens if the arguments or output from a tool call are really long. Or if a tool call returns an attachment, see: -...