Simon Willison
9695183a28
llm fragments -q search option
Test / test (macos-latest, ==1.10.2, 3.10) (push) Has been cancelled
Test / test (macos-latest, ==1.10.2, 3.11) (push) Has been cancelled
Test / test (macos-latest, ==1.10.2, 3.12) (push) Has been cancelled
Test / test (macos-latest, ==1.10.2, 3.13) (push) Has been cancelled
Test / test (macos-latest, ==1.10.2, 3.9) (push) Has been cancelled
Test / test (macos-latest, >=2.0.0, 3.10) (push) Has been cancelled
Test / test (macos-latest, >=2.0.0, 3.11) (push) Has been cancelled
Test / test (macos-latest, >=2.0.0, 3.12) (push) Has been cancelled
Test / test (macos-latest, >=2.0.0, 3.13) (push) Has been cancelled
Test / test (macos-latest, >=2.0.0, 3.9) (push) Has been cancelled
Test / test (ubuntu-latest, ==1.10.2, 3.10) (push) Has been cancelled
Test / test (ubuntu-latest, ==1.10.2, 3.11) (push) Has been cancelled
Test / test (ubuntu-latest, ==1.10.2, 3.12) (push) Has been cancelled
Test / test (ubuntu-latest, ==1.10.2, 3.13) (push) Has been cancelled
Test / test (ubuntu-latest, ==1.10.2, 3.9) (push) Has been cancelled
Test / test (ubuntu-latest, >=2.0.0, 3.10) (push) Has been cancelled
Test / test (ubuntu-latest, >=2.0.0, 3.11) (push) Has been cancelled
Test / test (ubuntu-latest, >=2.0.0, 3.12) (push) Has been cancelled
Test / test (ubuntu-latest, >=2.0.0, 3.13) (push) Has been cancelled
Test / test (ubuntu-latest, >=2.0.0, 3.9) (push) Has been cancelled
Test / test (windows-latest, ==1.10.2, 3.10) (push) Has been cancelled
Test / test (windows-latest, ==1.10.2, 3.11) (push) Has been cancelled
Test / test (windows-latest, ==1.10.2, 3.12) (push) Has been cancelled
Test / test (windows-latest, ==1.10.2, 3.13) (push) Has been cancelled
Test / test (windows-latest, ==1.10.2, 3.9) (push) Has been cancelled
Test / test (windows-latest, >=2.0.0, 3.10) (push) Has been cancelled
Test / test (windows-latest, >=2.0.0, 3.11) (push) Has been cancelled
Test / test (windows-latest, >=2.0.0, 3.12) (push) Has been cancelled
Test / test (windows-latest, >=2.0.0, 3.13) (push) Has been cancelled
Test / test (windows-latest, >=2.0.0, 3.9) (push) Has been cancelled
2025-02-17 22:38:01 -08:00
Simon Willison
02ccf9181a
Better non-JSON display of llm fragments list
2025-02-17 22:27:45 -08:00
Simon Willison
30331e9a4b
Documentation for fragments
2025-02-17 22:21:26 -08:00
Simon Willison
44ea07818c
Support fragment hash as well
2025-02-17 22:10:45 -08:00
Simon Willison
adebdf1745
Improved help for -f/--fragment
2025-02-17 22:02:06 -08:00
Simon Willison
2d9ca04697
Fragment aliases work now, refs #617
2025-02-17 20:54:14 -08:00
Simon Willison
3f4181883f
mypy fix
2025-02-17 20:53:41 -08:00
Simon Willison
0447ae2055
Fragments are now persisted, added basic CLI commands
...
Refs #617
2025-02-17 20:52:29 -08:00
Simon Willison
712124eda9
WIP fragments: schema plus reading but not yet writing, refs #617
2025-02-17 20:50:45 -08:00
Simon Willison
7bf1ea665e
Made load_conversation() async_ aware, closes #742
2025-02-16 20:19:38 -08:00
Simon Willison
2066397aae
llm logs --prompts is now -s/--short - also supports --usage
...
Refs #736 , closes #756
2025-02-16 15:12:28 -08:00
Simon Willison
6c6b100f3e
KeyModel and AsyncKeyModel classes for models that taken keys ( #753 )
...
* New KeyModel and AsyncKeyModel classes for models that taken keys - closes #744
* llm prompt --key now uses new mechanism, including for async
* use new key mechanism in llm chat command
* Python API tests for llm.KeyModel and llm.AsyncKeyModel
* Python API docs for for prompt(... key="")
* Mention await model.prompt() takes other parameters, reorg sections
* Better title for the model tutorial
* Docs on writing model plugins that take a key
2025-02-16 14:38:51 -08:00
Simon Willison
31e900e9e1
llm aliases set -q option, refs #749
2025-02-13 15:49:47 -08:00
Simon Willison
20c18a716d
-q multiple option for llm models and llm embed-models
...
Refs #748
2025-02-13 15:35:18 -08:00
Simon Willison
9a1374b447
llm embed-multi --prepend option ( #746 )
...
* llm embed-multi --prepend option
Closes #745
2025-02-12 15:19:18 -08:00
Simon Willison
41d64a8f12
llm logs --prompts option ( #737 )
...
Closes #736
2025-02-02 12:03:01 -08:00
Simon Willison
965ad819f9
Fix for tests with pydantic<2, refs #728
2025-01-31 12:18:33 -08:00
Simon Willison
eb0e1e761b
o3-mini and reasoning_effort option, refs #728
2025-01-31 12:14:02 -08:00
Simon Willison
656d8fa3c4
--xl/--extract-last flag for prompt and log list commands ( #718 )
...
Closes #717
2025-01-24 10:52:46 -08:00
Simon Willison
02e59a201e
Don't show default model for llm models -q, closes #710
2025-01-18 14:24:18 -08:00
Simon Willison
f95dd55cda
Make it easier to debug CLI errors in pytest
...
Found this pattern while working on #709
2025-01-18 14:21:43 -08:00
Amjith Ramanujam
e3c104b136
Show the default model when listing all available models. ( #688 )
2025-01-11 12:04:39 -08:00
Csaba Henk
88a8cfd9e4
llm logs -x/--extract option ( #693 )
...
* llm logs -x/--extract option
* Update docs/help.md for llm logs -x
* Added test for llm logs -x/--extract, refs #693
* llm logs -xr behaves same as llm logs -x
* -x/--extract in llm logging docs
---------
Co-authored-by: Simon Willison <swillison@gmail.com >
2025-01-10 15:53:04 -08:00
Simon Willison
b452effa09
llm models -q/--query option, closes #700
2025-01-09 11:37:33 -08:00
Simon Willison
000e984def
--extract support for templates, closes #681
2024-12-19 07:16:48 -08:00
Simon Willison
67d4a99645
llm prompt -x/--extract option, closes #681
2024-12-19 06:40:05 -08:00
Sukhbinder Singh
ac3d0089d0
Fix windows bug where llm doesn't run <<llm chat>> on Windows issue #495 ( #646 )
...
* Fix windows bug where llm doesn't run <<llm chat>> on Windows issue #495
* Applied Black
---------
Co-authored-by: Sukhbinder Singh <sukhbindersingh@gmail.com >
Co-authored-by: Simon Willison <swillison@gmail.com >
2024-12-01 15:57:24 -08:00
Simon Willison
cfb10f4afd
Log input tokens, output tokens and token details ( #642 )
...
* Store input_tokens, output_tokens, token_details on Response, closes #610
* llm prompt -u/--usage option
* llm logs -u/--usage option
* Docs on tracking token usage in plugins
* OpenAI default plugin logs usage
2024-11-19 20:21:59 -08:00
Simon Willison
4a059d722b
Log --async responses to DB, closes #641
...
Refs #507
2024-11-19 18:11:52 -08:00
Simon Willison
ba75c674cb
llm.get_async_model(), llm.AsyncModel base class and OpenAI async models ( #613 )
...
- https://github.com/simonw/llm/issues/507#issuecomment-2458639308
* register_model is now async aware
Refs https://github.com/simonw/llm/issues/507#issuecomment-2458658134
* Refactor Chat and AsyncChat to use _Shared base class
Refs https://github.com/simonw/llm/issues/507#issuecomment-2458692338
* fixed function name
* Fix for infinite loop
* Applied Black
* Ran cog
* Applied Black
* Add Response.from_row() classmethod back again
It does not matter that this is a blocking call, since it is a classmethod
* Made mypy happy with llm/models.py
* mypy fixes for openai_models.py
I am unhappy with this, had to duplicate some code.
* First test for AsyncModel
* Still have not quite got this working
* Fix for not loading plugins during tests, refs #626
* audio/wav not audio/wave, refs #603
* Black and mypy and ruff all happy
* Refactor to avoid generics
* Removed obsolete response() method
* Support text = await async_mock_model.prompt("hello")
* Initial docs for llm.get_async_model() and await model.prompt()
Refs #507
* Initial async model plugin creation docs
* duration_ms ANY to pass test
* llm models --async option
Refs https://github.com/simonw/llm/pull/613#issuecomment-2474724406
* Removed obsolete TypeVars
* Expanded register_models() docs for async
* await model.prompt() now returns AsyncResponse
Refs https://github.com/simonw/llm/pull/613#issuecomment-2475157822
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-13 17:51:00 -08:00
Simon Willison
bc96e1c739
Ruff fix for #626
2024-11-13 06:37:31 -08:00
Simon Willison
330e171e86
Fix for not loading plugins during tests, refs #626
2024-11-12 21:42:49 -08:00
Simon Willison
dff53a9cae
Better --help for llm keys get, refs #623
2024-11-11 09:53:24 -08:00
Simon Willison
561784df6e
llm keys get command, refs #623
2024-11-11 09:47:13 -08:00
Simon Willison
5d1d723d4b
Special case treat audio/wave as audio/wav, closes #603
2024-11-07 17:13:54 -08:00
Simon Willison
98d2c19876
Promote alternative model providers in llm --help
2024-11-06 06:38:53 -08:00
Simon Willison
7146fe82d1
Back to the deprecated Pydantic thing to get tests passing
...
Refs #612
2024-11-05 23:03:31 -08:00
Simon Willison
12df1a3b2a
Show attachment types in llm models --options, closes #612
2024-11-05 22:49:26 -08:00
Simon Willison
0cc4072bcd
Support attachments without prompts, closes #611
2024-11-05 21:27:18 -08:00
Simon Willison
f0ed54abf1
Docs for CLI attachments, refs #587
2024-10-28 15:41:34 -07:00
Simon Willison
286cf9fcd9
attachments= keyword argument, tests pass again - refs #587
2024-10-28 15:41:34 -07:00
Simon Willison
a9bc1c7329
llm logs --json for attachments, refs #587
2024-10-28 15:41:34 -07:00
Simon Willison
2384fd52a0
Tighter log output for binary content
2024-10-28 15:41:34 -07:00
Simon Willison
bb5b802d4f
llm logs markdown support for attachments, refs #587
2024-10-28 15:41:34 -07:00
Simon Willison
dff5b456fd
Got llm --continue to work with images, refs #587
2024-10-28 15:41:34 -07:00
Simon Willison
c0fe719df6
Store prompt attachments in attachments and prompt_attachments tables
...
Refs https://github.com/simonw/llm/issues/587#issuecomment-2439791231
2024-10-28 15:41:34 -07:00
Simon Willison
6df00f92ff
First working prototype of new attachments feature, refs #587
2024-10-28 15:41:34 -07:00
Simon Willison
6deed8f976
get_model() improvement, get_default_model() / set_default_wodel() now documented
...
Refs #553
2024-08-18 17:37:31 -07:00
Simon Willison
0ef5037b00
Remove obsolete DEFAULT_EMBEDDING_MODEL, closes #537
2024-07-18 12:22:17 -07:00
Simon Willison
a83421607a
Switch default model to gpt-4o-mini (from gpt-3.5-turbo), refs #536
2024-07-18 11:57:19 -07:00