Update readme

This commit is contained in:
Andras Schmelczer 2022-07-11 17:27:45 +02:00
parent fb601dfba1
commit 44e5b66e2d
No known key found for this signature in database
GPG key ID: 0EA1BC97D0AB076E
2 changed files with 47 additions and 31 deletions

View file

@ -1,33 +1,21 @@
# ![logo](docs/media/favicon.ico) GreatAI
> GreatAI helps you easily transform your prototype AI code into production-ready software.
[![Sonar line coverage](https://sonar.scoutinscience.com/api/project_badges/measure?project=great-ai&metric=coverage)](https://sonar.scoutinscience.com/dashboard?id=great-ai)
[![Sonar technical debt](https://sonar.scoutinscience.com/api/project_badges/measure?project=great-ai&metric=sqale_index)](https://sonar.scoutinscience.com/dashboard?id=great-ai)
[![Sonar LoC](https://sonar.scoutinscience.com/api/project_badges/measure?project=great-ai&metric=ncloc)](https://sonar.scoutinscience.com/dashboard?id=great-ai)
[![Test](https://github.com/schmelczer/great-ai/actions/workflows/test.yml/badge.svg)](https://github.com/schmelczer/great-ai/actions/workflows/test.yml)
[![Publish on PyPI](https://github.com/schmelczer/great-ai/actions/workflows/publish.yaml/badge.svg)](https://github.com/schmelczer/great-ai/actions/workflows/publish.yaml)
[![Publish on DockerHub](https://github.com/schmelczer/great-ai/actions/workflows/docker.yaml/badge.svg)](https://github.com/schmelczer/great-ai/actions/workflows/docker.yaml)
[![PyPI version](https://badge.fury.io/py/great-ai.svg)](https://badge.fury.io/py/great-ai)
[![Downloads](https://pepy.tech/badge/great-ai/month)](https://pepy.tech/project/great-ai)
![Docker Pulls](https://img.shields.io/docker/pulls/schmelczera/great-ai)
[Check out the documentation here](https://great-ai.scoutinscience.com/).
## Find `great-ai` on [DockerHub](https://hub.docker.com/repository/docker/schmelczera/great-ai)
```sh
docker run -p6060:6060 schmelczera/great-ai
```
Find the dashboard at [http://localhost:6060](http://localhost:6060/dashboard/).
## Find `great-ai` on [PyPI](https://pypi.org/project/great-ai/)
GreatAI helps you easily transform your prototype AI code into production-ready software.
[Check out the full documentation here](https://great-ai.scoutinscience.com).
```sh
pip install great-ai
```
> Create a new file called `main.py`
```python
from great_ai import GreatAI
@ -35,19 +23,46 @@ from great_ai import GreatAI
def hello_world(name: str) -> str:
return f"Hello {name}!"
```
> Create a new file called `main.py`
Deploy by executing `great-ai main.py`
> Or: `great_ai main.py`
Start it by executing `great-ai main.py`, find the dashboard at [http://localhost:6060](http://localhost:6060/dashboard).
> Or: `python3 -m great_ai main.py`
![dashboard](/docs/media/hello-world-dashboard.png)
Find the dashboard at [http://localhost:6060](http://localhost:6060/dashboard/).
That's it. Your GreatAI service is ready for production use. Many of the [SE4ML best-practices](https://se-ml.github.io) are configured and implemented automatically (of course, these can be customised as well).
### Contribute
## Why is this GREAT?
![scope of GreatAI](docs/media/scope-simple.drawio.svg)
#### Install
GreatAI fits between the prototype and deployment phases of your (or your organisation's) AI development lifecycle. This is highlighted with blue in the diagram. Here, a number of best practices can be automatically implemented aiming to achieve the following attributes:
- **G**eneral: use any Python library without restriction
- **R**obust: have error-handling and well-tested utilities out-of-the-box
- **E**nd-to-end: utilise end-to-end feedback as a built-in, first-class concept
- **A**utomated: focus only on what actually requires your attention
- **T**rustworthy: deploy models that you and society can confidently trust
## Why GreatAI?
There are other, existing solutions aiming to facilitate this phase. [Amazon SageMaker](https://aws.amazon.com/sagemaker) and [Seldon Core](https://www.seldon.io/solutions/open-source-projects/core) provide the most comprehensive suite of features. If you have the opportunity use those, do that because they're great.
However, [research indicates](https://great-ai.scoutinscience.com) that professionals rarely use them. This may be due to their inherent setup and operating complexity. **GreatAI is designed to be as simple to use as possible.** Its clear, high-level API and sensible default configuration makes it extremely easy to start using. Despite its relative simplicity over Seldon Core, it still implements many of the [SE4ML best-practices](https://se-ml.github.io), and thus, can meaningfully improve your deployment without requiring prohibitively large effort.
## Find `great-ai` on [DockerHub](https://hub.docker.com/repository/docker/schmelczera/great-ai)
```sh
docker run -p6060:6060 schmelczera/great-ai
```
## Learn more
[Check out the documentation](https://great-ai.scoutinscience.com).
## Contribute
Contributions are welcome.
### Install for development
```sh
python3 -m venv --copies .env
@ -56,8 +71,8 @@ python3 -m pip install flit
python3 -m flit install --symlink --deps=all
```
#### Documentation
### Serve documentation
```sh
mkdocs serve --dirtyreload
```
```

View file

@ -4,12 +4,12 @@
</div>
[![Sonar line coverage](https://sonar.scoutinscience.com/api/project_badges/measure?project=great-ai&metric=coverage)](https://sonar.scoutinscience.com/dashboard?id=great-ai)
[![Sonar technical debt](https://sonar.scoutinscience.com/api/project_badges/measure?project=great-ai&metric=sqale_index)](https://sonar.scoutinscience.com/dashboard?id=great-ai)
[![Sonar LoC](https://sonar.scoutinscience.com/api/project_badges/measure?project=great-ai&metric=ncloc)](https://sonar.scoutinscience.com/dashboard?id=great-ai)
[![Test](https://github.com/schmelczer/great-ai/actions/workflows/test.yml/badge.svg)](https://github.com/schmelczer/great-ai/actions/workflows/test.yml)
[![Publish on PyPI](https://github.com/schmelczer/great-ai/actions/workflows/publish.yaml/badge.svg)](https://github.com/schmelczer/great-ai/actions/workflows/publish.yaml)
[![Publish on DockerHub](https://github.com/schmelczer/great-ai/actions/workflows/docker.yaml/badge.svg)](https://github.com/schmelczer/great-ai/actions/workflows/docker.yaml)
[![PyPI version](https://badge.fury.io/py/great-ai.svg)](https://badge.fury.io/py/great-ai)
[![Downloads](https://pepy.tech/badge/great-ai/month)](https://pepy.tech/project/great-ai)
![Docker Pulls](https://img.shields.io/docker/pulls/schmelczera/great-ai)
Applying AI is becoming increasingly easier but many case studies have shown that these applications are often deployed poorly. This may lead to suboptimal performance and to introducing [unintended biases](https://en.wikipedia.org/wiki/Weapons_of_Math_Destruction){ target=_blank }. GreatAI helps fixing this by allowing you to ==easily transform your prototype AI code into production-ready software==.
@ -42,6 +42,7 @@ Applying AI is becoming increasingly easier but many case studies have shown tha
- [x] Deployable Jupyter Notebooks
- [x] Dashboard for high-level overview and analysing traces
- [ ] Support for direct file input
- [ ] Support for PostgreSQL
## Hello world
@ -85,7 +86,7 @@ great-ai hello-world.py
![scope of GreatAI](media/scope-simple.drawio.svg)
GreatAI fits between the prototype and deployment phase of your (or your organisation's) AI development lifecycle. This is highlighted with blue in the diagram. Here, a number of best practices can be automatically implemented aiming to achieve the following attributes:
GreatAI fits between the prototype and deployment phases of your (or your organisation's) AI development lifecycle. This is highlighted with blue in the diagram. Here, a number of best practices can be automatically implemented aiming to achieve the following attributes:
- **G**eneral: use any Python library without restriction
- **R**obust: have error-handling and well-tested utilities out-of-the-box