mirror of
https://github.com/babichjacob/ac-qu-ai-nt.git
synced 2025-10-01 16:37:53 -04:00
docs: explain the project breakdown and issue and pull request mechanics
This commit is contained in:
48
README.md
48
README.md
@@ -5,6 +5,7 @@ This is a placeholder while I take small steps to build out the project.
|
|||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
## Automatically Updatable
|
## Automatically Updatable
|
||||||
|
|
||||||
You won't find it very useful yet, because it doesn't really do much of anything, but you can install the multibinary with [Binstall](https://github.com/cargo-bins/cargo-binstall). This means you don't need to have the same development environment (which will require the Vulkan SDK and CUDA Toolkit in the future) in order to use the program, because you'll just download a precompiled executable.
|
You won't find it very useful yet, because it doesn't really do much of anything, but you can install the multibinary with [Binstall](https://github.com/cargo-bins/cargo-binstall). This means you don't need to have the same development environment (which will require the Vulkan SDK and CUDA Toolkit in the future) in order to use the program, because you'll just download a precompiled executable.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -12,28 +13,35 @@ cargo-binstall -y ac-qu-ai-nt
|
|||||||
```
|
```
|
||||||
|
|
||||||
Install [`cargo-update`](https://github.com/nabijaczleweli/cargo-update) and periodically run
|
Install [`cargo-update`](https://github.com/nabijaczleweli/cargo-update) and periodically run
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cargo install-update --all
|
cargo install-update --all
|
||||||
```
|
```
|
||||||
|
|
||||||
in order to keep this program up to date.
|
in order to keep this program up to date.
|
||||||
|
|
||||||
I'm not sure if you need a Rust compiler installed for either or if they can work standalone.
|
I'm not sure if you need a Rust compiler installed for either or if they can work standalone.
|
||||||
|
|
||||||
## Just the Executable
|
## Just the Executable
|
||||||
|
|
||||||
Head to [the Releases page](https://github.com/babichjacob/ac-qu-ai-nt/releases) and download the asset corresponding to your computer architecture and operating system.
|
Head to [the Releases page](https://github.com/babichjacob/ac-qu-ai-nt/releases) and download the asset corresponding to your computer architecture and operating system.
|
||||||
|
|
||||||
Decompress the archive and place the executable contained within it somewhere useful to you (e.g. in a directory in [your `PATH` variable](https://superuser.com/a/284351)).
|
Decompress the archive and place the executable contained within it somewhere useful to you (e.g. in a directory in [your `PATH` variable](https://superuser.com/a/284351)).
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
If it's your preference, you should be able to double click the executable in the folder to be able to run it (defaulting to launching a graphical interface (once I actually make one lol)).
|
If it's your preference, you should be able to double click the executable in the folder to be able to run it (defaulting to launching a graphical interface (once I actually make one lol)).
|
||||||
|
|
||||||
You could also type
|
You could also type
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
ac-qu-ai-nt
|
ac-qu-ai-nt
|
||||||
```
|
```
|
||||||
|
|
||||||
on the command line to run it. This is also a way to launch a GUI (once there actually is one) for the application.
|
on the command line to run it. This is also a way to launch a GUI (once there actually is one) for the application.
|
||||||
|
|
||||||
## Command Line Interface
|
## Command Line Interface
|
||||||
|
|
||||||
It's going to be a goal of this project for there to be feature parity between the GUI, CLI, and TUI.
|
It's going to be a goal of this project for there to be feature parity between the GUI, CLI, and TUI.
|
||||||
|
|
||||||
If you want to use its command line interface, start with
|
If you want to use its command line interface, start with
|
||||||
@@ -41,13 +49,22 @@ If you want to use its command line interface, start with
|
|||||||
```sh
|
```sh
|
||||||
ac-qu-ai-nt cli
|
ac-qu-ai-nt cli
|
||||||
```
|
```
|
||||||
|
|
||||||
to see what capabilities are available.
|
to see what capabilities are available.
|
||||||
|
|
||||||
(This is an alias for `ac-qu-ai-nt cli-clap` to allow the possibility of experimenting with different implementations of the same type of interface.)
|
(This is an alias for `ac-qu-ai-nt cli-clap` to allow the possibility of experimenting with different implementations of the same type of interface.)
|
||||||
|
|
||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
This is a summary of the crates I expect to be in this project and how they are used:
|
## Issues and Pull Requests
|
||||||
|
|
||||||
|
Please create an issue before working on a pull request. It's helpful for you to know if the idea you have in mind will for sure be incorporated into the project, and won't require you to _acquaint_ yourself with the project internals. It even opens the floor for someone else to do the work implementing it for you.
|
||||||
|
|
||||||
|
Some [existing issues are labeled `straightforward`](https://github.com/babichjacob/ac-qu-ai-nt/issues?q=is%3Aissue+is%3Aopen+label%3Astraightforward) and expected to be the easiest to work on, if you'd like to try.
|
||||||
|
|
||||||
|
## Project Breakdown
|
||||||
|
|
||||||
|
This is a summary of the crates in this project and how they are used:
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
flowchart TD
|
flowchart TD
|
||||||
@@ -59,6 +76,28 @@ gui-eframe --> multibinary
|
|||||||
tui-ratatui --> multibinary
|
tui-ratatui --> multibinary
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### `core`
|
||||||
|
|
||||||
|
The core of the project, where code for large language model and embedding model inference using [`llama-cpp-2`](https://crates.io/crates/llama-cpp-2) will be (because it's not started yet at the time of writing), where ingesting data will be done, and where public APIs that the other crates (`cli-clap`, `gui-eframe`, and `tui-ratatui`) use will be.
|
||||||
|
|
||||||
|
Each of the interface crates are expected to have feature parity (as in capability, not as in a Cargo feature) where possible, but we'll see how that goes.
|
||||||
|
|
||||||
|
### `cli-clap`
|
||||||
|
|
||||||
|
A command line interface (CLI) for the project written with [`clap`](https://crates.io/crates/clap).
|
||||||
|
|
||||||
|
### `gui-eframe`
|
||||||
|
|
||||||
|
A graphical user interface (GUI) for the project written with [`eframe`](https://crates.io/crates/eframe) for [`egui`](https://crates.io/crates/egui).
|
||||||
|
|
||||||
|
As of right now, it isn't started yet.
|
||||||
|
|
||||||
|
### `tui-ratatui`
|
||||||
|
|
||||||
|
A terminal user interface (TUI) for the project written with [`ratatui`](https://crates.io/crates/ratatui).
|
||||||
|
|
||||||
|
As of right now, it isn't started yet.
|
||||||
|
|
||||||
## Versioning
|
## Versioning
|
||||||
|
|
||||||
This project aims to adhere to [semantic versioning](https://semver.org/) using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary), conducted by [Release-plz](https://release-plz.ieni.dev/).
|
This project aims to adhere to [semantic versioning](https://semver.org/) using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary), conducted by [Release-plz](https://release-plz.ieni.dev/).
|
||||||
@@ -74,8 +113,9 @@ All the crates in this project have a [minimum supported Rust version (MSRV)](ht
|
|||||||
## License
|
## License
|
||||||
|
|
||||||
All contents of this repository are licensed under either the
|
All contents of this repository are licensed under either the
|
||||||
* [MIT license](LICENSE-MIT), or
|
|
||||||
* [Apache 2.0 license](LICENSE-APACHE), or
|
- [MIT license](LICENSE-MIT), or
|
||||||
* [Unlicense](LICENSE-UNLICENSE)
|
- [Apache 2.0 license](LICENSE-APACHE), or
|
||||||
|
- [Unlicense](LICENSE-UNLICENSE)
|
||||||
|
|
||||||
at your option.
|
at your option.
|
||||||
|
Reference in New Issue
Block a user