EveryAI intends to provide a unified interface to multiple AI services, offering a single API that consuming applications can use without needing to know the specifics of the underlying service.
Currently the supported backends are:
- OpenAI (chat and embeddings)
- Anthropic (chat only)
To reate an instance of an EveryAI backend, use the init
function:
import every_ai
backend = every_ai.init("openai")
Once you have a backend, you have access to methods depending on backend:
response = backend.chat("Tell me a joke")
embedding = backend.embed(["Embed this content"])
The OpenAI backend supports both chat completions and embeddings. It can be initialised with a dictionary containing the following settings:
api_key
(required) - Your OpenAI API keychat_model
(default:gpt-3.5-turbo
) - The OpenAI model to be used for chat completions, e.g.gpt-4
,gpt-3.5-turbo
.embedding_model
(default:text-embedding-ada-002
) - The OpenAI model to be used for embeddings.
For example, to customise the OpenAI backend to use GPT4:
import every_ai
backend = every_ai.init("openai", api_key="foo-bar-baz", chat_model="gpt-4")
The Antrophic backend only supports chat completions. It can be initialised with a dictionary containing the following settings:
api_key
(required) - Your Anthropic API keychat_model
(default:claude-instant-1
) - The Anthropic model to be used for chat completions, e.g.claude-instant-1
,claude-2
.
For example, to customise the Anthropic backend to use claude-2
:
import every_ai
backend = every_ai.init("anthropic", api_key="foo-bar-baz", chat_model="claude-2")
To make changes to this project, first clone this repository:
git clone https://github.com/tomusher/every-ai.git
cd every-ai
With your preferred virtualenv activated, install testing dependencies:
python -m pip install --upgrade pip>=21.3
python -m pip install -e .[testing] -U
python -m pip install flit
flit install
Note that this project uses pre-commit. It is included in the project testing requirements. To set up locally:
# go to the project directory
$ cd every-ai
# initialize pre-commit
$ pre-commit install
# Optional, run all checks once for this, then the checks will run only on the changed files
$ git ls-files --others --cached --exclude-standard | xargs pre-commit run --files
Now you can run tests as shown below:
tox
or, you can run them for a specific environment tox -e python3.8
or specific test
tox -e python3.9 every-ai.tests.test_file.TestClass.test_method
To run the test app interactively, use tox -e interactive
, visit https://127.0.0.1:8020/admin/
and log in with admin
/changeme
.