Commit Graph

436 Commits (main)

Author SHA1 Message Date
sigoden 0ed0ad1fd2 chore: optimize readline multiline 1 year ago
sigoden 4aab872ee1
feat: add support for NO_COLOR (#67) 1 year ago
sigoden cfb6ce6958
feat: support light theme (#65)
There are two ways to enable the light theme:
- add `light_theme: true` to config.yaml
- use `AICHAT_LIGHT_THEME=true` env var
1 year ago
sigoden dc09cb38d4
feat: support more env vars (#63)
- AICHAT_CONFIG_DIR: sepecify the configuration directory
- AICHAT_ROLES_FILE: set the `roles.yaml` file path
- AICHAT_API_KEY: set the api key
1 year ago
sigoden d48cd64162
feat: provide `--prompt` for adding a prompt from cli (#62) 1 year ago
sigoden cc626e73df chore: update `.help` output text 1 year ago
sigoden 1dc16e6709
feat: type `{` `[` `(` to enter multi-line editing mode (#58)
Abandon `.editor` command, it's too complicated.
1 year ago
sigoden 54e6edbf21 chore: recovery cursor in case of stream abort 1 year ago
sigoden 865fb49af9 chore: improve code quality, omit head 2 newlines in handler but in not client 1 year ago
sigoden 978d4c54c0 chore: opitmize code, move MAX_TOKENS related to config/message.rs 1 year ago
sigoden 899c4af9ea fix: forbid .clear role in middle of conversation 1 year ago
sigoden ff00426c2c chore: improve code quality, split rep/prompt.rs from repl/init.rs 1 year ago
sigoden 4161eaa6c3
fix: cli specify role is not applied when conversation_first set true (#57)
close #56
1 year ago
sigoden 0044399509
feat: add config.conversation_first (#55)
If set true, start a conversation immediately upon repl.
1 year ago
sigoden ad282ae74c refactor: no need to confirm conversation when token used out 1 year ago
sigoden 89eaf1b653 fix: csharp and php do not render correctly 1 year ago
sigoden 553d0fe55b
refactor: optimize counting tokens (#53) 1 year ago
sigoden 9767c07eee
feat: support two types of role prompts (#52)
1. embeded prompt

use __INPUT__ placeholder
will generate one user message when send to gpt
```
- name: shell
  prompt: >
    I want you to act as a linux shell expert.
    Q: How to unzip a file
    A: unzip file.zip
    Q: __INPUT__
    A:
```

2. system prompt
no __INPUT__ placeholder
will generate on system message and one user message when send to gpt
```
- name: shell
  prompt: |
    I want you to act as a linux shell expert.
    I want you to answer only with bash code.
    Do not write explanations.
```
1 year ago
sigoden c45d71cdea refactor: trivial updates
- change prompt's temp role name
- questionnaire of 'save chat messages' default set true
- `.info` do not show role name
1 year ago
sigoden 05d20f207f
feat: add remain tokens indicator and max tokens guard (#50) 1 year ago
sigoden c7eb261abc
fix: abort by ctrlc unexpectedly prints error message (#49) 1 year ago
sigoden a62e461e38
feat: support conversation (#48) 1 year ago
sigoden a7f2da156c
feat: add role info to readline indicator (#47)
```
coder〉
```
1 year ago
sigoden e78b5f7c58 refactor: imports order and group 1 year ago
sigoden 1ec451da89
refactor: replace Arc<Refcell<Config>> with Arc<Mutex<Config>> (#46) 1 year ago
sigoden 00ba8b5108 refactor: extra spaces are allowed around repl command 1 year ago
sigoden 9d32837669
chore: optimize newline again (#43)
* chore: optimize newline again

command mode: should no extra newline
chat mode: should have one newline

* fix windows newline

* fix macos newline
1 year ago
sigoden 56483e04f0
feat: add role-specific config (#42)
Now we can set role temperature. For example:

```
- name: shell
  prompt: >
    I want you to act as a linux shell expert.
    I want you to answer only with bash code.
    Do not write explanations.
  temperature: 0.4
```
1 year ago
sigoden 2539e24fe9
chore: improve code by getting prompt from config (#39) 1 year ago
sigoden ee81275431
fix: windows no stream output (#37) 1 year ago
sigoden 2a7a6f5f27 chore: no longer ignore any error 1 year ago
sigoden 4e729db237 chore: optimize output newline 1 year ago
sigoden f694a59dcc
refactor: replace dump with print_now! (#35) 1 year ago
sigoden b7cb6f89f1
fix: repl set save true not work if not rerun(#34) 1 year ago
sigoden b05fce7bca
refactor: split long paragraphs for smoother stream output (#33) 1 year ago
sigoden ec1c4bcf8f
refactor: theme and code color (#32) 1 year ago
sigoden 360264121c
feat: command mode supports stream out (#31)
* feat: command mode supports stream out

* update cli
1 year ago
sigoden c7fcdb1744
refactor: adjust repl (#30)
- abandon .copy
- rename .multiple => .editor
- if command successed, do not output `Done`
- if command failed, output `Error: <error message>`
1 year ago
sigoden d73be65b07
refactor: support highlighting more languages (#28) 1 year ago
sigoden 11dc4d104b
refactor: optimize ctrl+c/ctrl+d abort handling (#27) 1 year ago
sigoden 1640456049
refactor: use syntect for highlight, abandon mdcat (#26)
* refactor: use syntect for highlight, abandon mdcat

* split src/render.rs to sub modules. embed a default theme

* simulate typing effect.

* fix format
1 year ago
sigoden c12ae02751 chore: improve code by renameing some function 1 year ago
sigoden 056f38428c
fix: $AI_CONFIG_DIR points to the parent directory (#25) 1 year ago
sigoden ffa444399f chore: release v0.4.0 1 year ago
sigoden f29ca57446 chore: optimize cli help 1 year ago
sigoden cfb46ca0de
feat: add `--no-highlight` option (#24) 1 year ago
sigoden 7def9aef01
fix: combine pipe and cli args, disable highlight when pipe (#23) 1 year ago
sigoden c5a2f4603c chore: optimize code 1 year ago
sigoden 2152667fc6
refactor: split src/repl.rs to submodules (#22) 1 year ago
sigoden d40913d739
feat: add `.prompt` command (#21)
* feat: add `.prompt` command

* set temp role name
1 year ago
sigoden 4b1d6c16b3
feat: add `.set` command (#20)
* feat: add `.set` command

* Add config.role
1 year ago
sigoden 957ea431c2
refactor: rename config.no_highlight to highlight (#19) 1 year ago
sigoden aadffb17a3
feat: repl command replaces `.editor` with `.multiline` (#18)
You can use `.multiline` command to put multiline content

```
〉.multiline {
::: abc
::: cdf
::: }
```
It's much easier than `.editor`.
1 year ago
sigoden 625f0343cb chore: refactor error encapsulation 1 year ago
sigoden 2ac0155fa3
feat: accept pipe (#17)
`cat data | aichat` works
1 year ago
sigoden d876818df1
refactor: optimize clear screen (#16) 1 year ago
sigoden 181fbe8163
refactor: adjusted command name (#14)
* refactor: adjusted command name

.clear => .clear screen
.clear-history => .clear history
.clear-role => .clear role

* re-order commands in help text
1 year ago
sigoden 598c31c3d9
refactor: optimize role prompt (#13) 1 year ago
sigoden 822f0eed94
refactor: message record format (#12)
```
i am excited

--------
😃💥🎉
--------
```
1 year ago
sigoden 7a60a36367
feat: add `.info` command (#11) 1 year ago
sigoden a055d4bee6
feat: add `.copy` command (#10) 1 year ago
sigoden 5179b9a827
feat: add `.editor` command (#9)
* feat: add `.editor` command

Use `.editor` to edit/input multiline text

* support paste
1 year ago
sigoden 069583098f
refactor: no need tui, just render stream directly (#8) 1 year ago
sigoden e594d1bd5f chore: fix typos 1 year ago
sigoden 71f1127f9a
fix: tui warp long paragraph (#6)
* chore: optimize stream render

* fix: tui textwrap long paragraph
1 year ago
sigoden b058cca46d
refactor: use tui for better stream render (#5)
* feat: show question in the begining of stream render

* refactor: use tui for better stream render

* trivial updates

* fine-tune stream text merging
1 year ago
sigoden dbdb2ed125
refactor: replace config.highlight with config.no_highlight (#4)
* refactor: replace config.highlight with config.no_highlight

* update readme
1 year ago
sigoden 0fa1ae215a
feat: support highlight reply markdown (#3)
* feat: support highlight reply markdown

* migrate markdown highlighter from termimad to mdcat

* optimize render

No need to clear screen when there is no newline in reply token

* handle ctrl-c when rendering stream

* update readme

* fix ctrlc don't abort acquire_stream when establish connection

* ensure render_stream's dtect_ctrlc is exit before next readline

This will make reedline don't throw err 'The cursor position could not be read within a normal duration'
1 year ago
sigoden 3ffebce8bb refactor: split into separate mods 1 year ago
sigoden 2e511c1327 chore: optimize config path 1 year ago
sigoden 17ee12a7f9 feat: support initial configuration items 1 year ago
sigoden 627a2d08ce refactor: config path and config data
use yaml other than toml for configuration.
use $AICHAT_CONFIG_DIR other than $HOME for config dir.
split roles to seperate config file
1 year ago
sigoden 9e8a5481cf feat: support save chat messages to file 1 year ago
sigoden b516080a66 chore: update readme 1 year ago
sigoden 7057b9db19 refactor: remove config::Role.first_sentense 1 year ago
sigoden 6178959454 feat: add .view command 1 year ago
sigoden 99c48a3c59 feat: enable connect timeout 1 year ago
sigoden 1099edcb1a refactor: optimize line sperator 1 year ago
sigoden 48ebf1895d feat: remove the first two newlines 1 year ago
sigoden 57844638ce feat: add config.temperature 1 year ago
sigoden f6e4e4889c refactor: optimize .role command 1 year ago
sigoden 97af9322e7 feat: support list roles with --list-roles 1 year ago
sigoden f66d33e324 feat: handle ctrl-c 1 year ago
sigoden a9128f7933 refactor: reorganize repl commands 1 year ago
sigoden a80399df36 feat: repl supports history 1 year ago
sigoden dfebab910d init commit 1 year ago