From a3bf7284002f1a30bef0271dcc5e508167a14f0d Mon Sep 17 00:00:00 2001 From: ian_Cin Date: Fri, 29 Mar 2024 19:47:03 +0700 Subject: [PATCH] Update various docs (#4) * rename cli tool * remove redundant docs * update docs * update macos instructions * add badges --- README.md | 168 ++++++------------ docs/contributing.md | 166 ----------------- docs/development/contributing.md | 72 ++++++++ docs/{ => development}/create-a-component.md | 0 docs/{ => development}/data-components.md | 0 docs/development/index.md | 1 + .../utilities.md} | 35 ++-- docs/images/chat-interface.png | Bin 0 -> 19292 bytes docs/images/chat-tab.png | Bin 0 -> 68271 bytes docs/images/converstaion-control.png | Bin 0 -> 8065 bytes docs/images/file-index-tab.png | Bin 0 -> 42895 bytes docs/images/file-index.png | Bin 0 -> 6147 bytes docs/images/file-list.png | Bin 0 -> 22597 bytes docs/images/file-upload.png | Bin 0 -> 17311 bytes docs/images/info-panel.png | Bin 0 -> 10117 bytes docs/images/startup-chat-tab.png | Bin 0 -> 27891 bytes docs/index.md | 123 ++++++++++++- docs/overview.md | 84 --------- docs/upload-package.md | 24 --- docs/usage.md | 59 ++++++ libs/kotaemon/pyproject.toml | 2 +- libs/kotaemon/tests/test_agent.py | 4 +- mkdocs.yml | 16 +- 23 files changed, 339 insertions(+), 415 deletions(-) delete mode 100644 docs/contributing.md create mode 100644 docs/development/contributing.md rename docs/{ => development}/create-a-component.md (100%) rename docs/{ => development}/data-components.md (100%) create mode 100644 docs/development/index.md rename docs/{ultilities.md => development/utilities.md} (78%) create mode 100644 docs/images/chat-interface.png create mode 100644 docs/images/chat-tab.png create mode 100644 docs/images/converstaion-control.png create mode 100644 docs/images/file-index-tab.png create mode 100644 docs/images/file-index.png create mode 100644 docs/images/file-list.png create mode 100644 docs/images/file-upload.png create mode 100644 docs/images/info-panel.png create mode 100644 docs/images/startup-chat-tab.png delete mode 100644 docs/overview.md delete mode 100644 docs/upload-package.md create mode 100644 docs/usage.md diff --git a/README.md b/README.md index b3640555f..972684909 100644 --- a/README.md +++ b/README.md @@ -1,142 +1,88 @@ # kotaemon -Quick and easy AI components to build Kotaemon - applicable in client -projects. +[Documentation](https://cinnamon.github.io/kotaemon/) -[Documentation](https://docs.bleh-internal.cinnamon.is/) +[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/release/python-31013/) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![built with Codeium](https://codeium.com/badges/main)](https://codeium.com) -## Install +Build and use local RAG-based Question Answering (QA) applications. -### Easy install +This repository would like to appeal to both end users who want to do QA on their +documents and developers who want to build their own QA pipeline. -1. Clone the repository. -2. Navigate to the `scripts` folder and start an installer that matches your OS: - - Linux: `run_linux.sh` - - Windows: `run_windows.bat` - - macOS: `run_macos.sh` -3. After the installation, the installer will ask to launch the ktem's UI, answer to continue. -4. If launched, the application will be available at `http://localhost:7860/`. Let's start exploring! - -Here is the setup and update strategy: - -- **Run `run_*` script**: This setup environment, including downloading Miniconda (in case Conda is not available in your machine) and installing necessary dependencies in `install_dir` folder. -- **Launch the UI**: To launch the ktem's UI after initial setup or any changes, simply run `run_*` script again. -- **Reinstall dependencies**: Simply delete the `install_dir/env` folder and run `run_*` script. The script will recreate the folder with fresh dependencies. +- For end users: + - A local Question Answering UI for RAG-based QA. + - Supports LLM API providers (OpenAI, AzureOpenAI, Cohere, etc) and local LLMs + (currently only GGUF format is supported via `llama-cpp-python`). + - Easy installation scripts, no environment setup required. +- For developers: + - A framework for building your own RAG-based QA pipeline. + - See your RAG pipeline in action with the provided UI (built with Gradio). + - Share your pipeline so that others can use it. -### Manual install +This repository is under active development. Feedback, issues, and PRs are highly +appreciated. Your input is valuable as it helps us persuade our business guys to support +open source. -- Create conda environment (suggest 3.10) +## Installation - ```shell - conda create -n kotaemon python=3.10 - conda activate kotaemon - ``` +### Manual installation - Clone the repo ```shell git clone git@github.com:Cinnamon/kotaemon.git + cd kotaemon ``` -- Pre-commit - - ```shell - pre-commit install - ``` - -- Install all - - ```shell - cd kotaemon/libs/kotaemon - pip install -e ".[dev]" - ``` - -- Test - - ```shell - pytest tests - ``` - -### Credential sharing - -This repo uses [git-secret](https://sobolevn.me/git-secret/) to share credentials, which -internally uses `gpg` to encrypt and decrypt secret files. - -This repo also uses `python-dotenv` to manage credentials stored as environment variables. -Please note that the use of `python-dotenv` and credentials are for development -purposes only. Thus, it should not be used in the main source code (i.e. `kotaemon/` and `tests/`), but can be used in `examples/`. - -#### Install git-secret - -Please follow the [official guide](https://sobolevn.me/git-secret/installation) to install git-secret. +- Install the environment -For Windows users, see [For Windows users](#for-windows-users). + - Create a conda environment (python >= 3.10 is recommended) -For users who don't have sudo privilege to install packages, follow the `Manual Installation` in the [official guide](https://sobolevn.me/git-secret/installation) and set `PREFIX` to a path that you have access to. And please don't forget to add `PREFIX` to your `PATH`. - -#### Gaining access - -In order to gain access to the secret files, you must provide your gpg public file to anyone who has access and ask them to add your key to the keyring. For a quick tutorial on generating your gpg key pair, you can refer to the `Using gpg` section from the [git-secret main page](https://sobolevn.me/git-secret/). - -#### Decrypt the secret file - -The credentials are encrypted in the `.env.secret` file. To print the decrypted content to stdout, run - -```shell -git-secret cat [filename] -``` - -Or to get the decrypted `.env` file, run - -```shell -git-secret reveal [filename] -``` - -#### For Windows users - -git-secret is currently not available for Windows, thus the easiest way is to use it in WSL (please use the latest version of WSL2). From there you can: - -- Use the `gpg` and `git-secret` in WSL. + ```shell + conda create -n kotaemon python=3.10 + conda activate kotaemon - This is the most straight-forward option since you would use WSL just like any other Unix environment. However, the downside is that you have to make WSL your main environment, which means WSL must have write permission on your repo. To achieve this, you must either: + # install dependencies + cd libs/kotaemon + pip install -e ".[all]" + ``` - - Clone and store your repo inside WSL's file system. - - Provide WSL with the necessary permission on your Windows file system. This can be achieved by setting `automount` options for WSL. To do that, add this content to `/etc/wsl.conf` and then restart your sub-system. + - Or run the installer (one of the `scripts/run_*` scripts depends on your OS), then + you will have all the dependencies installed as a conda environment at + `install_dir/env`. ```shell - [automount] - options = "metadata,umask=022,fmask=011" + conda activate install_dir/env ``` - This enables all permissions for user owner. - -- (Optional) use `git-secret` and `gpg` from WSL in Windows. - - For those who use Windows as the main environment, having to switch back and forth between Windows and WSL will be inconvenient. You can instead stay within your Windows environment and apply some tricks to use `git-secret` from WSL. +- Pre-commit - - Install and setup `gpg` on WSL. Now in Windows you can invoke WSL's `gpg` - using `wsl gpg`. - - Install `git-secret` on WSL. Now in Windows you can invoke `git-secret` using `wsl git-secret`. - - Additionally, you can set up aliases in CMD to shorten the syntax. Please refer to [this SO answer](https://stackoverflow.com/a/65823225) for the instruction. Some recommended aliases are: + ```shell + pre-commit install + ``` - ```bat - @echo off +- Test - :: Commands - DOSKEY ls=dir /B $* - DOSKEY ll=dir /a $* - DOSKEY git-secret=wsl git-secret $* - DOSKEY gs=wsl git-secret $* - DOSKEY gpg=wsl gpg $* - ``` + ```shell + pytest tests + ``` - Now you can invoke `git-secret` in CMD using `git-secret` or `gs`. +### From installation scripts - - For Powershell users, similar behaviours can be achieved using - `Set-Alias` and `profile.ps1`. Please refer to [this SO thread](https://stackoverflow.com/questions/61081434/how-do-i-create-a-permanent-alias-file-in-powershell-core) - as an example. +1. Clone the repository. +2. Navigate to the `scripts` folder and start an installer that matches your OS: + - Linux: `run_linux.sh` + - Windows: `run_windows.bat` + - macOS: `run_macos.sh` +3. After the installation, the installer will ask to launch the ktem's UI,answer to continue. +4. If launched, the application will be available at `http://localhost:7860/`. +5. The conda environment is located in the `install_dir/env` folder. -### Code base structure +Here is the setup and update strategy: -- documents: define document -- loaders +- **Run the `run_*` script**: This setup environment, including downloading Miniconda (in case Conda is not available in your machine) and installing necessary dependencies in `install_dir` folder. +- **Launch the UI**: To launch the ktem's UI after initial setup or any changes, simply run `run_*` script again. +- **Reinstall dependencies**: Simply delete the `install_dir/env` folder and run `run_*` + script again. The script will recreate the folder with fresh dependencies. diff --git a/docs/contributing.md b/docs/contributing.md deleted file mode 100644 index 7334befed..000000000 --- a/docs/contributing.md +++ /dev/null @@ -1,166 +0,0 @@ -# Getting started - -## Setup - -- Create conda environment (suggest 3.10) - - ```shell - conda create -n kotaemon python=3.10 - conda activate kotaemon - ``` - -- Clone the repo - - ```shel - git clone git@github.com:Cinnamon/kotaemon.git - cd kotaemon - ``` - -- Install all - - ```shell - cd libs/kotaemon - pip install -e ".[dev]" - ``` - -- Pre-commit - - ```shell - pre-commit install - ``` - -- Test - - ```shell - pytest tests - ``` - -## Credential sharing - -This repo uses [git-secret](https://sobolevn.me/git-secret/) to share credentials, which -internally uses `gpg` to encrypt and decrypt secret files. - -This repo uses `python-dotenv` to manage credentials stored as environment variable. -Please note that the use of `python-dotenv` and credentials are for development -purposes only. Thus, it should not be used in the main source code (i.e. `kotaemon/` and `tests/`), but can be used in `examples/`. - -### Install git-secret - -Please follow the [official guide](https://sobolevn.me/git-secret/installation) to install git-secret. - -For Windows users, see [For Windows users](#for-windows-users). - -For users who don't have sudo privilege to install packages, follow the `Manual Installation` in the [official guide](https://sobolevn.me/git-secret/installation) and set `PREFIX` to a path that you have access to. And please don't forget to add `PREFIX` to your `PATH`. - -### Gaining access to credientials - -In order to gain access to the secret files, you must provide your gpg public file to anyone who has access and ask them to ask your key to the keyring. For a quick tutorial on generating your gpg key pair, you can refer to the `Using gpg` section from the [git-secret main page](https://sobolevn.me/git-secret/). - -### Decrypt the secret file - -The credentials are encrypted in the `.env.secret` file. To print the decrypted content to stdout, run - -```shell -git-secret cat [filename] -``` - -Or to get the decrypted `.env` file, run - -```shell -git-secret reveal [filename] -``` - -### For Windows users - -git-secret is currently not available for Windows, thus the easiest way is to use it in WSL (please use the latest version of WSL2). From there you have 2 options: - -1. Using the gpg of WSL. - - This is the most straight-forward option since you would use WSL just like any other unix environment. However, the downside is that you have to make WSL your main environment, which means WSL must have write permission on your repo. To achieve this, you must either: - - - Clone and store your repo inside WSL's file system. - - Provide WSL with necessary permission on your Windows file system. This can be achieve by setting `automount` options for WSL. To do that, add these content to `/etc/wsl.conf` and then restart your sub-system. - - ```shell - [automount] - options = "metadata,umask=022,fmask=011" - ``` - - This enables all permissions for user owner. - -2. Using the gpg of Windows but with git-secret from WSL. - - For those who use Windows as the main environment, having to switch back and forth between Windows and WSL will be inconvenient. You can instead stay within your Windows environment and apply some tricks to use `git-secret` from WSL. - - - Install and setup `gpg` on Windows. - - Install `git-secret` on WSL. Now in Windows, you can invoke `git-secret` using `wsl git-secret`. - - Alternatively you can setup alias in CMD to shorten the syntax. Please refer to [this SO answer](https://stackoverflow.com/a/65823225) for the instruction. Some recommended aliases are: - - ```bat - @echo off - - :: Commands - DOSKEY ls=dir /B $* - DOSKEY ll=dir /a $* - DOSKEY git-secret=wsl git-secret $* - DOSKEY gs=wsl git-secret $* - ``` - - Now you can invoke `git-secret` in CMD using `git-secret` or `gs`. - - - For Powershell users, similar behaviours can be achieved using `Set-Alias` and `profile.ps1`. Please refer this [SO thread](https://stackoverflow.com/questions/61081434/how-do-i-create-a-permanent-alias-file-in-powershell-core) as an example. - -# PR guideline - -## Common conventions - -- Review should be done as soon as possible (within 2 business days). -- PR title: [ticket] One-line description (example: [AUR-385, AUR-388] Declare BaseComponent and decide LLM call interface). -- [Encouraged] Provide a quick description in the PR, so that: - - Reviewers can quickly understand the direction of the PR. - - It will be included in the commit message when the PR is merged. - -## Environment caching on PR - -- To speed up CI, environments are cached based on the version specified in `__init__.py`. -- Since dependencies versions in `setup.py` are not pinned, you need to pump the version in order to use a new environment. That environment will then be cached and used by your subsequence commits within the PR, until you pump the version again -- The new environment created during your PR is cached and will be available to others once the PR is merged. -- If you are experimenting with new dependencies and want a fresh environment every time, add `[ignore cache]` in your commit message. The CI will create a fresh environment to run your commit and then discard it. -- If your PR include updated dependencies, the recommended workflow would be: - - Doing development as usual. - - When you want to run the CI, push a commit with the message containing `[ignore cache]`. - - Once the PR is final, pump the version in `__init__.py` and push a final commit not containing `[ignore cache]`. - -Examples: https://github.com/Cinnamon/kotaemon/pull/2 - -## Merge PR guideline - -- Use squash and merge option -- 1st line message is the PR title. -- The text area is the PR description. - -![image](images/274787925-e2593010-d7ef-46e3-8719-6fcae0315b5d.png) -![image](images/274787941-bfe6a117-85cd-4dd4-b432-197c791a9901.png) - -## Develop pipelines - -- Nodes -- Params -- Run function - -``` -from kotaemon.base import BaseComponent - -class Pipeline(BaseComponent): - llm: AzureOpenAIEmbedding - doc_store: BaseDocumentStore - - def run(self, input1, input2) -> str: - input = input1 + input2 - output = self.llm(input) - self.doc_store.add(output) - return output - -pipeline = Pipeline(llm=AzureOpenAILLM(), doc_store=InMemoryDocstore()) -output = pipeline("this is text1", "this is text2") -``` diff --git a/docs/development/contributing.md b/docs/development/contributing.md new file mode 100644 index 000000000..99a4e9131 --- /dev/null +++ b/docs/development/contributing.md @@ -0,0 +1,72 @@ +# Package overview + +`kotaemon` library focuses on the AI building blocks to implement a RAG-based QA application. It consists of base interfaces, core components and a list of utilities: + +- Base interfaces: `kotaemon` defines the base interface of a component in a pipeline. A pipeline is also a component. By clearly define this interface, a pipeline of steps can be easily constructed and orchestrated. +- Core components: `kotaemon` implements (or wraps 3rd-party libraries + like Langchain, llama-index,... when possible) commonly used components in + kotaemon use cases. Some of these components are: LLM, vector store, + document store, retriever... For a detailed list and description of these + components, please refer to the [API Reference](/reference/nav/) section. +- List of utilities: `kotaemon` provides utilities and tools that are + usually needed in client project. For example, it provides a prompt + engineering UI for AI developers in a project to quickly create a prompt + engineering tool for DMs and QALs. It also provides a command to quickly spin + up a project code base. For a full list and description of these utilities, + please refer to the [Utilities](/development/utilities) section. + +```mermaid +mindmap + root((kotaemon)) + Base Interfaces + Document + LLMInterface + RetrievedDocument + BaseEmbeddings + BaseChat + BaseCompletion + ... + Core Components + LLMs + AzureOpenAI + OpenAI + Embeddings + AzureOpenAI + OpenAI + HuggingFaceEmbedding + VectorStore + InMemoryVectorstore + ChromaVectorstore + Agent + Tool + DocumentStore + ... + Utilities + Scaffold project + PromptUI + Documentation Support +``` + +# Common conventions + +- PR title: One-line description (example: Feat: Declare BaseComponent and decide LLM call interface). +- [Encouraged] Provide a quick description in the PR, so that: + - Reviewers can quickly understand the direction of the PR. + - It will be included in the commit message when the PR is merged. + +# Environment caching on PR + +- To speed up CI, environments are cached based on the version specified in `__init__.py`. +- Since dependencies versions in `setup.py` are not pinned, you need to pump the version in order to use a new environment. That environment will then be cached and used by your subsequence commits within the PR, until you pump the version again +- The new environment created during your PR is cached and will be available to others once the PR is merged. +- If you are experimenting with new dependencies and want a fresh environment every time, add `[ignore cache]` in your commit message. The CI will create a fresh environment to run your commit and then discard it. +- If your PR include updated dependencies, the recommended workflow would be: + - Doing development as usual. + - When you want to run the CI, push a commit with the message containing `[ignore cache]`. + - Once the PR is final, pump the version in `__init__.py` and push a final commit not containing `[ignore cache]`. + +# Merge PR guideline + +- Use squash and merge option +- 1st line message is the PR title. +- The text area is the PR description. diff --git a/docs/create-a-component.md b/docs/development/create-a-component.md similarity index 100% rename from docs/create-a-component.md rename to docs/development/create-a-component.md diff --git a/docs/data-components.md b/docs/development/data-components.md similarity index 100% rename from docs/data-components.md rename to docs/development/data-components.md diff --git a/docs/development/index.md b/docs/development/index.md new file mode 100644 index 000000000..612c7a5e0 --- /dev/null +++ b/docs/development/index.md @@ -0,0 +1 @@ +--8<-- "README.md" diff --git a/docs/ultilities.md b/docs/development/utilities.md similarity index 78% rename from docs/ultilities.md rename to docs/development/utilities.md index 53a9da340..e8e61c795 100644 --- a/docs/ultilities.md +++ b/docs/development/utilities.md @@ -4,11 +4,13 @@ Utilities detail can be referred in the sub-pages of this section. ![chat-ui](images/271332562-ac8f9aac-d853-4571-a48b-d866a99eaf3e.png) -**_Important:_** despite the name prompt engineering UI, this tool allows DMs to test any kind of parameters that are exposed by AIRs. Prompt is one kind of param. There can be other type of params that DMs can tweak (e.g. top_k, temperature...). +**_Important:_** despite the name prompt engineering UI, this tool allows testers to test any kind of parameters that are exposed by developers. Prompt is one kind of param. There can be other type of params that testers can tweak (e.g. top_k, temperature...). -**_Note:_** For hands-on examination of how to use prompt engineering UI, refer `./examples/promptui` and `./examples/example2/` - -In client projects, AI developers typically build the pipeline. However, for LLM projects requiring Japanese and domain expertise in prompt creation, non-technical team members (DM, BizDev, and QALs) can be more effective. To facilitate this, "xxx" offers a user-friendly prompt engineering UI that AI developers integrate into their pipelines. This enables non-technical members to adjust prompts and parameters, run experiments, and export results for optimization. +In the development process, developers typically build the pipeline. However, for use +cases requiring expertise in prompt creation, non-technical members (testers, domain experts) can be more +effective. To facilitate this, `kotaemon` offers a user-friendly prompt engineering UI +that developers integrate into their pipelines. This enables non-technical members to +adjust prompts and parameters, run experiments, and export results for optimization. As of Sept 2023, there are 2 kinds of prompt engineering UI: @@ -19,22 +21,23 @@ As of Sept 2023, there are 2 kinds of prompt engineering UI: For simple pipeline, the supported client project workflow looks as follow: -1. [AIR] Build pipeline -2. [AIR] Export pipeline to config: `$ kh promptui export --output ` -3. [AIR] Customize the config -4. [AIR] Spin up prompt engineering UI: `$ kh promptui run ` -5. [DM] Change params, run inference -6. [DM] Export to Excel -7. [DM] Select the set of params that achieve the best output +1. [tech] Build pipeline +2. [tech] Export pipeline to config: `$ kotaemon promptui export --output ` +3. [tech] Customize the config +4. [tech] Spin up prompt engineering UI: `$ kotaemon promptui run ` +5. [non-tech] Change params, run inference +6. [non-tech] Export to Excel +7. [non-tech] Select the set of params that achieve the best output -The prompt engineering UI prominently involves from step 2 to step 7 (step 1 is normal AI tasks in project, while step 7 happens exclusively in Excel file). +The prompt engineering UI prominently involves from step 2 to step 7 (step 1 is normally +done by the developers, while step 7 happens exclusively in Excel file). #### Step 2 - Export pipeline to config Command: ``` -$ kh promptui export --output +$ kotaemon promptui export --output ``` where: @@ -54,14 +57,14 @@ Declared as above, and `param1` will show up in the config YAML file, while `par #### Step 3 - Customize the config -AIR can further edit the config file in this step to get the most suitable UI (step 4) with their tasks. The exported config will have this overall schema: +developers can further edit the config file in this step to get the most suitable UI (step 4) with their tasks. The exported config will have this overall schema: ``` : params: ... (Detail param information to initiate a pipeline. This corresponds to the pipeline init parameters.) inputs: - ... (Detail the input of the pipeline e.g. a text prompt, an FNOL... This corresponds to the params of `run(...)` method.) + ... (Detail the input of the pipeline e.g. a text prompt. This corresponds to the params of `run(...)` method.) outputs: ... (Detail the output of the pipeline e.g. prediction, accuracy... This is the output information we wish to see in the UI.) logs: @@ -141,7 +144,7 @@ logs: Command: ``` -$ kh promptui run +$ kotaemon promptui run ``` This will generate an UI as follow: diff --git a/docs/images/chat-interface.png b/docs/images/chat-interface.png new file mode 100644 index 0000000000000000000000000000000000000000..9e98accebc5988493f0224b0c1f53043e4a14f09 GIT binary patch literal 19292 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 literal 0 HcmV?d00001 diff --git a/docs/images/chat-tab.png b/docs/images/chat-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..d8fc9ae58e304224dfc2f3daf0f811f5a98fb1a7 GIT binary patch literal 68271 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%0A4;_9dZQYJvJ4g8y%>*1e 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 literal 0 HcmV?d00001 diff --git a/docs/images/converstaion-control.png b/docs/images/converstaion-control.png new file mode 100644 index 0000000000000000000000000000000000000000..60256452c468773e893d32796dd5373fab2c581f GIT binary patch literal 8065 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 literal 0 HcmV?d00001 diff --git a/docs/images/file-index-tab.png b/docs/images/file-index-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..469abd9e7b20191afa9f784dd5f977c8959afd54 GIT binary patch literal 42895 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 J{huPg`xkDSU9SKD literal 0 HcmV?d00001 diff --git a/docs/images/file-index.png b/docs/images/file-index.png new file mode 100644 index 0000000000000000000000000000000000000000..4906a660e6ec44505302dbbea0c9bb6a5f927dc9 GIT binary patch literal 6147 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 literal 0 HcmV?d00001 diff --git a/docs/images/file-upload.png b/docs/images/file-upload.png new file mode 100644 index 0000000000000000000000000000000000000000..1738904f0d90178c316f6e763e5fa38ff3c306f3 GIT binary patch literal 17311 zcmeHvc|6-`ySJG>t!X=@MvGER$J45|sMc0nbfcw~Qq-2T6tzWT3nJ2)E|j7zr6{Q? zYOgg2iB6H$76d^gX{E##X%G>ScoW*0Ip=xKd(Qj5=e&PC_vhmy`Tg$Sy+k{uBala=C|9ux?XMRSkyl4Nk@XOzP zPFtN86RS+#xpsZ4@cZ^#7o0=H#3bH{{=UNny}ltPc2@i1xzkr7fDE!^y*nWrAh4-% z30A4$p0#-V=zhHJ`91p-rBi>({IC*ZmC_-HEx^38E6cn-?y8fV8ky?%L!MT9Yww4L z7wy;MpRC&D3v{*}JpY^B-}UnKw!0j}RxgjxDIxRgf2Vg~^eTvp&vTlWDbR{q;s`w| zljH8s_8*QK9ul8^8r|fE~`>8 zwsldnEDk*nGXjj(TAwB7Nh&G?@mbjsA6c@0Yxw$*!r`q=yd;WN-AW5@{65m?8I$1_ z>pxQ<)u`6nyk1G)+W56%*rO_9>f3^2x?WY}KJe?TpwWdJ@a)`d!E_KZnpQL zWmPA@I3N&14p<#{N6XAo>arw5m%{)_4-6;nja9jt$fo3+(wxuHI+61ne(AYBz++}^ zmgav4A%o0}hQtiPyzJZ{q#C(kXpvR*f;&4jpb;;L%cfaB3|aUp0;Za}i}5QHQihZF zdb~!a3??7ptmG6zCdrxUqfVU1jU`Gs3P^cQ!=%&D6xXNSr~T=cZ^8rg9C}dsg&U1N ziKh;o++t~Y3H#&bzaNXxmJZ0`evc)7CNUxeKE?+Atajz1tnSl_m2XaXEvg^&q)PWB6mdU=5qI-? zhK-fVFqDTw*8`mE>X?+Ht}{wdSM7OYb(yX%8~yNrAD!(otfRn2Z=!Je^{1Asex1KA zg}M?G4lb3`IaJq?{B?KWxTbx8*=sfPJ1cJm;}iR>W|U^YwVWDjv%0#lWhKM*;@F^s zkcHr`Ms=mQ$6DnneYM%H(vn>!mCI2j(1$jTzm0mQc#OTie>L24up#nylj!8=&&;)x zp8XHEPB5xO@ngLnZWV~_H_0fQfMWOx!c;|`!F3j^M4Ws#n8y%QBZ-{01$9M5Qamc{X# z{(PFGo4m(_*Jy!`*$*P24^S1f!bo=SoG|i>3n#wrAgVhH;%@ZDK=TGL&M-^-!SeG& zBYyCyTkb+^sOR12o++iV;h*dfs3Vaf^jW&r}&FADgb1sAc)8Bn;cRKnZDzb6X8^5OExJyo2 zI;$`&XOC0#A!O#h%{feERZV~_nL3uW%cY4*Gwr3)G_<5-{DW?SW;zg+?PU0U-AJ3( zblRTp>GbT~5TC5b5@PF?M6{DtM$-uyrEqUF;qUk?$fc4-$%Oj+6BhN)tMrIr%+GRF zRmJ6^v*4|n^wt4K1N(nHx~9~+jh!;O1?BC#VKenrw^mQvOD6k+qmFB`4;8lm23tSo z*ky9a`Z#zQ+I{u$(mb>3H z9(Af`p{33G{O0&L@X{pb~1Lgltu$I*5fm%cpi<1 z!+myMSK??I9X;e@-Y6KM96{6j`CyAGeBES@D@GF9WpJEo4jWx2!}7(bZ_nc64Q1Tr zPA>jZ_B{IfAhRpyGL^1rY!7(2u765%<7k>H4rmQntv}+k<)V3@_88hCG1BJz!!AkL zE6K4JRY7v*yWslXg@ToZK?u1^vpq%{pE$elZno^>>E2S!bSBhZH&Uq2@C(Xb)O%;W zDJe|GsDW|H_osJwdEWheo=1CDLaVT(aq7Nx8IUhIfHmF_|U+5YPF_Z zry7I}Y+aDmGiuEz?lXCHz_B7iS99|uw5(45gHVJy$*Z%uakC`l+*C8=9=Txi!KrR- zoxsQ&K?d01=;ipc9_@l%6ZSdW%bi@`9X)uAOm)z@ZI{0HxkwP-Nvm>6RIqe*oz$bURHQ_|!6N6&uwm$Ro7=gN`E(&O>btCI=ixw*&+_k_@o z6fMs#&u)StwZ7>JIH#cQ;IY^Hk#K4qZCYT zaH}yoTlqXqpgL&}OIxor*_!dxAjaSZbMjU}t@c(3X%>2nhg;thH9_ndrBbw;(z9iF zPgkSDWUi$4@D~QP{8{~SZ*WK_@+_;8UM}3}_2R#Y@2bRSz}h{zwH&ly(5_+OR4t|= znCdii_c@n86VrS+X4Nioy-{s&eWZzL8JNt+0;8;tFw_Q#+P?^1a;r^_OUT)gCH+0< zc*lyfZhWqr6lGD~;W^4DD^LJlhRPux zt}!dDD2 zCF^w?ip5lRMs6nU#(GPR;H^;=!W2ZW_45~0uIH?DFv@=G(B4sUq&|}knpWm;j;+62 z`v7b2$)`Cv+}ld*Zpw4mz1Ka~mKz4XDZp_{X!m))gd0w^#GPF?3RkGtj&X6om1-86 z<|;`%+_HT0wJ&H$(7_LzsJh3pol`V-`n_<@BqtuJC+@Ab^m<1`Ki5jd10Ncb#XG{` z_jtOPV81&X{sA@rz&SmCu_M=v^De`VAF=@BeOON@%(VO1a6AZa%vw|(8W>ej3V@R%hkY{95!|H+rd{Db*E>&1KKmg3fwOkj>~nOoB=1Gr{6(U{LR`a-GsTo^TcbXV#O~~@H&Jt=-Jhtc7ZglKf3vo z#Mw6;boXGgmlK^a+7dIhz{^62S5!!xA#e~@i;E{05e&u4_RK-nQ!ql@qLI5sxvJRf zgmB7w_oY}jEvI=wo5PN@_WNzQzZT)bZ%}pT=YY!=(7r>?kTW~Fh(34y*v#cpt3mut z@!~T>OXixsHQ+@bq~OAVy2R`3tFfG3@EEaic@wJC*img!za;)#io5x$5ahqzaC9+6 zwpz;XBF~>_qL65{ODp0AaPIz`f$zCnJMtHuGEbb`x!*kI@HXvcA<7P!^-q^GI-dB% zzlb9^?;AffzfE%DTFt3wdBWh~4%qm_1lPN<;&Ac}|8heshCyiTvCs>7<^=765rLx$ zl4#Q~-=1!;{aydfRtwkS0w+dr;<(1V*Bxy@vUvNOT=yC*#e!O--4TY&tvx-rI#aLA zd{A+z>2S`dO5!UGw)>#6_l;izl+Ib1+(gCA*rL%@Utpx+!s^|}_=4AK*WbT%%sZ#| zO1W`OP{90{c{AETbFv&ZJ-Egl`GRkD#Rp~SreQTFc31OtbxRgQo*Z-SYg0ZN%7z&j z+lO=zD0)MGn`Gt=v@3DR@aQ#j-C&p^v!v5x13KMyF_xb3c1gy#NjjSnADo58z2$ma ze(85n{qBNc)vS@d4%>I)>G!XfBv}qBKb&+396qjgyQgq>SrM9N&+%4qseat-J2O#k zb~$ZJ@g{jb=`sKMg`!>br+!A&M~2CdL?TG~p#1BN(*Zmrukj{|>I%S?k)9om z{ouZqYmtpidDTg8ETIw(`rZwpot(JbYP^c389U}=#u%HOgXZBkOv(!v{u#0mEv>)a z?%QFXQ4VAUIClL0u(;^1YT>k#_~gBKcgZ68r_ks%oK~4xmPDz<5s9uLL4cC_vofx; zb4B&B5|!e@pXcv~W_Ls-mU*e%@qhPvkK+JcnQs4sQn$ZNd3u0Lza39T>8CrShc5%- z-~y-4*PX%C&x985>+XTn+QaNcj_YVDJSn4QnJ$^9I&?3>Bc_f)wo%1<$~RxFKIF555Z;X<4PGSYBb)QsaRc()n=Pjb+dzd<$+*xe z@38PPi6oyq>HLG*2GM0 zvAtivHP%{IDzR@YIF_EYJC#P8((-m9>AE%3|Cf8FPIHONmljNCD2j6 z=NK-d`A9%9H(7hs*RyEevU)ab>3J!s+DW=;GR(=wnLNRqcI-E3GjB__Kt@LHfh?X( zU(LS**qy=Uk6s>U7J=)IqATW;;()lXf;u!KJ0tkq7RO&ybFC&4JyEI}e$M8{t#+a3|(ZB=C1+H-BIeRATT0l8f5?`K|)>gZ)DCADj*6K(v1>q_k-gy>*p&z{+MQ5 zZF3rCH`9n^>Ne_b62=z9Q<__Uc^cJU@>5hznJ2!D?P9N2JCWc#b=jC568qLn>0=!b zt-mvSTb*8fu$57b2Yzz4=K_JM%dwKraE5`V9p;mTdg8SoLF+O*#5iyD`}=w9VMjkQu{~EEj)cb+7hJT?jhZv~ zMZRQ95qRj-A}^mAFd@0!j!(qO^R6WS-tEq@OI@b(U1m7%hawoSlyyJmxFQgw=yGR1 zVq^h!I7{B37Co`@QTw+#bl?SiP&YGuIfuG1z<#RhO>JPQ6L@vLv<&olBl1W{6&TMC zu{rm=*NszG>km=Q7UXDDoX%m}>@c&zyjemY5<;7fv#euX>ru-%>FH!WM*wSm<_r3j zLpGPf9xMx2%pB?qym`_A5sUcTKZqc09=V--`8uUKT`E`?KJy9EZ6!IG&oPr{YkR&| zobXK|rI^{|t3|@}ZRgmdj6$IkB%}CKB0UUogbvI{Y*{cpPRH|x~^d9&c6JFEOrmc^1+?skt zK~!Ox$vaNa{OZF7`289E>HL559{&d%(tkDi-{;)_Yc2n^mSX?A#6nbU5$M?-K;t~p zl8MM*3LTW&nDe6KgK0%A)x>lBt{P&mYf!VpH2+ztC}0dv6a~C*1AXTx$hZ(Jmpz4Y z#+E*(*hkI*VcuTC8dFC%!c|KKFt|tZv#=rJIG+gvt$iv3+~D=Yj^J0ZAbgTg5t)Jx zh=N%!oJJODdE;v#7%AnI7V+`Hi9`tXY(h1E+W09!5QLaj7>N|N+AI5mC{916V`Ab* ztp7N6vg+e9N>ej=x)5=c5?yU%r`KE11%gnCR@$$GR? z`JSa~4LzL=97_RwuCJ<(fS(zY=cY=(M0(o$I3<^FS zVZf}H#!6v>T%Iz8Q@u^OxH%-&D$}VANr_a|44bz>tlEd02%B08|1;C`ABXJr^iO65 zDXD}DZZ6FdHL2Ct`@{O#{i3CLp(iC8x$OmzA$O(TuZIhHe_H%AO!rcwbtAA*6n|Vg zw9&(kX_a?%-4v8^o%=H7aeik`MI`gWgu&BU;nSu;UpIw^zXwRVll1&a^Tt;F{XdL5 z9)1NCP6S5v=#=zkD)@D(qux`F5;tc167+89-OwbdyTHcSsJvnN?M6<9*^K4Q)aZ{_ zi?fB-m~TQ{dyKIVf=T?^@9MBaZ?~dq}$t{N1`V4 zmpAOy;aADYqdFSsspm~sl>Le2iPAQFENj*$Z2~5&evP)di6x0-p0w7)vpmanrVh38 zyCDo(w;V0FAMxceZoybs@eS)w>sM-+JMYak6kZjTt^e_iMYsQXg6==wwv8tL8F z;QVdPIi$L50@$Jjo7{T8HDX{A#C)d?5qXlecI zq%*{BIVNz7eJ8C2)vf)ZtT3p2EkIY8k%&~N69htsddtcx8oSxS{RbV0K{}163>{|@ zI!>tvGPvPFdG6(H?9J5JOKN*(A7C5fN%~1cTqSbFAyWRcrrU04>hi0Wg;E>MWNtS> zg-*~zZ9ifOfGy%^k2@k|HIi1AmUjIZZkX~LLFE@2$5EYwlX^)Hs%PY06uj z^v-l#Okr(iT~w=7C2>79*=7ZYOb=g*MhmAkrLdvJLa#fQ26X6UHA`{U-}vn!u?lgI zRV;WK&-bO%(N)t~^g8*8EZ;E7%bnxnpeCs;;mX9wXQysmdS0uP=OW3SJgpTxt*#Xa z#^k-~o}z`bllj&q#TDGJa}T@l?{9DfZe0~X0(8C`g0Nqg( zS@Ij&#a&M6&bG;{?ljzD!b10r^gs_&LIo{p2L9nCjK(S$%8Pd82YgTzYD2kttH7(H zE`)J?)QO*Tn-`>hci(sF6++jd?$9&iz)L^APlg`5hj(D>V8IUx7f+s;rd0Rg9EjM+ zs5xRIULN5}p!}PjvlZ4K%gNx|R2)<+U|ECMX9R0~L-n4Uif1Y+hJFnZ9I>e$t5n(; zEBv<&!(hFCH{C`-nw5}MQs4l_Rac+@fnQc2T2UVrDi=nY#(qsPsSIiD2ZaG~QBhIn z^$Nl%yA{bW*{CK_rgCZDh8&OT36|>BtW?G#EYnr2361r7npXb3J@F|E?oUl4TKds0 ziALm8No7Dup`hu9pKB$o+t(fnR3x*iLAaS;J;w)v9Ls_f>^Z14o+&80bRqR9>xS)8v@qd zx6#U!mu15KQa@QBzLAdK z)7`s5$^bpAbe(8>;)Me4ksW&~Yas#P&O$=Rl=NDCXj6(RnMz!aJ`Ipg->|uIe>y?< z3nDp)%IJfva)oVFkd;)Ckjq@QW`bw$Cs6X@I;VH-`B)M%(HP-iV*Ww|RDw1YkkdXk zmXq+QLdT-^wl&`ZuLdQ?hRy7a*T`Td5$=G zj+dw=_i$1l?pH>ji7i*dnJ+a8T!rj}+Z6MSW;9a@E@6z*7%L-bwYS!>Qk9=U8u2^l zJ8XoF-8OmkPmQZ^5T-Wze`G35RKAfL{{I@R-l7zZ2Hp9_8y3KhPJq6##D~u8Ox>gN zjggMeQ)OZ3A$VU3rBfu~hjm3NuH{gWMOQO-w7z6=Q1-XsE#qs-ZVGzv#oJA8W!0X- zYPQEjis81^@B!*`1t>Y%wzTP%#s1J6o&JLU+)BdA+ABv5Kz?YCtVW#SLNI*0t7yS> zHkvN*6Y7XrLZ_$TF=71Sc`jybqOgW6M2KPm`!^fy{|+Kp$@XMxf|EKIjmd))mx>7~ ztOG$0S|c;JLZB6dHZ|)+R(ldWvA;@fF)=nqTX)Bi1K^ZmgGO|D5US?k?(*hz@TIfl z#BeXTV_46aFZWmPvVxYnG!g7_*buj@mn@pcQj6X=3&}U4RtoH{IV-VTGceq=2m^ql zzeSf&KeuX5)&Srey5(`mxS$|zaQb$G;9IAJwyXPeAjj%~Cx8sd z0bVscxHM7t>PrNDxTO0vaaV6KJe%0p9j@N^bAbbOaSZe{iIaR9oth9Ez4$_Iq()z( z+<=~hcrLS;J}Cr*V!Dx=>pj#vTohR|6*cOWCD*$&Tc1a`6>)Pv_fGH&m~GY@ltMe= z@Aun6SntQ0#^y#NZuqvox$a=E9rR-GXxfD9-cAoMd-1SROY{+fwNHf|=rcOy@!3_} zj4CtGFjy3#58mvhPlOvB^3GGG?*Qy@I=5iS0mfv4iA=JdP2X7G(txmLugRwH6&YoQ zeqJHy9lHr%W?wb_;t9D>s1lQo>jpiO=HQ;`&x+4p2FaMB^tLXf4*Q>L?bL*7XD{Mu z-1fNd(8>O;K2YMG`MD-=ZAlY3Dt>Zkw2pOq*!LDjsOG<|^@GN>RHK{CBKc>Q=ubas zfW$xxyn&&o$C_#ob5IwyPC@IKWx;3CUO@86#=Ucsr{^AhiagbzJGnldD0ix|&Pvri z_*|U~V@;Q!jH+LYP4Hy5XhCN5N(yaEe(pi)9@=)Sxx}j1;3I+H2@biCg(QAj>L>d; zk*2e%Y25IBpn?#NP}^g+EQ$biR?|P#-S837`SO7`B7hwZWr(Z-NfTWI4b>5hRAlbw z>3jAbE<1DzyW`P^%(?)<-flUH89#+o>v&P)c$#z9mi$~0%QaeBFKQZAWkWoE2c(&Q zsPpwf5vR%qMqaKqdWpAk0ne23kWB}bsQkDz(^_B1bKbq3nM8CTlY$O#8sz`oMziUl z$GDW#Qxgl9?37XH;-l$6k=A^{{4@Q!v1wx3v5jT#L;!TknY=yB>KmKsuY9?G568zv zkhb8e$Xwn&v*95K9~b*8h3o&5;rwsoZv1JB|JCIGF3KU?=G))@dvOq6e9`i+9slQ? zqD{VPGE!qXZ$RE2>(%XSDbse+(@kF(TymGXeFUhP{!z0e!KGc z({=~eTtZ^s%IM76`_(_sEk?;E|; z6#1wMpZaUTF>SAxY6@2Sd~J&TUuT(3VOW#OG|YOW^&=r#6qO}kHEFAnn;jSI9Y^hF zWM&FE&{?w-hT{Wr$>H}o2*tdVBqGmlweOyqg?Nwl$3(lPn zzk`ZT2f~fNvWCP04D1{;PY`l!QMORibxAWJ#dhH`MBK{je ztmTl}AJ>JzMO0n`He5g9r~f;-j+dTMf&s_i%w*5ET}@*}_MUH>iMYME$+nlB^9&J* zbI5|zPv(KCBSgObe2%f2W*IUxaf8)4v$e{EaegyLDJIt3D&&IJEqeF?kNo!g-9{fo z%q4A;^)o+G^JKRsgh3#egoM*)+DA3Pf2Us(xJCOdv_%$06!c&)x}iA;?`ZEaEy(y< z(^s;o!VMA0HJO&qQIdJLXng+iBU{eE%4ciM*1QztLoY*qMqm2I{KZ;ehq4BjDZZ7= z+tKE4_oxhH3pthu!3TX+jU;nqP#hUon`2S`Bt9Jk#Zz>tpc6u7tk>)({2;GCTo5vW zEOSFgcW*t}Nl;EtMrHS)*1mHDI@lj3x}n&32T=7DTzxbYeS~p1{fLTP$!wr;ZE(2t z#A-fo?E(htEFS1@+!o9=n1B`U+n&XtjtsJEaxxnllR6s8@I^y2A+L>5C$htN$n$<2 z;xagHc>2xU)rN{AfRyYfMbqj1C5_a^Ib!rGv!ilXhJ?b#jBZnMpJ-Z*sZlT6-uod8 zPw~WET|O5%Lk-D^I8Z0AQ+MQ*RW7||82({wWuPAKRbeQe?7MHlX!gTZ-D@`<`b%&u z=!k;QW;Fg`WPbk$?A);~#JoK!wY-^gUB{m!0r22NXag``xc7%Schhd`Z@n!|tDB6% z^1d)T#O+KY&#}Xt9QkfL6omZ9gTesFSE_7M7{NNWO%?gt&9F8yI3yxNsk9<7$^he9 z#G9AIVFo3gRRaxu7RDm3^F;J#C|3`GwM}TwRio zi+OF8el4+`zd|VG_Z()sda@wi;ou#)PR7x$gJD4l;=cri$cHsWL5>ATD9N@yaC%yv zmEJhPCAs|88Oj*krFDaN<=GyZnU1#jP=>Q=`|tEc#uIB&+GsFmr`Fm@dfQ&2qRbs- zOgT-**OGI~D<4ls?t`Yy$TbBvB$Ea%8^n0+a5uCy!8Vo$8~VND>C}D~5>7R2S4Hc1 z=rYrb@h6OBcUlG(JLfgLi%~Bb1FepPWCFe}!)j9W({lg(Dq^aEb0f>sFVx8xu zuEJ(@O{1~hyciQnS~&k!Kg>(v zS~P(4mWy92KWG|6{B4EN5nXM`;B+=QS<1@Q1UlRrd%P7gem#Wt;c_H4OgB+`bL*Oi z+qBfW$1=T(yE#kS6iyA4J$zGo36_PenvQ{L+N6vDSDVjBB_*w2lMZwjxW#+-K2j=vRo zXF>%F(p~Rb>8g+3-V3}&yWdz=U;$1$GuknLUIZn!4{J%3yCB$ec$AVv^Uw3{KUMPR zk_lwmbUo@schGEKov+_#;Yvg*9CEw|v-d$d0cq?9vK}i^6Ko*q{qG-VT56iwgW#!K z`nBP~AvcW{-wZ=dG4B1or2bnA`&4KjN~|AVbW%@xtC&N~7$Exl5fAkg6!)M=kIPcr zYBg>Rsj5DFaCPCD!$%h#1N4oVxet{=S8P1V8Npe8Omt|4c}?lySVMn<19Gvdox++B zIa`Y{M=lHoJHX3fQbCR@2Rd;0y(`a5kGKgz3GtB&9UZ&ZV(CPb&hmbE5Yz7o=PGleEIkTmq8 z>0CMc!zBWKGcHFp1KOvXT%X*l1u4`~_unUsjSGuuMHu9gOR_0Sb$ggI^kl`&oML^L zqSj%h;~g>^6~vxK0|hrcWPTEfm6QPS20~hwWC%UzBaF2 zU-N`;P0Oz^x8T~>mt%C*)Kskgc(R@7h_mcOC?hE$h5sBOS;er1L;4V%lC1*d@JQU( z*}Sl^%(&TMW^a~R)t_TWwAE`^l*J|qUrxHTfBnI*C-Hh^x1;Nhh|NW~ZF0a1skX(+ z`DVvCd)>?v{W${_*JrQi`}zG5HTC8HDCoUCEJS0K8;~hl6}AE* zPB=|3|0(cPYUiIkeWK?#FeR2fYyH}l^X+8^vDeDq?)=}utp5S`;U8Zknx)@y4UiH7 zI82rsSwgvSc*V0 z%+CERIrR*ONdx3ruZt5H{-P3F)CD;q5EY<~H)m)K$8rB|Ces>I979YCjIkhcye3HV^U^jg4oU%Y{pM zn{q)EbL}k*mHBDM?%8qUT@Au9nToE7itWumPw2O|@cw*LBn+>Co_ivi#2eNtwKPsL zgL?I+MFIXGVY*VimbW_udQ6k~;FC0VPoa{*p*sAGx*}rbZA9RbPn9nD6nm_`Dca>I z50~DfuP?FR*#Sy>QXfJ&s1*b`QaeW91xOrbe!Q#|n$SOwa%@)tWGYfI4P%(N(~yr; zVUYSHI3ge=2}|B%2?oh;Njg?rNEUR~PA3}>(^r@8=8b>6eCOpS_;gcojNzA8^}(Y` zmEDHe2d?V^Z^l2(;MG|G*gE;vXZOJjSy%sw!18`SK~b{nr$m_>}fk zynH1+PHuJn=m-m@bXBGTmsZKI$3CpEKBjDQ{d3nvwO+U(5VU-5Y%#)9JNn4hMlMSt zG0xb0IhlymsMQME}29W_&|&>Yu$0`+uDFgfQjG; zz$kPfef;yCSe$MacAqBS4>GpCq)_?pQ~vU29MRc*rjxf!+v3?>JuQ&IJ#k>-R|6-v z=lwF@U=;JFUTqwnk1;t=Hf?ysI`fTrfOJqh4dtdPI!aS{n*rmdZdw}*pPYinp1?pq z0ou~bV}1c@GRWR^Eyy+QT^DJ|Wc-gLqn8kf+i@CloaE%DNHyUpk9U}7S)`9@EE^i# zOB4om!>+G&6E(Y%5X}Cav~f^@R7n=DPG$K+65^Ali3}-~k`B1#6+J!I*%=0^s*l_g zgaao!`v}fP>xdRZ5{i3*vOtRmD!`uF9EO4HjiN_Jv=;l1(p;%45F>$^FIDD_$3T7P ztt*$v^t}9`CPhoI5db{|?E&anV&!1t#g_bM8y-I?9xTm`2k|tH-NO zQ4^KdI`dg&aB(lR-g-+*|9Z?Jv%swKsuO8zbmw$#_N>6O%+GS~R_V#ph$Eq0A6`bVIn(gP71PX_Q_ByMB{Z6wE45=PUrbQa zH6!vBa)ZTZY(e=!DDLOf`WQ<71d*EfAb0xOy1M7NC{1@>m1|n+YLx99bn46STH-+# z)k)oDJzR(;Y$G-HlRfb} zljMP;i{Zz(+(cGHj9KFBd=k(8XTwmWK75&q13Zt2UVC?nnnd6zU2PNujnDgA5JC1p zwYuw{kvNnE4htDN#d1=iA{iwsOdKLbh`QH$PmWie#OwhXGnljvA@g*XFMLcwr%ieN z83mQlj924#Jy31q^iWjqmoKIgpg3c^?o*0*I}nF3#BxH$e}j+)%OS3Mqi$r4admM)8uIQSy?r9^$*9w~fCNgqf0@@BBeGBw z;J##PRA6+4AA{(^X@g?;NC>{FV1?$WoY>sXkcKhpz1FnQ0zg}n_VcC2tnvFGy*5(T zuK2!u8Vs@WbcLBYoo>l!n(tUa!9Wjmm;w9F0!$7`>>mUGoA^0b7r-%R&`R+~5jFb2 zC>4*aPx;7^pmS?1K|lVLS|PD7Th?7cZ_UrEC~=GDimD|?(1)TuUXQB5d7qdE!V|__ zsSR552yS=3kJCJ93r9(cbk4qM#iO-XMHL5vM|Z~QrL~r&7u3cv6OJ-nWP)&MTC1<^ z$EOy~3pLP`=RaaHa&@N$`m?L>?vezJ=DKdAX2wAroPQn#cFPfQy~Kv7)p(PvpfLQO z%%y!r-{8bwUh4mMfaY3C?O_ZXf%yryk*5&bQ6>yAj;<*RTNIXS_5=1AzCth$Xy%7w zMBNC>o9XGIt{P#rte~che}GaoQ4ar5QJE5TG&6>p`cGVetkRoqQbA2DGvHUCHpR31 z1HVUdC(;v#zjmv;{cDgF_B!j;p4GN=U^9}tACMjvd>6dIgQ)%B zR`^#sn6TUzQNECwY8&^EcAPz#CC7~>cqj#*2QMjy{go*7#8SUu<+Lo zJU-r5|K<{j{rPhM9MO*;{MGGwjY|Dc5KwoNalg^Vc+n#|0C(UIw`b}*wFIk-fDUhT zKlnATBc4d(raQJ`@}OOuuYKBT{-s9NSQwR7*(Oer)~u{!t7Qd7$*P1J4<&}Ls%$g^21FD^ic}#Gq=P^rU22djU3v$RCM_T(p(LQ9 zAiWc6kWPRk0)YS_$>W@J-?(SI^X?tz-anF^y|Z@4m-X$j=9+WOXnox$Y%Dx1004mP zsn#O{0N~Vxlh6Ihtz^5-x4h)_KPaXo`12=FdC#N0Nb<_cXFNx=mt0|110o<34HdJD$S!Q!~asr2oP;N-+?ON>bC?VtR=cieF?mW-E@ zLPHl3h*Z9a*NA6TZr?&7Rny!pJlfxb56V7G-4mYX33U(<}<2OVzDfA3O z^aNaN`a8r1*lpUr)|cDtyGo$S_RiVEl=-^Zd{?nq3Tu6{3dCL8^!gYH?wz!g_1XM2 zLp=`we2_nN4gk1to#8Y9@ID@J3IO==7{GAywLr*8(3gv906@s(Ieq{@&Gqz20{9Ux zVbMFubv5Omjt$t*b|0R_42(}X7ObeA+!HjMVHI4Ga?@&k36?+fPJ<6u&_!QS?Uo<{ z79*KWH|h%Qk0@W3j+*wY6sKqrZO1X~p=3$~lbved!a2SEqh?o@kB z0AaLmhlRfli028~hSBv}=an80oh$@s9~QlB%0Ajmr&{^D_ktj9{t9bqllf<_E2Emp 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 E0D0yMK>z>% literal 0 HcmV?d00001 diff --git a/docs/images/startup-chat-tab.png b/docs/images/startup-chat-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..749e1ab63e959747501757728a401ea6595085d9 GIT binary patch literal 27891 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 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 612c7a5e0..b4672fbda 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1 +1,122 @@ ---8<-- "README.md" +# Getting Started with Kotaemon + +This page is intended for end users who want to use the `kotaemon` tool for Question Answering on local documents. + +## Download + +Download and upzip the latest version of `kotaemon` by clicking this +[link](https://github.com/Cinnamon/kotaemon/archive/refs/heads/main.zip). + +## Choose what model to use + +The tool uses Large Language Model (LLMs) to perform various tasks in a QA pipeline. So +prior to running, you need to provide the application with access to the LLMs you want +to use. + +Please edit the `.env` file with the information needed to connect to the LLMs. You only +need to provide at least one. However, tt is recommended that you include all the LLMs +that you have access to, you will be able to switch between them while using the +application. + +Currently, the following providers are supported: + +### OpenAI + +In the `.env` file, set the `OPENAI_API_KEY` variable with your OpenAI API key in order +to enable access to OpenAI's models. There are other variables that can be modified, +please feel free to edit them to fit your case. Otherwise, the default parameter should +work for most people. + +```shell +OPENAI_API_BASE=https://api.openai.com/v1 +OPENAI_API_KEY= +OPENAI_CHAT_MODEL=gpt-3.5-turbo +OPENAI_EMBEDDINGS_MODEL=text-embedding-ada-002 +``` + +### Azure OpenAI + +For OpenAI models via Azure platform, you need to provide your Azure endpoint and API +key. Your might also need to provide your developments' name for the chat model and the +embedding model depending on how you set up Azure development. + +```shell +AZURE_OPENAI_ENDPOINT= +AZURE_OPENAI_API_KEY= +OPENAI_API_VERSION=2024-02-15-preview +AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-35-turbo +AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=text-embedding-ada-002 +``` + +### Local models + +- Pros: + - Privacy. Your documents will be stored and process locally. + - Choices. There are a wide range of LLMs in terms of size, domain, language to choose + from. + - Cost. It's free. +- Cons: + - Quality. Local models are much smaller and thus have lower generative quality than + paid APIs. + - Speed. Local models are deployed using your machine so the processing speed is + limited by your hardware. + +#### Find and download a LLM + +You can search and download a LLM to be ran locally from the [Hugging Face +Hub](https://huggingface.co/models). Currently, these model formats are supported: + +- GGUF + +You should choose a model whose size is less than your device's memory and should leave +about 2 GB. For example, if you have 16 GB of RAM in total, of which 12 GB is available, +then you should choose a model that take up at most 10 GB of RAM. Bigger models tend to +give better generation but also take more processing time. + +Here are some recommendations and their size in memory: + +- [Qwen1.5-1.8B-Chat-GGUF](https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat-GGUF/resolve/main/qwen1_5-1_8b-chat-q8_0.gguf?download=true): + around 2 GB + +#### Enable local models + +To add a local model to the model pool, set the `LOCAL_MODEL` variable in the `.env` +file to the path of the model file. + +```shell +LOCAL_MODEL= +``` + +Here is how to get the full path of your model file: + +- On Windows 11: right click the file and select `Copy as Path`. + +## Installation + +1. Navigate to the `scripts` folder and start an installer that matches your OS: + - Windows: `run_windows.bat`. Just double click the file. + - macOS: `run_macos.sh` + 1. Right click on your file and select Open with and Other. + 2. Enable All Applications and choose Terminal. + 3. NOTE: If you always want to open that file with Terminal, then check Always Open With. + 4. From now on, double click on your file and it should work. + - Linux: `run_linux.sh`. If you are using Linux, you would know how to run a bash + script, right ? +2. After the installation, the installer will ask to launch the ktem's UI,answer to continue. +3. If launched, the application will be available at `http://localhost:7860/`. + +## Launch + +To launch the app after initial setup or any changes, simply run the `run_*` script again. + +A browser window will be opened and greet you with this screen: + +![Chat tab](images/startup-chat-tab.png) + +## Usage + +For how to use the application, see [Usage](/usage). Have fun ! + +## Feedback + +Feel free to create a bug report or a feature request or join a discussion at https://github.com/Cinnamon/kotaemon/issues. diff --git a/docs/overview.md b/docs/overview.md deleted file mode 100644 index 093adf8b5..000000000 --- a/docs/overview.md +++ /dev/null @@ -1,84 +0,0 @@ -## Introduction - -`kotaemon` library focuses on the AI building blocks to implement the Kotaemon. It can be used in both client project and in product development. It consists of base interfaces, core components and a list of utilities: - -- Base interfaces: `kotaemon` defines the base interface of a component in a pipeline. A pipeline is also a component. By clearly define this interface, a pipeline of steps can be easily constructed and orchestrated. -- Core components: `kotaemon` implements (or wraps 3rd-party libraries - like Langchain, llama-index,... when possible) commonly used components in - kotaemon use cases. Some of these components are: LLM, vector store, - document store, retriever... For a detailed list and description of these - components, please refer to the [API Reference](/reference/nav/) section. -- List of utilities: `lib-knowledge` provides utilities and tools that are - usually needed in client project. For example, it provides a prompt - engineering UI for AI developers in a project to quickly create a prompt - engineering tool for DMs and QALs. It also provides a command to quickly spin - up a project code base. For a full list and description of these utilities, - please refer to the [Tutorial/Utilities](/ultilities) section. - -```mermaid -mindmap - root((kotaemon)) - Base Interfaces - Document - LLMInterface - RetrievedDocument - BaseEmbeddings - BaseChat - BaseCompletion - ... - Core Components - LLMs - AzureOpenAI - OpenAI - Embeddings - AzureOpenAI - OpenAI - HuggingFaceEmbedding - VectorStore - InMemoryVectorstore - ChromaVectorstore - Agent - Tool - DocumentStore - ... - Utilities - Scaffold project - PromptUI - Documentation Support -``` - -## Expected benefit - -Before `kotaemon`: - -- Starting everything from scratch. -- Knowledge and expertise is fragmented. -- Nothing to reuse. -- No way to collaborate between tech and non-tech experts. - -`kotaemon` expects to completely revolutionize the way we are building LLM-related projects. It helps the company side-steps those issues by: - -- Standardize the interface to (1) make building LLM pipeline clearer (2) more reasonable to integrate pipelines between different projects. -- Centralize LLM-related technical components into 1 place. Avoid fragmented technology development. Easy to find the LLM-related technology inside the company. -- Centralize bug fixes and improvements in 1 place. -- Reduce boilerplate code during project development. -- Lightning fast prototyping. - -## Install - -The kotaemon can be installed from source with: - -``` -pip install kotaemon@git+ssh://git@github.com/Cinnamon/kotaemon.git -``` - -or from Cinnamon's internal python package index: - -``` -pip install kotaemon --extra-index-url https://ian_devpi.promptui.dm.cinnamon.is/root/packages -``` - -## Example use cases - -- Start a project from scratch: `kh start-project` -- Run prompt engineering UI tool: `kh promptui export`, then `kh promptui run`. diff --git a/docs/upload-package.md b/docs/upload-package.md deleted file mode 100644 index 14926a7ee..000000000 --- a/docs/upload-package.md +++ /dev/null @@ -1,24 +0,0 @@ -Devpi server endpoint (subjected to change): https://ian_devpi.promptui.dm.cinnamon.is/root/packages - -Install devpi-client - -```bash -pip install devpi-client -``` - -Login to the server - -```bash -devpi use # set server endpoint provided above -devpi login --password= # login -``` - -If you don't yet have an account, please contact Ian or John. - -Upload your package - -```bash -devpi use \dev # choose the index to upload your package -cd -devpi upload -``` diff --git a/docs/usage.md b/docs/usage.md new file mode 100644 index 000000000..806fd7839 --- /dev/null +++ b/docs/usage.md @@ -0,0 +1,59 @@ +# Basic Usage + +## Chat tab + +![chat tab](images/chat-tab.png) + +The chat tab is divided into 3 columns: + +- Left: Conversation settings +- Middle: Chat interface +- Right: Information panel + +### Conversation settings + +#### Conversation control + +Create, rename, and delete conversations. + +![covnerstaion control](images/converstaion-control.png) + +#### File index + +Choose which files to retrieve references from. If no file is selected, all files will be used. + +![file index](images/file-index.png) + +### Chat interface + +Interact with the chatbot. + +![chat interface](images/chat-interface.png) + +### Information panel + +Supporting information such as the retrieved evidence and reference will be displayed +here. + +![info panel](images/info-panel.png) + +## File index tab + +![file index tab](images/file-index-tab.png) + +### File upload + +In order for a file to be used as an index for retrieval, it must be processed by the +application first. Do this uploading your file to the UI and then select `Upload and Index`. + +![file upload](images/file-upload.png) + +The application will take some time to process the file and show a message once it is +done. Then you will be able to select it in the [File index section](#file-index) of the [Chat tab](#chat-tab). + +### File list + +This section shows the list of files that have been uploaded to the application and +allows users to delete them. + +![file-list](images/file-list.png) diff --git a/libs/kotaemon/pyproject.toml b/libs/kotaemon/pyproject.toml index 1ba69636f..e1e30280d 100644 --- a/libs/kotaemon/pyproject.toml +++ b/libs/kotaemon/pyproject.toml @@ -73,7 +73,7 @@ dev = [ all = ["kotaemon[adv,dev]"] [project.scripts] -kh = "kotaemon.cli:main" +kotaemon = "kotaemon.cli:main" [project.urls] Homepage = "https://github.com/Cinnamon/kotaemon/" diff --git a/libs/kotaemon/tests/test_agent.py b/libs/kotaemon/tests/test_agent.py index 06a89c435..0cc65fa52 100644 --- a/libs/kotaemon/tests/test_agent.py +++ b/libs/kotaemon/tests/test_agent.py @@ -224,8 +224,8 @@ def test_wrapper_agent_langchain(openai_completion, llm, mock_google_search): side_effect=_openai_chat_completion_responses_react_langchain_tool, ) def test_react_agent_with_langchain_tools(openai_completion, llm): - from langchain.tools import DuckDuckGoSearchRun, WikipediaQueryRun - from langchain.utilities import WikipediaAPIWrapper + from langchain_community.tools import DuckDuckGoSearchRun, WikipediaQueryRun + from langchain_community.utilities import WikipediaAPIWrapper wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper()) search = DuckDuckGoSearchRun() diff --git a/mkdocs.yml b/mkdocs.yml index fddd581e2..ce4284c61 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -6,8 +6,7 @@ edit_uri: edit/main/docs/ nav: - Getting Started: - Quick Start: index.md - - Overview: overview.md - - Contributing: contributing.md + - Basic Usage: usage.md - Application: - Features: pages/app/features.md - Index: @@ -20,15 +19,13 @@ nav: - Customize flow logic: pages/app/customize-flows.md - Customize UI: pages/app/customize-ui.md - Functional description: pages/app/functional-description.md - - Tutorial: - - Data & Data Structure Components: data-components.md - - Creating a Component: create-a-component.md - - Utilities: ultilities.md + - Development: + - Contributing: development/contributing.md + - Data & Data Structure Components: development/data-components.md + - Creating a Component: development/create-a-component.md + - Utilities: development/utilities.md # generated using gen-files + literate-nav - API Reference: reference/ - - Use Cases: examples/ - - Misc: - - Upload python package to private index: upload-package.md markdown_extensions: - admonition @@ -59,7 +56,6 @@ plugins: - gen-files: scripts: - docs/scripts/generate_reference_docs.py - - docs/scripts/generate_examples_docs.py - literate-nav: nav_file: NAV.md - mkdocstrings: