MonoAI - The complete framework to build AI-powered applications
Project description
MonoAI
The complete framework to build AI-powered applications
MonoAI is a Python library that enables structured, standardized, and efficient interactions with multiple AI models, harnessing their collective intelligence to deliver richer, more accurate responses.
🚀 Quick Start
Prompts
In MonoAI, a prompt is the request you send to a model.
You can define prompts in three different ways:
1. Plain Text
Directly write the prompt inside the ask method:
from MonoAI.models import Model
model = Model()
response = model.ask("What is 2 + 2?")
2. Prompt Class
Use the Prompt class to enhance your prompts with additional parameters such as response types, chaining, and iteration control:
from MonoAI.models import Model
from MonoAI.prompts import Prompt
model = Model()
prompt = Prompt("What is 2 + 2?", response_type=int)
response = model.ask(prompt)
3. .prompt Files
Store prompts in external .prompt files to separate your codebase from content logic.
Example - sum.prompt:
What is 2 + 2?
from MonoAI.models import Model
from MonoAI.prompts import Prompt
model = Model()
prompt = Prompt(prompt_id="sum", response_type=int)
response = model.ask(prompt)
You can also define additional metadata using an XML-like syntax inside .prompt files:
Example with metadata:
# sum.prompt
<prompt response_type="int">
What is 2 + 2?
</prompt>
Models
MonoAI provides multiple model interfaces to handle different use cases, from basic generation to multi-model aggregation:
Model
The standard interface for interacting with a single AI model.
MultiModel
Send a prompt to multiple models asynchronously and retrieve their individual outputs:
from MonoAI.models import MultiModel
model = MultiModel(models=[
{"provider": "openai", "model": "gpt-4o"},
{"provider": "deepseek", "model": "chat"}
])
response = model.ask("What is the capital of Italy?")
CollectiveModel
Send a prompt to multiple models and aggregate their outputs using a separate aggregator model for a richer, consolidated answer:
from MonoAI.models import CollectiveModel
model = CollectiveModel(
models=[
{"provider": "openai", "model": "gpt-4o"},
{"provider": "deepseek", "model": "chat"}
],
aggregator={"provider": "openai", "model": "gpt-4o"}
)
response = model.ask("What is the capital of Italy?")
AutoModel
Automatically select the best model for a given prompt based on configuration or inference:
from MonoAI.models import AutoModel
model = AutoModel()
response = model.ask("What is the capital of Italy?")
🔑 API Key Management
MonoAI simplifies API key management through a providers.keys file in the root directory.
Each line should follow this format:
PROVIDER_NAME=API_KEY
Example providers.keys:
OPENAI=sk-proj-ABCDE12345
DEEPSEEK=sk-proj-FGHIJ67890
MonoAI automatically loads these keys at runtime — no extra setup needed.
⚙️ Configuration
Configure MonoAI globally via a monoai.yaml file.
Supported fields:
| Field | Description | Default |
|---|---|---|
prompts_path |
Directory where .prompt files are stored |
"" (current folder) |
keysfile_path |
Path to the API keys file | "providers.keys" |
base_model |
Default model to use when no model is specified | None |
Example monoai.yaml:
prompts_path: prompts
keysfile_path: providers.keys
base_model:
provider: openai
model: gpt-4o-mini
📚 Documentation
Full documentation is available at:
👉 MonoAI Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file monoai-0.0.22.tar.gz.
File metadata
- Download URL: monoai-0.0.22.tar.gz
- Upload date:
- Size: 57.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa72cc3224ab91582e56e603e3e436da1e20a5df2878a5788743ffa30ae63c39
|
|
| MD5 |
cc2ca127d4025d249cb123c44250413d
|
|
| BLAKE2b-256 |
f6288ca81fcdb49b1306eba19f4e302a9f261430fb6c41424db7816cd8d09223
|
File details
Details for the file monoai-0.0.22-py3-none-any.whl.
File metadata
- Download URL: monoai-0.0.22-py3-none-any.whl
- Upload date:
- Size: 72.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
033d4563b5fbc6e8f69c8cfbbd6c6fc5a9c3369dd2037bf539560fb49677a911
|
|
| MD5 |
5abd83f5d7b4e12f0d88316171d04b1a
|
|
| BLAKE2b-256 |
bfa3765e8a95bc1e76db12ba51b1a9eb5a8d730673033d14bea245f14c43123b
|