Current collected state Current
Observed since 21 Oct, 10:55 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
⚡ Python AI SDK - OpenAI, MistralAI, Anthropic, Google Gemini, XAI Grok, Hugging Face
aihuber is the easiest and quickest way to communicate with AI providers. Free and open-source.
aihuber is compatible with main AI providers :
| AI Provider | Buffering sync & async | Streaming (sync & async) | Endpoint |
|---|---|---|---|
| OpenAI | ✅ | ✅ | https://api.openai.com/v1/chat/completions |
| Mistral AI | ✅ | ✅ | https://api.mistral.ai/v1/chat/completions |
| Anthropic | ✅ | ✅ | https://api.anthropic.com/v1/messages |
| Google (Gemini) | ❌ | ❌ | https://generativelanguage.googleapis.com/v1/models/{model}:generateContent |
| Cohere | ✅ | ✅ | https://api.cohere.com/v2/chat |
| Together AI | ✅ | ✅ | https://api.together.xyz/v1/chat/completions |
| Replicate | ❌ | ❌ | https://api.replicate.com/v1/predictions |
| Hugging Face | ❌ | ❌ | https://api-inference.huggingface.co/models/{model_id} |
| Azure OpenAI | ❌ | ❌ | https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-name}/chat/completions?api-version=2024-02-01 |
| AWS Bedrock | ❌ | ❌ | https://bedrock-runtime.{region}.amazonaws.com/model/{model-id}/invoke |
| Perplexity | ✅ | ✅ | https://api.perplexity.ai/chat/completions |
| xAI (Grok) | ❌ | ❌ | https://api.x.ai/v1/chat/completions |
pip install aihuber
Or with uv:
uv add aihuber
import asyncio
import os
from dotenv import load_dotenv
from aihuber import LLM, Message
from pydantic import SecretStr
load_dotenv()
MISTRAL_AI_TOKEN = SecretStr(os.getenv("MISTRAL_AI_TOKEN")) # type: ignore
async def main():
"""Chat completion example with asynchronous"""
llm = LLM(model="mistral:mistral-small-latest", api_key=MISTRAL_AI_TOKEN)
messages = [
Message(role="system", content="You are a helpful Python developer assistant."),
Message(role="user", content="Give me 10 numbers from 0"),
]
async_chat_completion = await llm.chat_completion_async(messages, stream=True)
async for chunk in async_chat_completion:
print(chunk)
if __name__ == "__main__":
asyncio.run(main())
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.3.0 | 9 Jan 2026 | 4 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 10:55 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:6690659459da6b9bd2f4d2c1351617f6820ef61b9e1f896bb8c21e13ec519132