usaidwat 4.1.0

Answers the age-old question, "Where does a Redditor comment the most?"
Documentation
usaidwat
========

Are you a Redditor? Do you want to view the subreddits in which a particular
user commonly posts? If you answered "yes" to all three of these questions,
then **usaidwat** is the crate for you!

Installation
------------

**usaidwat** can be installed via Cargo:

    $ cargo install usaidwat

Usage
-----

A `usaidwat` binary is installed with the crate. `usaidwat` will analyze a
user's last 100 comments and provide statistics.

To list a Redditor's comments, use the `log` subcommand:

    $ usaidwat log reddit_user

To list a count of subreddits in which a user has posted, use the `tally`
subcommand:

    $ usaidwat tally reddit_user

You will see output like the following:

```
apple              6
AskReddit         61
battlefield3       2
books              2
django             1
Games              1
nyc                1
personalfinance    1
photography        1
programming       20
redditcasual       1
wikipedia          1
worldnews          2
```

Which indicates that reddit_user has commented in `/r/AskReddit` 61 times (out of
their last 100 comments).

To see the comments for a specific subreddit, tack on that subreddit:

    $ usaidwat log reddit_user AskReddit

All the comments for the given subreddit will be printed.

And with the power of artificial "intelligence", you can get a quick summary
of a user's last 100 comments, along with a tone and sentiment analysis, to
let you quickly ascertain if the Redditor is a jerk!

    $ usaidwat summary reddit_user

There are many more commands available; run `usaidwat -h` to see a complete
listing.

OpenAI Setup
------------

The `summary` command sends a Redditor's comment history to OpenAI for
summarization, as well as tone and sentiment analysis:

    $ usaidwat summary reddit_user

To use this feature, you must have access to OpenAI's API.

To enable access:

1. Set up an [OpenAI API account].
2. Generate an [API key].
3. Copy and paste the generated key.
4. Store the generated key in your shell's `$OPENAI_API_KEY` environment 
   variable. Follow your shell's procedure for configuring environment
   variables, but generally this involves running

   ```bash
   $ export OPENAI_API_KEY='copied api key'
   ```

   In your shell session or in your shell's configuration ("rc") file
   (e.g., `~/.bashrc` or `~/.zshrc`).

**You are responsible for the costs of your use of OpenAI's API!**
See the [openai module documentation] for more information on the cost of
using the OpenAI API.

By default, `usaidwat summary` will use the [cheapest OpenAI model] available;
see `usaidwat summary -h` for other options.

**usaidwat** currently only works with OpenAI, although more providers may be
enabled in the future.

Testing
-------

Test suites can be run with Cargo:

    $ cargo test

License
-------

usaidwat is licensed under the terms of the [Apache License 2.0]. Please
see the LICENSE file accompanying this source code or visit the previous
link for more information on licensing.

A note on versioning...
-----------------------

usaidwat is both an application and a library. Using it as an application is
much more common than incorporating it into another application as a library,
so its version number reflects that use case; that is, the major version
number (the first component) reflects an _epoch_ of the application and is
only incremented when there is a major new feature. Thus the _library_
portion does not completely adhere to [SemVer] guidelines: a minor version
update may not be backwards compatible. If you are incorporating usaidwat
into your application as a library, you should consider that minor version
bumps _may_ be backwards incompatible and define your version constraints
accordingly.

[Apache License 2.0]: https://www.apache.org/licenses/LICENSE-2.0
[API key]: https://platform.openai.com/settings/organization/api-keys
[OpenAI API account]: https://platform.openai.com/docs/overview
[SemVer]: https://semver.org/
[openai module documentation]: https://docs.rs/cogito-openai
[cheapest OpenAI model]: https://docs.rs/cogito/latest/cogito/trait.AIModel.html#tymethod.cheapest