Improve readme add og-image
This commit is contained in:
parent
dc1a36edac
commit
ce19e5f05a
7 changed files with 62 additions and 27 deletions
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
|
|
@ -1,4 +1,4 @@
|
||||||
name: "Analyse withCodeQL"
|
name: analyse with CodeQL
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
|
|
||||||
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
|
|
@ -2,6 +2,7 @@
|
||||||
"cSpell.words": [
|
"cSpell.words": [
|
||||||
"alru",
|
"alru",
|
||||||
"Analyse",
|
"Analyse",
|
||||||
|
"András",
|
||||||
"basereload",
|
"basereload",
|
||||||
"boto",
|
"boto",
|
||||||
"botocore",
|
"botocore",
|
||||||
|
|
@ -75,5 +76,6 @@
|
||||||
"python.linting.pylintEnabled": false,
|
"python.linting.pylintEnabled": false,
|
||||||
"python.linting.mypyEnabled": true,
|
"python.linting.mypyEnabled": true,
|
||||||
"python.testing.unittestEnabled": false,
|
"python.testing.unittestEnabled": false,
|
||||||
"python.testing.pytestEnabled": true
|
"python.testing.pytestEnabled": true,
|
||||||
|
"editor.wordWrap": "on"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
36
README.md
36
README.md
|
|
@ -1,15 +1,19 @@
|
||||||
#  GreatAI
|
# <img src="https://github.com/schmelczer/great-ai/blob/main/docs/media/logo.png" alt="logo of great-ai" width=60 /> GreatAI
|
||||||
|
> Easily transform your prototype AI code into production-ready software.
|
||||||
|
|
||||||
[](https://sonar.scoutinscience.com/dashboard?id=great-ai)
|
|
||||||
[](https://sonar.scoutinscience.com/dashboard?id=great-ai)
|
|
||||||
[](https://github.com/schmelczer/great-ai/actions/workflows/test.yml)
|
|
||||||
[](https://badge.fury.io/py/great-ai)
|
[](https://badge.fury.io/py/great-ai)
|
||||||
[](https://pepy.tech/project/great-ai)
|
[](https://pepy.tech/project/great-ai)
|
||||||

|

|
||||||
|
[](https://github.com/schmelczer/great-ai/actions/workflows/test.yml)
|
||||||
|
[](https://sonar.scoutinscience.com/dashboard?id=great-ai)
|
||||||
|
[](https://sonar.scoutinscience.com/dashboard?id=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. GreatAI helps fixing this by allowing you to easily transform your prototype AI code into production-ready software.
|
||||||
|
|
||||||
GreatAI helps you easily transform your prototype AI code into production-ready software.
|
|
||||||
[Check out the full documentation here](https://great-ai.scoutinscience.com).
|
[Check out the full documentation here](https://great-ai.scoutinscience.com).
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
pip install great-ai
|
pip install great-ai
|
||||||
```
|
```
|
||||||
|
|
@ -34,7 +38,7 @@ That's it. Your GreatAI service is ready for production use. Many of the [SE4ML
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
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:
|
GreatAI fits between the prototype and deployment phases of your 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
|
- **G**eneral: use any Python library without restriction
|
||||||
- **R**obust: have error-handling and well-tested utilities out-of-the-box
|
- **R**obust: have error-handling and well-tested utilities out-of-the-box
|
||||||
|
|
@ -48,16 +52,16 @@ There are other, existing solutions aiming to facilitate this phase. [Amazon Sag
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
## Learn more
|
||||||
|
|
||||||
|
[Check out the documentation](https://great-ai.scoutinscience.com).
|
||||||
|
|
||||||
## Find `great-ai` on [DockerHub](https://hub.docker.com/repository/docker/schmelczera/great-ai)
|
## Find `great-ai` on [DockerHub](https://hub.docker.com/repository/docker/schmelczera/great-ai)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker run -p6060:6060 schmelczera/great-ai
|
docker run -p6060:6060 schmelczera/great-ai
|
||||||
```
|
```
|
||||||
|
|
||||||
## Learn more
|
|
||||||
|
|
||||||
[Check out the documentation](https://great-ai.scoutinscience.com).
|
|
||||||
|
|
||||||
## Contribute
|
## Contribute
|
||||||
|
|
||||||
Contributions are welcome.
|
Contributions are welcome.
|
||||||
|
|
@ -67,12 +71,18 @@ Contributions are welcome.
|
||||||
```sh
|
```sh
|
||||||
python3 -m venv --copies .env
|
python3 -m venv --copies .env
|
||||||
source .env/bin/activate
|
source .env/bin/activate
|
||||||
python3 -m pip install flit
|
pip install flit
|
||||||
python3 -m flit install --symlink --deps=all
|
flit install --symlink --deps=all
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run tests
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pytest --doctest-modules --asyncio-mode=strict
|
||||||
```
|
```
|
||||||
|
|
||||||
### Serve documentation
|
### Serve documentation
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
mkdocs serve --dirtyreload
|
mkdocs serve
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,12 @@
|
||||||
<img src="media/logo.png" width=80>
|
<img src="media/logo.png" width=80>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
[](https://sonar.scoutinscience.com/dashboard?id=great-ai)
|
|
||||||
[](https://sonar.scoutinscience.com/dashboard?id=great-ai)
|
|
||||||
[](https://github.com/schmelczer/great-ai/actions/workflows/test.yml)
|
|
||||||
[](https://badge.fury.io/py/great-ai)
|
[](https://badge.fury.io/py/great-ai)
|
||||||
[](https://pepy.tech/project/great-ai)
|
[](https://pepy.tech/project/great-ai)
|
||||||

|

|
||||||
|
[](https://github.com/schmelczer/great-ai/actions/workflows/test.yml)
|
||||||
|
[](https://sonar.scoutinscience.com/dashboard?id=great-ai)
|
||||||
|
[](https://sonar.scoutinscience.com/dashboard?id=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==.
|
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==.
|
||||||
|
|
||||||
|
|
@ -32,7 +31,7 @@ Applying AI is becoming increasingly easier but many case studies have shown tha
|
||||||
- [x] Input validation
|
- [x] Input validation
|
||||||
- [x] Sensible cache-policy
|
- [x] Sensible cache-policy
|
||||||
- [x] Seamless support for both synchronous and `async` inference methods
|
- [x] Seamless support for both synchronous and `async` inference methods
|
||||||
- [x] Easy integration with other remote GreatAI instances
|
- [x] Easy integration with remote GreatAI instances
|
||||||
- [x] Built-in parallelisation (with support for multiprocessing, async, and mixed modes) for batch processing
|
- [x] Built-in parallelisation (with support for multiprocessing, async, and mixed modes) for batch processing
|
||||||
- [x] Well-tested utilities for common NLP tasks (cleaning, language-tagging, sentence-segmentation, etc.)
|
- [x] Well-tested utilities for common NLP tasks (cleaning, language-tagging, sentence-segmentation, etc.)
|
||||||
- [x] A simple, unified configuration interface
|
- [x] A simple, unified configuration interface
|
||||||
|
|
@ -41,6 +40,11 @@ Applying AI is becoming increasingly easier but many case studies have shown tha
|
||||||
- [x] Docker support for deployment
|
- [x] Docker support for deployment
|
||||||
- [x] Deployable Jupyter Notebooks
|
- [x] Deployable Jupyter Notebooks
|
||||||
- [x] Dashboard for high-level overview and analysing traces
|
- [x] Dashboard for high-level overview and analysing traces
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
|
||||||
|
- [ ] Prometheus & Grafana integration
|
||||||
|
- [ ] Well-tested feature extraction code for non-NLP data
|
||||||
- [ ] Support for direct file input
|
- [ ] Support for direct file input
|
||||||
- [ ] Support for PostgreSQL
|
- [ ] Support for PostgreSQL
|
||||||
|
|
||||||
|
|
@ -66,7 +70,7 @@ def hello_world(name: str) -> str: #(2)
|
||||||
2. [Typing functions](https://docs.python.org/3/library/typing.html){ target=_blank } is recommended in general, however, not required for GreatAI to work.
|
2. [Typing functions](https://docs.python.org/3/library/typing.html){ target=_blank } is recommended in general, however, not required for GreatAI to work.
|
||||||
|
|
||||||
??? note
|
??? note
|
||||||
In practice, `hello_world` could be an inference function of some AI/ML application. But it could also just wrap a black-box solution of some SaaS. Either ways, it is imperative to have continuos oversight of the services you provide and data you process.
|
In practice, `hello_world` could be an inference function of some AI/ML application. But it could also just wrap a black-box solution of some SaaS. Either ways, it is [imperative to have continuos oversight](https://digital-strategy.ec.europa.eu/en/library/ethics-guidelines-trustworthy-ai){ target=_blank } of the services you provide and data you process especially in the context of AI/ML applications.
|
||||||
|
|
||||||
```sh title="terminal"
|
```sh title="terminal"
|
||||||
great-ai hello-world.py
|
great-ai hello-world.py
|
||||||
|
|
@ -98,18 +102,20 @@ GreatAI fits between the prototype and deployment phases of your (or your organi
|
||||||
|
|
||||||
There are other, existing solutions aiming to facilitate this phase. [Amazon SageMaker](https://aws.amazon.com/sagemaker){ target=_blank } and [Seldon Core](https://www.seldon.io/solutions/open-source-projects/core){ target=_blank } provide the most comprehensive suite of features. If you have the opportunity use those, do that because they're great.
|
There are other, existing solutions aiming to facilitate this phase. [Amazon SageMaker](https://aws.amazon.com/sagemaker){ target=_blank } and [Seldon Core](https://www.seldon.io/solutions/open-source-projects/core){ target=_blank } provide the most comprehensive suite of features. If you have the opportunity use those, do that because they're great.
|
||||||
|
|
||||||
However, research indicates 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){ target=_blank }, and thus, can meaningfully improve your deployment without requiring prohibitively large effort.
|
However, research indicates 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){ target=_blank }, and thus, can meaningfully improve your deployment without requiring prohibitively large effort.
|
||||||
|
|
||||||
|
|
||||||
<div style="display: flex; justify-content: space-evenly;" markdown>
|
<div style="display: flex; justify-content: space-evenly; flex-wrap: wrap;" markdown>
|
||||||
[:fontawesome-brands-python: Find it on PyPI](https://pypi.org/project/great-ai){ .md-button .md-button--primary }
|
[:fontawesome-brands-python: Find it on PyPI](https://pypi.org/project/great-ai){ .md-button .md-button--primary }
|
||||||
|
|
||||||
[:fontawesome-brands-docker: Find it on DockerHub](https://hub.docker.com/repository/docker/schmelczera/great-ai){ .md-button .md-button--primary }
|
[:fontawesome-brands-docker: Find it on DockerHub](https://hub.docker.com/repository/docker/schmelczera/great-ai){ .md-button .md-button--primary }
|
||||||
|
|
||||||
|
[:fontawesome-solid-laptop-code: Check out the tutorial](/tutorial){ .md-button .md-button--primary }
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## Production use
|
## Production use
|
||||||
|
|
||||||
GreatAI has been battle-tested on the core platform services of [ScoutinScience](https://www.scoutinscience.com/){ target=_blank }.
|
GreatAI has been battle-tested on the core platform services of [ScoutinScience](https://www.scoutinscience.com/){ target=_blank }.
|
||||||
|
|
||||||
{ loading=lazy }
|
[{ loading=lazy }
|
||||||
{ loading=lazy }
|
{ loading=lazy }](https://www.scoutinscience.com/){ target=_blank }
|
||||||
|
|
|
||||||
BIN
docs/media/og-image.png
Normal file
BIN
docs/media/og-image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
|
|
@ -1,6 +1,22 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block extrahead %}
|
||||||
|
<meta property="og:title" content="">
|
||||||
|
<meta property="og:site_name" content="">
|
||||||
|
<meta property="og:url" content="">
|
||||||
|
<meta property="og:description" content="Transform your prototype AI code into production-ready software.">
|
||||||
|
<meta property="og:type" content="">
|
||||||
|
<meta property="og:image" content=https://great-ai.scoutinscience.com/media/og-image.png>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.jupyter-wrapper a {
|
||||||
|
color: var(--md-typeset-a-color) !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
{% if page.nb_url %}
|
{% if page.nb_url %}
|
||||||
<a href="{{ page.nb_url }}" title="Download Notebook" class="md-content__button md-icon">
|
<a href="{{ page.nb_url }}" title="Download Notebook" class="md-content__button md-icon">
|
||||||
{% include ".icons/material/download.svg" %}
|
{% include ".icons/material/download.svg" %}
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,8 @@ dev = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
Homepage = "https://github.com/schmelczer/great-ai"
|
Documentation = "https://great-ai.scoutinscience.com"
|
||||||
|
GitHub = "https://github.com/schmelczer/great-ai"
|
||||||
DockerHub = "https://hub.docker.com/repository/docker/schmelczera/great-ai"
|
DockerHub = "https://hub.docker.com/repository/docker/schmelczera/great-ai"
|
||||||
|
|
||||||
[project.scripts]
|
[project.scripts]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue