Python SDK for Mirmer AI multi-LLM consultation system
Project description
Mirmer AI Python SDK
A Python client library for the Mirmer AI multi-LLM consultation system.
Installation
pip install mirmer-ai
Quick Start
from mirmer import Client
# Initialize client with API key
client = Client(api_key="your-api-key")
# Or use environment variable MIRMER_API_KEY
client = Client()
# Send a query and get council response
response = client.query("What is the meaning of life?")
# Access the three stages
print("Stage 1 - Individual Responses:")
for model_response in response.stage1:
print(f"{model_response.model}: {model_response.response}")
print("\nStage 2 - Peer Rankings:")
for ranking in response.stage2:
print(f"{ranking.model}: {ranking.parsed_ranking}")
print("\nStage 3 - Chairman Synthesis:")
print(response.stage3.response)
Features
- 3-Stage Council Process: Query multiple AI models, get peer reviews, and receive synthesized consensus
- Streaming Support: Real-time updates as each stage completes
- Async/Await: Full async support with
AsyncClient - Conversation Management: Create, list, search, and delete conversations
- Usage Tracking: Monitor your API consumption and limits
- Type Safety: Complete type hints for IDE autocomplete and type checking
- Error Handling: Comprehensive exception hierarchy for graceful error handling
Usage Examples
Streaming Responses
from mirmer import Client
client = Client(api_key="your-api-key")
# Stream council process updates in real-time
for update in client.stream("Explain quantum computing"):
if update.type == "stage1_complete":
print(f"Stage 1 complete: {len(update.data['stage1'])} responses")
elif update.type == "stage3_complete":
print(f"Final answer: {update.data['response']}")
Async Usage
import asyncio
from mirmer import AsyncClient
async def main():
async with AsyncClient(api_key="your-api-key") as client:
response = await client.query("What is machine learning?")
print(response.stage3.response)
asyncio.run(main())
Conversation Management
from mirmer import Client
client = Client(api_key="your-api-key")
# Create a new conversation
conversation = client.create_conversation(title="AI Discussion")
# Add messages to the conversation
response = client.query("What is AI?", conversation_id=conversation.id)
# List all conversations
conversations = client.list_conversations()
# Search conversations
results = client.search_conversations("machine learning")
# Get specific conversation
conv = client.get_conversation(conversation.id)
# Delete conversation
client.delete_conversation(conversation.id)
Usage Statistics
from mirmer import Client
client = Client(api_key="your-api-key")
# Check your usage
usage = client.get_usage()
print(f"Used: {usage.queries_used_today}/{usage.daily_limit}")
print(f"Tier: {usage.tier}")
Configuration
from mirmer import Client
client = Client(
api_key="your-api-key",
base_url="https://api.mirmer.ai", # Custom API endpoint
timeout=60.0, # Request timeout in seconds
max_retries=3 # Max retry attempts for failed requests
)
Error Handling
from mirmer import Client, AuthenticationError, RateLimitError, APIError
client = Client(api_key="your-api-key")
try:
response = client.query("Hello")
except AuthenticationError:
print("Invalid API key")
except RateLimitError as e:
print(f"Rate limit exceeded. Reset at: {e.reset_time}")
except APIError as e:
print(f"API error: {e.message} (status: {e.status_code})")
Requirements
- Python 3.8+
- httpx >= 0.24.0
- pydantic >= 2.0.0
- python-dateutil >= 2.8.0
License
MIT License - see LICENSE file for details
Support
- Documentation: https://docs.mirmer.ai
- Issues: https://github.com/mirmer-ai/python-sdk/issues
- Email: support@mirmer.ai
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mirmer_ai-0.1.3.tar.gz
(22.0 kB
view details)
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
mirmer_ai-0.1.3-py3-none-any.whl
(18.4 kB
view details)
File details
Details for the file mirmer_ai-0.1.3.tar.gz.
File metadata
- Download URL: mirmer_ai-0.1.3.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90e1015f9d89ca80bc70fe4152a02a96321e58318d22203e3fc193f8b1a324ea
|
|
| MD5 |
0950a2828c02f4c06aed6cbfb2de12e0
|
|
| BLAKE2b-256 |
1fc18a8afaf05a46de6e042f76aa666e0a06e7322e197b496bacbcd2ffd9174f
|
File details
Details for the file mirmer_ai-0.1.3-py3-none-any.whl.
File metadata
- Download URL: mirmer_ai-0.1.3-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cc0d68ca4239ceaad07dc520e973ecfeba156f4dd3dc6033d949529846efd2c
|
|
| MD5 |
210af18c7b9c355d52fbd803fa38b5c1
|
|
| BLAKE2b-256 |
55373f61935ac3c680b3f90bb28c00e0d3ef6e2e6040623756aa4e2bb42162aa
|