From 544bf0bf069973a5b65e1e537a8863a36a66a7e5 Mon Sep 17 00:00:00 2001 From: Oleksandr Kozachuk Date: Tue, 12 Sep 2023 16:34:39 +0200 Subject: [PATCH] Improve README.md --- README.md | 116 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index d55102a..00f4720 100644 --- a/README.md +++ b/README.md @@ -37,63 +37,95 @@ cmm [global options] command [command options] ### Global Options -- `-c`, `--config`: Config file name (defaults to `.config.yaml`). - -### Commands - -- `ask`: Ask a question. -- `hist`: Print chat history. -- `tag`: Manage tags. -- `config`: Manage configuration. -- `print`: Print files. +- `-C`, `--config`: Config file name (defaults to `.config.yaml`). ### Command Options -#### `ask` Command Options +#### Question -- `-q`, `--question`: Question to ask (required). -- `-m`, `--max-tokens`: Max tokens to use. -- `-T`, `--temperature`: Temperature to use. -- `-M`, `--model`: Model to use. -- `-n`, `--number`: Number of answers to produce (default is 3). -- `-s`, `--source`: Add content of a file to the query. -- `-S`, `--only-source-code`: Add pure source code to the chat history. -- `-t`, `--tags`: List of tag names. -- `-e`, `--extags`: List of tag names to exclude. -- `-o`, `--output-tags`: List of output tag names (default is the input tags). -- `-a`, `--match-all-tags`: All given tags must match when selecting chat history entries. +The `question` command is used to ask, create, and process questions. -#### `hist` Command Options +```bash +cmm question [-t OTAGS]... [-k ATAGS]... [-x XTAGS]... [-o OUTTAGS]... [-A AI] [-M MODEL] [-n NUM] [-m MAX] [-T TEMP] (-a ASK | -c CREATE | -r REPEAT | -p PROCESS) [-O] [-s SOURCE]... [-S SOURCE]... +``` -- `-d`, `--dump`: Print chat history as Python structure. -- `-w`, `--with-tags`: Print chat history with tags. -- `-W`, `--with-files`: Print chat history with filenames. -- `-S`, `--only-source-code`: Print only source code. -- `-t`, `--tags`: List of tag names. -- `-e`, `--extags`: List of tag names to exclude. -- `-a`, `--match-all-tags`: All given tags must match when selecting chat history entries. +* `-t, --or-tags OTAGS` : List of tags (one must match) +* `-k, --and-tags ATAGS` : List of tags (all must match) +* `-x, --exclude-tags XTAGS` : List of tags to exclude +* `-o, --output-tags OUTTAGS` : List of output tags (default: use input tags) +* `-A, --AI AI` : AI ID to use +* `-M, --model MODEL` : Model to use +* `-n, --num-answers NUM` : Number of answers to request +* `-m, --max-tokens MAX` : Max. number of tokens +* `-T, --temperature TEMP` : Temperature value +* `-a, --ask ASK` : Ask a question +* `-c, --create CREATE` : Create a question +* `-r, --repeat REPEAT` : Repeat a question +* `-p, --process PROCESS` : Process existing questions +* `-O, --overwrite` : Overwrite existing messages when repeating them +* `-s, --source-text SOURCE` : Add content of a file to the query +* `-S, --source-code SOURCE` : Add source code file content to the chat history -#### `tag` Command Options +#### Hist -- `-l`, `--list`: List all tags and their frequency. +The `hist` command is used to print the chat history. -#### `config` Command Options +```bash +cmm hist [-t OTAGS]... [-k ATAGS]... [-x XTAGS]... [-w] [-W] [-S] [-A ANSWER] [-Q QUESTION] +``` -- `-l`, `--list-models`: List all available models. -- `-m`, `--print-model`: Print the currently configured model. -- `-M`, `--model`: Set model in the config file. +* `-t, --or-tags OTAGS` : List of tags (one must match) +* `-k, --and-tags ATAGS` : List of tags (all must match) +* `-x, --exclude-tags XTAGS` : List of tags to exclude +* `-w, --with-tags` : Print chat history with tags +* `-W, --with-files` : Print chat history with filenames +* `-S, --source-code-only` : Print only source code +* `-A, --answer ANSWER` : Search for answer substring +* `-Q, --question QUESTION` : Search for question substring -#### `print` Command Options +#### Tags -- `-f`, `--file`: File to print (required). -- `-S`, `--only-source-code`: Print only source code. +The `tags` command is used to manage tags. + +```bash +cmm tags (-l | -p PREFIX | -c CONTENT) +``` + +* `-l, --list` : List all tags and their frequency +* `-p, --prefix PREFIX` : Filter tags by prefix +* `-c, --contain CONTENT` : Filter tags by contained substring + +#### Config + +The `config` command is used to manage the configuration. + +```bash +cmm config (-l | -m | -c CREATE) +``` + +* `-l, --list-models` : List all available models +* `-m, --print-model` : Print the currently configured model +* `-c, --create CREATE` : Create config with default settings in the given file + +#### Print + +The `print` command is used to print message files. + +```bash +cmm print -f FILE [-q | -a | -S] +``` + +* `-f, --file FILE` : File to print +* `-q, --question` : Print only question +* `-a, --answer` : Print only answer +* `-S, --only-source-code` : Print only source code ### Examples 1. Ask a question: ```bash -cmm ask -q "What is the meaning of life?" -t philosophy -e religion +cmm question -a "What is the meaning of life?" -t philosophy -x religion ``` 2. Display the chat history: @@ -105,19 +137,19 @@ cmm hist 3. Filter chat history by tags: ```bash -cmm hist -t tag1 tag2 +cmm hist --or-tags tag1 tag2 ``` 4. Exclude chat history by tags: ```bash -cmm hist -e tag3 tag4 +cmm hist --exclude-tags tag3 tag4 ``` 5. List all tags and their frequency: ```bash -cmm tag -l +cmm tags -l ``` 6. Print the contents of a file: