Matt Low
1184f9aaae
Changed how conversations are grouped by age in `lmcli ls`
2024-01-03 17:26:09 +00:00
Matt Low
a25d0d95e8
Don't export some additional functions, rename slightly
2024-01-03 17:24:52 +00:00
Matt Low
becaa5c7c0
Redo flag descriptions
2024-01-03 05:50:16 +00:00
Matt Low
239ded18f3
Add edit command
...
Various refactoring:
- reduced repetition with conversation message handling
- made some functions internal
2024-01-02 04:31:21 +00:00
Matt Low
59e78669c8
Fix CreateChatCompletion
...
Don't double-append toolReplies
2023-12-06 05:51:14 +00:00
Matt Low
1966ec881b
Make `lmcli rm` allow removing multiple conversations
2023-12-06 05:51:14 +00:00
Matt Low
f6ded3e20e
Update README
2023-11-29 15:38:48 +00:00
Matt Low
1e8ff60c54
Add `lmcli rename` to rename conversations
2023-11-29 15:33:25 +00:00
Matt Low
af2fccd4ee
Fix README errors
2023-11-29 15:33:25 +00:00
Matt Low
f206334e72
Use MessageRole constants elsewhere
2023-11-29 05:57:38 +00:00
Matt Low
5615051637
Improve config handling
...
- Backup existing config if we're saving it to add configuration
defaults
- Output messages when saving/backing up the configuration file
2023-11-29 05:54:05 +00:00
Matt Low
c46500de4e
Update README.md features
2023-11-29 05:45:03 +00:00
Matt Low
d5dde10dbf
Add tools section to README.md
2023-11-29 05:39:37 +00:00
Matt Low
d32e9421fe
Add openai.enabledTools config key
...
By default none are, they must be explicitly enabled by the user adding
the configuration.
2023-11-29 05:27:58 +00:00
Matt Low
e29dbaf2a3
Code deduplication
2023-11-29 05:15:32 +00:00
Matt Low
c64bc370f4
Don't include system message when generating conversation title
2023-11-29 04:51:38 +00:00
Matt Low
4f37ed046b
Delete 'retried' messages in `lmcli retry`
2023-11-29 04:50:45 +00:00
Matt Low
ed6ee9bea9
Add *Message[] parameter to CreateChatCompletion methods
...
Allows replies (tool calls, user-facing messges) to be added in sequence
as CreateChatCompleion* recurses into itself.
Cleaned up cmd.go: no longer need to create a Message based on the
string content response.
2023-11-29 04:43:53 +00:00
Matt Low
e850c340b7
Add initial support for tool/function calling
...
Adds the following tools:
- read_dir - list a directory's contents
- read_file - read the content of a file
- write_file - write contents to a file
- insert_file_lines - insert lines in a file
- replace_file_lines - replace or remove lines in a file
2023-11-27 05:26:20 +00:00
Matt Low
1e63c09907
Update prompt used to generate conversation title
2023-11-27 05:21:41 +00:00
Matt Low
2f3d95356a
Be explicit with openai response choices limit (`n` parameter)
2023-11-25 13:39:52 -07:00
Matt Low
137c568129
Minor cleanup
2023-11-25 01:26:37 +00:00
Matt Low
c02b21ca37
Refactor the last refactor :)
...
Removed HandlePartialResponse, add LLMRequest which handles all common
logic of making LLM requests and returning/showing their response.
2023-11-24 15:17:24 +00:00
Matt Low
6249fbc8f8
Refactor streamed response handling
...
Update CreateChangeCompletionStream to return the entire response upon
stream completion. Renamed HandleDelayedResponse to
HandleDelayedContent, which no longer returns the content.
Removes the need wrapping HandleDelayedContent in an immediately invoked
function and the passing of the completed response over a channel. Also
allows us to better handle the case of partial a response.
2023-11-24 03:45:43 +00:00
Matt Low
303c4193cb
Update README.md
...
Clarify planned features, we wouldn't want the model to have free access
to read any file in the system.
2023-11-23 17:44:57 +00:00
Matt Low
a2bd911ac8
Add `retry` and `continue` commands
2023-11-22 06:53:22 +00:00
Matt Low
cb9e27542e
Add --system-prompt and --system-prompt-file flags
...
These allow to set a different system prompt for conversations and
one-shot prompts.
Also add a new `modelDefaults.systemPrompt` configuration key to define
the default system prompt, which can be overriden per-execution with the
--system-prompt or --system-prompt-file flags.
2023-11-22 04:45:06 +00:00
Matt Low
db27a22347
Removed 'get' prefix from DataDir() and ConfigDir()
2023-11-22 03:17:13 +00:00
Matt Low
c8a1e3e105
Allow message input from either args or editor on all relevant commands
...
Those (sub-)commands being: `new`, `reply`, and `prompt`
2023-11-20 16:50:56 +00:00
Matt Low
b5f066ff34
Increase max token length for conversation title generation
2023-11-20 03:48:32 +00:00
Matt Low
e6dcefacf5
Add syntax highlighting
2023-11-19 05:00:59 +00:00
Matt Low
815cb0c4b8
Bump dependencies
2023-11-19 04:56:40 +00:00
Matt Low
8780856854
Set config defaults using a "default" struct tag
...
Add new SetStructDefaults function to handle the "defaults" struct tag.
Only works on struct fields which are pointers (in order to be able to
distinguish between not set (nil) and zero values). So, the Config
struct has been updated to use pointer fields and we now need to
dereference those pointers to use them.
2023-11-19 04:37:14 +00:00
Matt Low
6426b04e2c
Add RenderConversation to split out common message rendering logic
2023-11-18 16:17:13 +00:00
Matt Low
965043c908
Add --model flag to control which language model to use
2023-11-18 16:17:13 +00:00
Matt Low
8bc8312154
Add --length flag to control model output "maxTokens"
2023-11-18 16:17:13 +00:00
Matt Low
681b52a55c
Handle empty reply
2023-11-18 16:17:13 +00:00
Matt Low
22e0ff4115
Alter format and add colouring to user/role message headings
2023-11-18 16:16:46 +00:00
Matt Low
cac2a1e80c
Removed blank line
2023-11-14 17:04:44 +00:00
Matt Low
6599af042b
Minor refactor
...
- Use init() function to set up commands
- Expose an Execute() function instead of the root command
2023-11-14 17:04:12 +00:00
Matt Low
dd5f166767
Update README.md
2023-11-14 05:50:41 +00:00
Matt Low
90d85e676d
Implement `lmcli reply`
2023-11-14 02:09:09 +00:00
Matt Low
ec013236b8
Small cleanup/fix
2023-11-14 02:08:20 +00:00
Matt Low
6fde3f8932
Add "last 6 hours" to `lmcli ls` categories
2023-11-13 06:56:14 +00:00
Matt Low
6af9377cf5
Implement `lmcli rm`
2023-11-13 06:56:05 +00:00
Matt Low
cf0e98f656
Generate titles for new conversations
2023-11-13 06:39:06 +00:00
Matt Low
e66016aedd
Sort conversations properly in `lmcli ls`
2023-11-13 06:35:57 +00:00
Matt Low
9a1aae83da
Update go.mod to go 1.21
2023-11-13 06:33:47 +00:00
Matt Low
b0e4739f4f
Fixed `lmcli view` completions
...
- Don't return completions if an arg is already present
- Fixed typo in method name
2023-11-13 05:27:21 +00:00
Matt Low
4e3976fc73
Remove Get prefix from Store methods
...
It feels better this way (and to the rest of Go, apparently)
2023-11-13 00:20:54 +00:00