The Official Python Library for the ShuttleAI API
The ShuttleAI Python library provides easy access to the ShuttleAI REST API for Python 3.9+ applications. It includes type definitions for all request parameters and response fields, offering both synchronous and asynchronous clients powered by httpx and aiohttp, respectively.
We prioritize performance optimizations across the library. Beyond using orjson for near-instant JSON processing, we implement various techniques to reduce overhead and enhance speed, ensuring efficient and swift API interactions. These optimizations include minimizing built-in library usage, leveraging reusable aiohttp client sessions, and incorporating several small adjustments to streamline operations.
Installation
pip install shuttleai
We recommend using --upgrade or -U to ensure you have the latest version of the library.
From Source
This client uses poetry as a dependency and virtual environment manager.
You can install poetry with
pip install poetry
poetry will set up a virtual environment and install dependencies with the following command:
poetry install
Getting Started
Below is a non-streamed sync and async example for the ShuttleAI API. You can find more examples in the examples/ directory.
Synchronous Client
from shuttleai import ShuttleAI
shuttleai = ShuttleAI()
response = shuttleai.chat.completions.create(
model="shuttle-3",
messages=[{"role": "user", "content": "What day is today?"}],
internet=False
)
print(chunk.choices[0].message.content)
Asynchronous Client
import asyncio
from shuttleai import AsyncShuttleAI
async def main():
shuttleai = AsyncShuttleAI()
response = await shuttleai.chat.completions.create(
model="shuttle-3",
messages=[{"role": "user", "content": "Imagine an AI like no other, its name is ShuttleAI."}],
)
print(response.choices[0].message.content)
asyncio.run(main())
ShuttleAI CLI
Scroll down to the Scripts section for more information.
Run examples
You can run the examples in the examples/ directory using poetry run or by entering the virtual environment using poetry shell.
Using poetry run
cd examples
poetry run python chat_no_streaming.py
Using poetry shell
poetry shell
cd examples
>> python chat_no_streaming.py
API Key Setup
To use the ShuttleAI API, you need to have an API key. You can get a FREE API key by signing up at shuttleai.com and heading to the key management page.
After you have an API key, you can set it as an environment variable:
Windows
setx SHUTTLEAI_API_KEY "<your_api_key>"
[!Note] This will only work in the current terminal session. To set it permanently, you can use the
setxcommand with the/mflag.
setx SHUTTLEAI_API_KEY "<your_api_key>" /m
macOS/Linux
export SHUTTLEAI_API_KEY=<your_api_key>
Contribution
We welcome and appreciate contributions to the ShuttleAI API Python SDK. Please see the contribution guide for more information. Benefits may apply! :smile:
Scripts
Formatting/Checks
poetry run ruff check shuttleai- Check ruffpoetry run black shuttleai --diff --color- Check blackpoetry run black shuttleai- Format codepoetry run mypy shuttleai- Check for type errors
Tools
poetry run clean- Clean up the project directorypoetry run key- Display your default API key (if set by environment variable)poetry run contr- Display contributors
ShuttleAI CLI
poetry run shuttleaiorshuttleai- Run the ShuttleAI CLI.
[!Important] We support auto TAB completion of commands and model names! Just press
TAB!
Metadata
Release files for shuttleai 4.9.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| shuttleai-4.9.3.tar.gz | 696.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shuttleai-4.9.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 735.0 kB
Release files / shuttleai-4.9.3.tar.gz
| Download URL | shuttleai-4.9.3.tar.gz |
|---|---|
| Size | 696.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0fbc6a398ba9b1a1690b44b75edd8ecdd35dc9ebf66fd50dfbd7f1ae56cb4392
|
|
BLAKE2b-256 checksum How to use checksums |
d3abfb123552f89737ae7e7db73452f24bba8a61e8f4599240526ff71524981e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / shuttleai-4.9.3-py3-none-any.whl
| Download URL | shuttleai-4.9.3-py3-none-any.whl |
|---|---|
| Size | 38.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3e14c7e049577ac0d78e7c224c694da77e72bad3854ced6fda88500149449cc2
|
|
BLAKE2b-256 checksum How to use checksums |
75ce8a6fdf7e58bd6bd02f1b0fabfd4d434b09c499319f64ee2cb4e9e2feb1f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|