Catalog PyPI
PACKAGE EXPLORERView in registry

aihuber

PyPI

⚡ Python AI SDK - OpenAI, MistralAI, Anthropic, Google Gemini, XAI Grok, Hugging Face

llmpython
Versions collected1
Direct dependencies4From release 0.3.0
Last observed21 Oct, 10:55 UTC

README

Version 0.3.0 documentation

AIHuber

aihuber is the easiest and quickest way to communicate with AI providers. Free and open-source.

License Python Build Status Version

✨ Features

aihuber is compatible with main AI providers :

Chat completion (Text generation)

AI Providers Comparison
AI ProviderBuffering sync & asyncStreaming (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

Legend

  • ✅ = Available
  • ❌ = Not Available
  • Text in parentheses = Specific service/model name

🚀 Quick Start

Installation

pip install aihuber

Or with uv:

uv add aihuber

Basic Usage

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())

📄 License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.3.09 Jan 20264

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
sylvainmouquet/aihuber

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:55 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:6690659459da6b9bd2f4d2c1351617f6820ef61b9e1f896bb8c21e13ec519132