Commit graph

153 commits

Author SHA1 Message Date
Simon Willison
02a930dd8e Updated Gist example for tutorial 2023-07-10 08:31:50 -07:00
Simon Willison
a421aab7f0 Renamed template.execute() to template.evaluate() and added type hints 2023-07-10 08:27:28 -07:00
Simon Willison
199f7e0767 Renamed iter_prompt() to execute() and updated tutorial 2023-07-10 07:59:12 -07:00
Simon Willison
ae87f978bd Moved iter_prompt from Response to Model, moved a lot of other stuff
- Moved a whole bunch of things from llm/cli.py into llm/__init__.py
- Switched plugin listings to use importlib.metadata to avoid deprecation warning
- iter_prompt() is now a method on Model, not on Response
2023-07-10 07:45:11 -07:00
Simon Willison
282b3af45d Run black at end of just fix
To ensure any changes made by ruff --fix are reformatted.
2023-07-10 07:41:49 -07:00
Simon Willison
ccda1eec73 Switch tutorial from setup.py to pyproject.toml
Refs #53

Based on https://til.simonwillison.net/python/pyproject

Closes #81
2023-07-08 15:34:19 -07:00
Simon Willison
902cf6010c Fixed type hint on Prompt 2023-07-07 20:38:53 -07:00
Simon Willison
5e1b528ebb Snappier tutorial title 2023-07-07 08:13:45 -07:00
Simon Willison
40f3892e19 Fix lin to Gist in tutorial 2023-07-06 21:11:05 -07:00
Simon Willison
94b13ab872 types-click 2023-07-06 20:45:10 -07:00
Simon Willison
c1e3cbf2e9 Detailed tutorial on writing plugins 2023-07-06 20:38:12 -07:00
Simon Willison
3d5c9b2d3b Read prompt after validating options
This means that if you do this:

    llm -m markov -o length -1

You will see an error message rather than have the command hang
waiting for a prompt to be entered on stdin.
2023-07-06 19:57:04 -07:00
Simon Willison
04568115b8 Options base class is now llm.Options not Model.Options 2023-07-05 20:47:36 -07:00
Simon Willison
b4248df72a Markov plugin now lives in llm-markov repo 2023-07-05 20:46:53 -07:00
Simon Willison
4611bff412 iter_prompt() now takes prompt 2023-07-05 20:46:17 -07:00
Simon Willison
c08344f986 llm logs now decodes JSON for prompt_json etc 2023-07-05 18:31:38 -07:00
Simon Willison
b88906d459 Default __str__ method for models 2023-07-05 18:26:16 -07:00
Simon Willison
6ef6b343a9 Improved how keys work, execute() now has default implementation 2023-07-05 18:25:57 -07:00
Simon Willison
f193468f76 llm install -e/--editable option 2023-07-05 17:58:19 -07:00
Simon Willison
78c93b9e23 Model.execute() model now defaults to using self.Response 2023-07-05 16:57:10 -07:00
Simon Willison
23886e04ae Better error message display
Refs https://github.com/pydantic/pydantic/issues/6441
2023-07-05 16:36:38 -07:00
Simon Willison
bc8dad1e33 stream defaults to True on prompt() method 2023-07-04 08:14:00 -07:00
Simon Willison
49e4d688c6 Removed .stream() method in favor of .prompt(stream=False) 2023-07-04 07:50:31 -07:00
Simon Willison
3136948408 Moved things into inner classes, log_message is now defined on base Response 2023-07-03 21:25:19 -07:00
Simon Willison
de81cc9a9e Test messages logged in new format 2023-07-03 08:12:04 -07:00
Simon Willison
307af2474c Fix column order in logs 2023-07-03 07:29:58 -07:00
Simon Willison
345ad0d2dc Implemented new logs database schema 2023-07-03 07:27:47 -07:00
Simon Willison
b1c51df3f1 New LogMessage design, plus Response.json() method 2023-07-03 06:46:51 -07:00
Simon Willison
61dd8afc60 Drop the debug field from the logs, combine chunks from stream 2023-07-03 06:39:54 -07:00
Simon Willison
84b99f8baf -o/--option, implemented for OpenAI models - closes #63 2023-07-02 17:42:22 -07:00
Simon Willison
e485eadf14 just fix command 2023-07-02 17:40:45 -07:00
Simon Willison
52add96ec1 Rough initial version of new logging, to log2 table 2023-07-02 16:35:36 -07:00
Simon Willison
4a9f7f4908 Lint using Ruff, refs #78 2023-07-02 12:41:40 -07:00
Simon Willison
9eeebfa020 type stubs for PyYAML and requests, refs #77 2023-07-02 12:39:37 -07:00
Simon Willison
3ed86e403d Added mypy, plus some fixes to make it happy - refs #77 2023-07-02 12:36:22 -07:00
Simon Willison
7054c673e1 Better type hint for iter_prompt method
The Generator thing is only useful if the method uses the send mechanism

Declaring it an Iterator gives people more flexibility for how they implement it.
2023-07-02 11:18:31 -07:00
Simon Willison
9a180e65a8 llm models default command, plus refactored env variables
Closes #76
Closes #31
2023-07-01 14:01:29 -07:00
Simon Willison
f3f38c0c02 Initial experimental response.reply() method 2023-07-01 13:29:54 -07:00
Simon Willison
664fca165b .stream is now in base Response class 2023-07-01 13:29:27 -07:00
Simon Willison
183b647351 Removed PaLM 2 vertex model
It lives here now: https://github.com/simonw/llm-palm

Refs #20
2023-07-01 13:27:59 -07:00
Simon Willison
9d914bf9cc Include cogapp in pip install -e '.[test]' 2023-07-01 11:56:50 -07:00
Simon Willison
feff460496 Fix for pydantic warning, refs #74 2023-07-01 11:56:35 -07:00
Simon Willison
9ac120fae4 Upgrade to pydantic 2 using bump-pydantic, refs #74 2023-07-01 11:53:54 -07:00
Simon Willison
d26ed84939 Don't include tests/ in the package 2023-07-01 11:45:00 -07:00
Simon Willison
0f266d6657 Fix for missing package bug 2023-07-01 11:36:58 -07:00
Simon Willison
7485e0646e Use pip install -e '.[test]' 2023-07-01 11:32:38 -07:00
Simon Willison
9afc758cd7 Pass model to the Response 2023-07-01 11:29:41 -07:00
Simon Willison
6ef52172b0 Fixed timezone related test failure 2023-07-01 11:14:25 -07:00
Simon Willison
4d304d99e1 Fixed import error in llm openai models 2023-07-01 11:12:06 -07:00
Simon Willison
1b3f14fe89 Move default plugins into llm/default_plugins 2023-07-01 11:10:30 -07:00