diff --git a/Cargo.lock b/Cargo.lock index a328fead..4ac88774 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,7 +40,7 @@ dependencies = [ [[package]] name = "aichat" -version = "0.19.0" +version = "0.20.0" dependencies = [ "ansi_colours", "anyhow", @@ -377,9 +377,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.16.1" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" +checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83" [[package]] name = "byteorder" @@ -389,9 +389,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "fca2be1d5c43812bae364ee3f30b3afcb7877cf59f4aeb94c66f313a41d2fac9" [[package]] name = "bytes-utils" @@ -438,9 +438,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -448,9 +448,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -460,9 +460,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1254,9 +1254,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown", diff --git a/Cargo.toml b/Cargo.toml index 073a98f7..82089da8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "aichat" -version = "0.19.0" +version = "0.20.0" edition = "2021" authors = ["sigoden "] description = "All-in-one AI CLI Tool" diff --git a/README.md b/README.md index 6dc518f2..13beb2a7 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Crates](https://img.shields.io/crates/v/aichat.svg)](https://crates.io/crates/aichat) [![Discord](https://img.shields.io/discord/1226737085453701222?label=Discord)](https://discord.gg/mr3ZZUB9hG) -AIChat is an all-in-one AI CLI tool featuring Chat-REPL, Shell Assistant, RAG, Function Calling, AI Agents, and More. +AIChat is an all-in-one AI CLI tool featuring Chat-REPL, Shell Assistant, RAG, AI Tools & Agents, and More. ## Install @@ -32,9 +32,9 @@ The [config.example.yaml](https://github.com/sigoden/aichat/blob/main/config.exa ## Features -### 20+ Platforms +### Multi-Platform Support -AIChat offers users a wide and diverse selection of Large Language Models (LLMs): +Effortlessly connect with over 20 leading LLM platforms through a unified interface: - **OpenAI:** GPT-4/GPT-3.5 (paid, chat, embedding, vision, function-calling) - **Gemini:** Gemini-1.5/Gemini-1.0 (free, paid, chat, embedding, vision, function-calling) @@ -60,30 +60,47 @@ AIChat offers users a wide and diverse selection of Large Language Models (LLMs) - **VoyageAI:** (paid, embedding, reranker) - **OpenAI-Compatible Platforms** +### CMD & REPL Modes + +AIChat supports both CMD and REPL modes to meet the needs and tastes of different users. + +| CMD | REPL | +| --------------------------- | ---------------------- | +| `-m, --model ` | `.model ` | +| `-r, --role ` | `.role ` | +| ` --prompt ` | `.prompt ` | +| `-s, --session []` | `.session []` | +| `-a, --agent ` | `.agent ` | +| `-R, --rag ` | `.rag ` | +| `-f, --file ` | `.file ` | +| ` --info` | `.info` | + +![aichat-cmd-mode](https://github.com/user-attachments/assets/a1e34430-67e7-46f2-a235-1069392d8b71) +![aichat-repl-mode](https://github.com/user-attachments/assets/310e4bf2-f656-43d7-af51-a7afe41098f3) + ### Shell Assistant -Simply input what you want to do in natural language, and aichat will prompt and run the command that achieves your intent. +Supercharge your command line experience. Simply describe your desired actions in natural language, and let AIChat translate your requests into precise shell commands. ![aichat-execute](https://github.com/sigoden/aichat/assets/4012553/f99bcd8f-26be-468f-a35e-197e65260f91) -**AIChat is aware of OS and shell you are using, it will provide shell command for specific system you have.** +**OS-Aware Intelligence:** AIChat tailors commands to your specific operating system and shell environment. -### Role +### Custom Roles -Customizable roles allow users to tailor the behavior of LLMs, enhancing productivity and ensuring the tool aligns with specific needs and workflows. +Define custom roles to tailor LLM behaviors, enhancing interactions and boosting productivity. ![aichat-role](https://github.com/sigoden/aichat/assets/4012553/76004a01-3b29-4116-bbab-40b4978388f5) -### Session +### Session Management -By default, AIChat behaves in a one-off request/response manner. -With sessions, AIChat conducts context-aware conversations. +Maintain context-aware conversations through sessions, ensuring continuity in interactions. ![aichat-session](https://github.com/sigoden/aichat/assets/4012553/1444c5c9-ea67-4ad2-80df-a76954e8cce0) ### RAG -Seamlessly integrates document interactions into your chat experience. +Integrate external documents into your AI conversations for more accurate and contextually relevant responses. ![aichat-rag](https://github.com/user-attachments/assets/81b81409-460a-4aec-9e08-a3c3da5492d0) @@ -95,15 +112,15 @@ We have created a new repository [https://github.com/sigoden/llm-functions](http #### Tools -Here's a glimpse of How to use the tools. +Integrate external tools to automate tasks, retrieve information, and perform actions directly within your workflow. ![aichat-tool](https://github.com/user-attachments/assets/7459a111-7258-4ef0-a2dd-624d0f1b4f92) #### Agents -Agent = Prompt (Role) + Tools (Function Callings) + Knowndge (RAG). It's also known as OpenAI's GPTs. +While tools excel at specific tasks, agents offer a more sophisticated approach to problem-solving and user interaction. -Here's a glimpse of how to use the agents. +Agent = Prompt (Role) + Tools (Function Callings) + Knowndge (RAG). It's also known as OpenAI's GPTs. ![aichat-agent](https://github.com/user-attachments/assets/0b7e687d-e642-4e8a-b1c1-d2d9b2da2b6b) @@ -151,7 +168,7 @@ AIChat supports custom dark and light themes, which highlight response text and ![aichat-themes](https://github.com/sigoden/aichat/assets/4012553/29fa8b79-031e-405d-9caa-70d24fa0acf8) -## Wikis +## Documentation - [Configuration Guide](https://github.com/sigoden/aichat/wiki/Configuration-Guide) - [Command-Line Guide](https://github.com/sigoden/aichat/wiki/Command-Line-Guide)