Commit graph

237 commits

Author SHA1 Message Date
Simon Willison
bd2180df7d
llm chat --tool and --functions (#1062)
* Tool support for llm chat, closes #1004
2025-05-20 21:30:27 -07:00
Simon Willison
e48a5b9f11 Rename "echo" to "simple-echo", refs #1061 2025-05-20 20:55:54 -07:00
Simon Willison
4be2bbdc0e Ensure test does not fail due to random sort order of plugins 2025-05-20 20:53:35 -07:00
Simon Willison
f879b816e4 llm plugins --hook X option, closes #1047 2025-05-18 14:50:34 -04:00
Simon Willison
88b806ae1a Got multi-tool OpenAI chat working, in no-stream mode too
Refs #1017, #1019
2025-05-13 17:19:30 -07:00
Simon Willison
a880c123bd --tools is now --functions, can be path, can be multiple
Closes #1016
2025-05-13 17:19:30 -07:00
Simon Willison
a50de8b57a ChainResponse.log_to_db() method and test, refs #1017, #1003 2025-05-13 17:19:30 -07:00
Simon Willison
5162cabbe1 First test for tools, plus vcr+syrupy, refs #1017 2025-05-13 17:19:30 -07:00
Simon Willison
7efe51fcb4 Rename --python-tools to --tools, closes #1008 2025-05-13 17:19:30 -07:00
Simon Willison
4abd6e0faf Made a start on tools.md docs, refs #997
Also documented register_tools() plugin hook, refs #991
2025-05-13 17:19:30 -07:00
Simon Willison
0f114be5f0 --python-tools option on prompt and tools, closes #995 2025-05-13 17:19:30 -07:00
Simon Willison
8d5fc87028 llm tools and llm tools --json, closes #994 2025-05-13 17:19:30 -07:00
Simon Willison
290c0f13f3 register_tools() hook, get_tools() utility
Refs #991
2025-05-13 17:19:30 -07:00
Sukhbinder Singh
8c7d33ee52
Fixes --continue bug and adds --database argument to llm chat
* Fix database bug in continue conversation and adds --database to llm chat
* Move the --database to proper place and update help.

Closes #933
2025-05-04 15:57:13 -07:00
Simon Willison
e02863c1ca
Fragment plugins can now optionally return attachments (#974)
Closes #972
2025-05-04 14:50:27 -07:00
Simon Willison
768a1789a2 llm fragments list should order fragments by date
Closes #973
2025-05-04 12:46:27 -07:00
Benedikt Willi
7dcfa31143
Add '!edit' command to modify prompts in chat sessions using default editor (#969)
* Add '!edit' command to modify prompts in chat sessions
2025-05-04 10:19:48 -07:00
Simon Willison
16770611ca Fixed bug with model default options and aliases, closes #968 2025-05-04 09:30:44 -07:00
Simon Willison
c9f64096c9 llm fragments loaders, closes #941 2025-04-20 07:56:27 -07:00
Simon Willison
e78e1fceb2 LLM_MODEL and LLM_EMBEDDING_MODEL environment vars, closes #932 2025-04-19 20:41:24 -07:00
Simon Willison
4279df23a4 Allow -t and --system to be used together, refs #916 2025-04-13 20:27:41 -07:00
guspix
0cc26b3d4f
Allow escaping a dollar sign in templates by adding another dollar sign (#876)
* Allow escaping a dollar sign in templates by adding another dollar sign
* Docs for escaping $$ in template, refs #876, #904

Closes #904

---------

Co-authored-by: Simon Willison <swillison@gmail.com>
2025-04-08 20:33:39 -07:00
Steve Morin
4894b13414
llm models --options now shows keys and environment variables
Closes #903
2025-04-08 20:15:56 -07:00
Simon Willison
0950ff360f More verbosity in tests in CI, refs #901 2025-04-08 19:37:42 -07:00
Simon Willison
56d7f2f13a llm prompt -t filepath.yaml support, closes #897 2025-04-08 13:36:48 -07:00
Simon Willison
0fbbe6a054 llm logs backup command, closes #879 2025-04-07 21:45:52 -07:00
Simon Willison
631835ef71 If template has no $input variable prompt is still concatenated, closes #878 2025-04-07 07:31:28 -07:00
Simon Willison
388a4ea9a2 Attachment and attachment type support for templates, closes #826 2025-04-07 07:20:49 -07:00
Simon Willison
d0255a1eda llm fragments --aliases option, closes #891 2025-04-06 22:30:27 -07:00
Simon Willison
df2fce25f0 Make it easier to see result5.output if test fails 2025-04-06 22:25:37 -07:00
Simon Willison
b011ed8352 Multpile llm logs -f are now ANDed together, closes #889 2025-04-06 22:22:30 -07:00
Simon Willison
a571a4e948
register_fragment_loaders() hook (#886)
* Docs and shape of register_fragment_loaders hook, refs #863
* Update docs for fragment loaders returning a list of FragmentString
* Support multiple fragments with same content, closes #888
* Call the pm.hook.register_fragment_loaders hook
* Test for register_fragment_loaders hook
* Rename FragmentString to Fragment

Closes #863
2025-04-06 17:03:34 -07:00
Simon Willison
9b78e39d45 Fixed tests relating to fragments, refs #881 2025-04-06 15:40:22 -07:00
Simon Willison
ac49075129 llm logs -e/--expand option, closes #881 2025-04-06 00:25:28 -07:00
Simon Willison
f740a5cbbd
Fragments (#859)
* WIP fragments: schema plus reading but not yet writing, refs #617
* Unique index on fragments.alias, refs #617
* Fragments are now persisted, added basic CLI commands
* Fragment aliases work now, refs #617
* Improved help for -f/--fragment
* Support fragment hash as well
* Documentation for fragments
* Better non-JSON display of llm fragments list
* llm fragments -q search option
* _truncate_string is now truncate_string
* Use condense_json to avoid duplicate data in JSON in DB, refs #617
* Follow up to 3 redirects for fragments
* Python API docs for fragments= and system_fragments=
* Fragment aliases cannot contain a : - this is to ensure we can add custom fragment loaders later on, refs https://github.com/simonw/llm/pull/859#issuecomment-2761534692
* Use template fragments when running prompts
* llm fragments show command plus llm fragments group tests
* Tests for fragments family of commands
* Test for --save with fragments
* Add fragments tables to docs/logging.md
* Slightly better llm fragments --help
* Handle fragments in past conversations correctly
* Hint at llm prompt --help in llm --help, closes #868
* llm logs -f filter plus show fragments in llm logs --json
* Include prompt and system fragments in llm logs -s
* llm logs markdown fragment output and tests, refs #617
2025-04-05 17:22:37 -07:00
Simon Willison
cc94111892 Skip invalid templates in llm templates list, closes #880 2025-04-05 11:32:35 -07:00
Simon Willison
f641b89882 llm similar -p/--plain option, closes #853 2025-03-28 00:36:08 -07:00
Simon Willison
5b2c611c82 llm prompt -d/--database option, closes #858 2025-03-28 00:20:31 -07:00
Simon Willison
7e7ccdc19a Hide -p/--path in favor of standard -d/--database, closes #857
Spotted while working on #853
2025-03-28 00:11:01 -07:00
Simon Willison
945f14e120 Test to close #854 2025-03-27 21:47:36 -07:00
Simon Willison
9a24605996 Allow -t to take a URL to a template, closes #856 2025-03-27 20:36:58 -07:00
Simon Willison
468b0551ee
llm models options commands for setting default model options
Closes #829
2025-03-22 18:28:45 -07:00
Simon Willison
1ad7bbd32a
Ability to store options in templates (#845)
* llm prompt --save option support, closes #830
* Fix for templates with just a system prompt, closes #844
* Tests for options from template, refs #830
* Test and bug fix for --save with options, refs #830
* Docs for template options support, refs #830
2025-03-22 17:24:02 -07:00
Simon Willison
4a45bc6efc Move new truncate_string to llm.utils, add tests
Refs #759
2025-03-22 16:30:34 -07:00
Simon Willison
6c9a8efb50
register_template_loaders plugin hook, closes #809
* Moved templates CLI commands next to each other
* llm templates loaders command
* Template loader tests
* Documentation for template loaders
2025-03-21 16:46:44 -07:00
Simon Willison
807f863850
Note that simplify_usage_dict is used by a plugin 2025-03-21 15:19:24 -07:00
Simon Willison
3541415db4 llm prompt -q X -q Y option, closes #841 2025-03-21 15:17:16 -07:00
Simon Willison
63e5dff774 Update test, regs #834 2025-03-19 20:47:51 -07:00
Simon Willison
bfbcc201b7 Don't require input if template does not use $input, closes #835 2025-03-15 19:17:36 -07:00
Simon Willison
bc692e1f19 Templates only require input if they use $input 2025-03-15 19:06:41 -07:00