Skip to content

Releases: sigoden/aichat

v0.27.0

28 Jan 01:39
843e66f
Compare
Choose a tag to compare
chore: release v0.27.0 (#1096)

v0.27.0-rc2

22 Jan 14:27
Compare
Choose a tag to compare
v0.27.0-rc2 Pre-release
Pre-release

REPL Changes

.file %%                                  # Include last reply with `%%`
.file `git diff`                          # Include command execution with `<cmd>`
.macro <macro> [arg]...                   # Execute macro
.edit config                              # Modify configuration file
.edit agent-config                        # Modify agent configuration file
.agent <agent> <variable:key=value>...    # Accept agent variables

New CLI Options

  --rebuild-rag                    Rebuild the RAG to sync document changes
  --macro <MACRO>                  Execute a macro
  --list-macros                    List all macros
  --sync-models                    Sync models updates

New Providers

  • minimax
  • hyperbolic

New Features

  • add cli option --rebuild-rag (#1074)
  • .file supports external command execution (#1075)
  • .file supports including last reply with %% (#1079)
  • discontinue rag_min_score_* config items (#1081)
  • support default terminal editor (#1082)
  • no longer support .set agent_prelude <value> (#1086)
  • support macro (#1087)
  • .agent accept variable key-value pairs (#1090)
  • support minimax client (#1091)
  • no longer support .variable repl command (#1092)
  • .starter accepts index other than text (#1093)
  • add a default base_url to ollama (#1102)
  • support .edit config and .edit agent-config repl commands (#1103)
  • add --sync-models cli option (#1114)
  • support hyperbolic client (#1115)

Full Changelog: v0.26.0...v0.27.0-rc2

v0.26.0

30 Dec 10:57
1a07be7
Compare
Choose a tag to compare

New Features

  • supports override agent instructions via agent config (#1057)
  • support gemini-2.0-flash-thinking-exp (#1067)

Bug Fixes

  • invalid schema that array schema missing items (#1049)
  • .file path args do not need double backslash on Windows (#1053)
  • agent variables don't initialized if start session with last message (#1054)
  • don't trim the input text (#1056)

Full Changelog: v0.25.0...v0.26.0

v0.25.0

10 Dec 04:45
2e7ff29
Compare
Choose a tag to compare

New Features

  • handle Ctrl+C during every spinner in REPL (#1014)
  • support all proxy env vars including NO_PROXY (#1015)
  • agent supports dynamic instructions (#1023)
  • append shell execute command to history file (#1026)
  • add cli option --agent-variable <name> <value> (#1027)
  • --file/.file accept file formats in document_loaders (#1033)
  • webui playground support multiple sessions in memory (#1035)
  • webui supports math in markdown (#1039)
  • update cohere api to v2 (#1041)

Bug Fixes

  • stream function calling for some openai-compatible clients (#1017)

Full Changelog: v0.24.0...v0.25.0

v0.24.0

25 Nov 09:39
6f60ad4
Compare
Choose a tag to compare

REPL Changing

- .save agent-config       Save the current agent config to file
+ .edit rag-docs           Edit the RAG documents

New Features

  • .info role/.exit role works for session role (#958)
  • support .edit rag-docs (#964)
  • change agent config/variables (#967)
  • support session-scoped agent variables (#969)
  • .agent accepts session name (#970)
  • add config user_agent (#971)
  • support overriding agent config with env vars (#974)
  • add hunyuan client (#980)
  • remove supports for huggingface (#988)
  • support env <AGENT_NAME>_CONFIG_FILE (#990)
  • save function calls in the session (#994)
  • support autonaming session (#1001)

Bug Fixes

  • unexpected Ctrl-C/Ctrl-D handling in non-stream REPL Chat (#957)
  • WebUI unsupported value error when invoking o1-* models (#983)
  • invalid request on qianwen multi tool-calls (#993)

v0.23.0

24 Oct 08:52
b05d14a
Compare
Choose a tag to compare

Break Changing

Respect XDG_CONFIG_HOME for placing config dir

Drop replicate client and remove support for octoai

REPL Changing

- .clear messages          Erase messages in the current session
+ .empty session           Erase messages in the current session
+ .compress session        Compress messages in the current session

CLI Changing

+ --empty-session          Ensure the session is empty

New Features

  • add batch_size to RAG yaml (#876)
  • add retry logic to embedding/rerank api calls (#879)
  • add AICHAT_EMBEDDINGS_RETRY_LIMIT (#882)
  • respect XDG_CONFIG_HOME for placing config dir (#889)
  • change prompt for choosing shell command actions (#898)
  • abandon replicate client (#900)
  • remove support for octoai (#901)
  • when saving input to message.md, use file paths instead of file contents (#905)
  • add .compress session REPL command (#907)
  • prelude supports : (#913)
  • session persists role name (#914)
  • webui supports pasting images (#921)
  • add CLI option --empty-session (#922)
  • rename .clear messages to .empty session (#923)
  • add shell action copy (#926)
  • support openai o1 models (#935)
  • support xai (grok) client (#945)

Bug Fixes

  • allow reading from special files (device, fifo, etc) (#886)
  • unexpected REPL without tty (#911)
  • prelude works only if the state is empty (#920)
  • unexpected error while piping to shell execution on macOS (#930)

v0.22.0

18 Sep 00:21
029058c
Compare
Choose a tag to compare

RAG Changes

Store RAG in YAML format instead of bin format

We used to store RAG in bin format at <aichat-config-dir>/rags/<name>.bin. However, the bin format has various drawbacks, so we are now using the yaml format to store RAG.

All RAGs in bin format will be ignored. Please recreate them in YAML format.

Support for RAG-scoped top_k and reranker_model options

Now, users can set the top_k and reranker_model parameters individually for each RAG.

.set rag_top_k 5
.set rag_reranker_model cohere:rerank-english-v3.0

New REPL Commands

.delete                  Delete roles/sessions/RAGs/agents
.save agent-config       Save the current agent config to file
.sources rag             View the RAG sources in the last query

New Features

  • add config serve_addr & env $SERVE_ADDR for specifying serve addr (#839)
  • better html to markdown converter (#840)
  • add role %create-prompt% (#843)
  • tolerate failure to load some rag files (#846)
  • support RAG-scoped rag_top_k and rag_reranker_model (#847)
  • save rag in YAML instead of bin (#848)
  • chat-completions api supports tools (#850)
  • support rerank api (#851)
  • abandon config rag_min_score_rerank (#852)
  • add .delete repl command (#862)
  • no delete the existing role/session when saving with a new name (#863)
  • specify shell via $AICHAT_SHELL (#866)
  • role/session/agent should not inherit the global use_tools (#868)
  • add .save agent-config repl command (#870)
  • add .sources rag repl command (#871)

Bug Fixes

  • render stream failed due to read cursor position timeout (#835)

v0.21.1

04 Sep 00:03
Compare
Choose a tag to compare

What's Changed

  • fix: : cannot be used as seperator for role arguments #830
  • feat: add siliconflow client #831

Break Changing in v0.21.0

Replace roles.yaml with roles/<name>.md (see #804)

Migrate ollama/qianwen/cloudflare clients to openai-compatible

clients:

-  - type: ollama
-    api_base: http://localhost:11434
+  - type: openai-compatible
+    name: ollama
+    api_base: http://localhost:11434/v1

-  - type: qianwen
+  - type: openai-compatible
+    name: qianwen

-  - type: cloudflare
-    account_id: xxx
-    api_base: https://api.cloudflare.com/client/v4
+  - type: openai-compatible
+    name: cloudflare
+    api_base: https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/v1

v0.21.0

03 Sep 09:04
d57f114
Compare
Choose a tag to compare

Break Changing

Replace roles.yaml with roles/<name>.md (see #804)

Migrate ollama/qianwen/cloudflare clients to openai-compatible

clients:

-  - type: ollama
-    api_base: http://localhost:11434
+  - type: openai-compatible
+    name: ollama
+    api_base: http://localhost:11434/v1

-  - type: qianwen
+  - type: openai-compatible
+    name: qianwen

-  - type: cloudflare
-    account_id: xxx
-    api_base: https://api.cloudflare.com/client/v4
+  - type: openai-compatible
+    name: cloudflare
+    api_base: https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/v1

Clients Changes

  • migrate ollama to openai-compatible
  • migrate qianwen to openai-compatible
  • migrate cloudflare to openai-compatible
  • add github
  • add ai21
  • add huggingface

New Features

  • support builtin website crawling (recursive_url) (#786)
  • no check model's support for function calls (#791)
  • enable custom api_base for most clients (#793)
  • support github client (#798)
  • support ai21 client (#800)
  • replace roles.yaml with roles/<name>.md (#810)
  • save temp session with temp-<timestamp> if save_session: true (#811)
  • webui use querystring as settings (#814)
  • webui support RAG (#815)
  • migrate ollama/qianwen clients to openai-compatible (#816)
  • migrate cloudflare client to openai-compatible (#821)
  • add huggingface client (#822)
  • use dynamic batch size for embedding (#826)

Bug Fixes

  • incorrect function call handling with session in non-REPL (#777)
  • claude fails to run tools with zero arguments (#780)
  • invalid model error while switching roles if the model_id is same to current (#788)
  • incomplete stream response in proxy LLM api (#796)

v0.20.0

02 Aug 10:03
514a368
Compare
Choose a tag to compare

Patch Client API

AIChat supports patching API request url, headers and body.

For example, we can patch claude:claude-3-5-sonnet-20240620 to use beta 8192 output tokens.

clients:
  - type: claude
    ...
    patch:                                # Patch api request
      chat_completions:                   # Api type, one of chat_completions, embeddings, and rerank
        'claude-3-5-sonnet-20240620':     # The regex to match model names, e.g. '.*' 'gpt-4o' 'gpt-4o|gpt-4-.*'
          headers:
            anthropic-beta: max-tokens-3-5-sonnet-2024-07-15
          body:
            max_tokens: 8192

More flexible using tools

AIChat introduces the use_tools configuration to manage which tools are included. This configuration works across global, role, session, and agent levels.
AIChat also introduces mapping_tools for managing aliases for a tool or toolset.

mapping_tools:
  fs: 'fs_cat,fs_ls,fs_mkdir,fs_rm,fs_write'
use_tools: 'execute_command,fs'

Configuration Changes

- buffer_editor: null
+ editor: null

- dangerously_functions_filter: null
- agents:
-   - name: todo
-     ...

The tool determines whether the operation is dangerous and whether to ask for confirmation, the dangerously_functions_filter is unnecessary.

Each AI agent has its own config.yaml file, there is no need for a central agents configuration.

Enviroment Variables Changes

  • AIChat supports env file (<aichat-config-dir>/.env) for managing environment variables.

  • All config items have related environment variables to override their values.

    For example, we can use AICHAT_MODEL to override the default LLM and AICHAT_LIGHT_THEME to switch to light theme.

  • AIChat Supports env AICHAT_PATCH_{client}_CHAT_COMPLETIONS for patching chat completions api request url, headers and body.

    For example, set AICHAT_PATCH_OPENAI_CHAT_COMPLETIONS='{"gpt-4o":{"body":{"seed":666,"temperature":0}}}' to make gpt-4o more deterministic.

Client Changes

  • vertexai client supports cluade/mistral models, vertexai-claude client was abandoned.
  • bedrock client switch to converse api, supports llama3.1/mistral-large-v2/cohere.command-r models.
  • rag-dedicated client was abandoned, use openai-compatible client instead.

CLI Changes

-  -w, --wrap <WRAP>          Control text wrapping (no, auto, <max-width>)
-  -H, --no-highlight         Turn off syntax highlighting
-      --light-theme          Use light theme

Use environment variables AICHAT_WRAP, AICHAT_HIGHLIGHT and AICHAT_LIGHT_THEME instead.

New REPL Commands

.variable <name> <value>
.set stream false
.set use_tools <tools>

New Features

  • load env vars from file (#685)
  • enhenced flexibility for use tools (#688)
  • agent can reuse tools (#690)
  • support agent variables (#692)
  • --file/.file can load dirs (#693)
  • adjust the way of obtaining function call results (#695)
  • webui supports text to speech for messages (#712)
  • enhance logger (#731)
  • move agent config to separate file (#741)
  • webui add autofocus to chat-input in textarea (#742)
  • merge vertexai-cluade with vertexai (#745)
  • vertexai support mistral models (#746)
  • ollama support tools and new embeddings api (#748)
  • all config fields have related environment variables (#751)
  • bedrock client switch to converse api and support cohere models (#747)
  • support patching request url, headers and body (#756)
  • abandon rag_dedicated client and improve (#757)
  • abandon cli options --wrap, --no-highlight and --light-theme (#758)
  • add config.stream and .set stream repl command (#759)
  • export agent variable as LLM_AGENT_VAR_* (#766)
  • add agent-scoped agent_prelude config (#770)
  • rename config.buffer_editor to config.editor (#773)

Bug Fixes

  • .starter tab completion (#709)
  • webui input-panel exceeds viewpoint on mobile (#714)
  • problem with input token limit (#737)
  • invalid tool_calls of qianwen client (#740)
  • unable to rebuild agent rag (#763)