AILiteLLM
AILiteLLM is a lightweight Python wrapper around the Hugging Face Inference API that provides OpenAI-like interface for various open-source language models. It makes it easy to use powerful open-source models with an interface familiar to OpenAI developers.
📊 Package Stats
- PyPI: https://pypi.org/project/ailitellm/
- Documentation: https://ailitellm.readthedocs.io/
- Source Code: https://github.com/yourusername/ailitellm
- Issue Tracker: https://github.com/yourusername/ailitellm/issues
Features
- OpenAI-compatible interface
- Support for multiple Hugging Face models
- Stream responses support
- Function calling capabilities
- Full typing support
- Easy model switching
Installation
From PyPI:
pip install ailitellm
From source:
git clone https://github.com/yourusername/ailitellm.git
cd ailitellm
pip install -e .
Development installation:
pip install -e ".[dev]"
Quick Start
from ailitellm import ai, ailite_model
# Simple completion
response = ai("What is the capital of France?")
print(response.choices[0].message.content)
# Using a specific model
response = ai(
"Explain quantum computing",
model=ailite_model("Qwen/Qwen2.5-72B-Instruct")
)
Available Models
AILiteLLM supports the following models:
Qwen/Qwen2.5-72B-Instruct- Large general purpose modelQwen/QwQ-32B-Preview- Preview version of QwQ modelQwen/Qwen2.5-Coder-32B-Instruct- Specialized for coding tasksNousResearch/Hermes-3-Llama-3.1-8B- Efficient general purpose modelmicrosoft/Phi-3.5-mini-instruct- Lightweight instruction-following model
Advanced Usage
Chat Completions
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me a joke about programming."}
]
response = ai(messages)
Streaming Responses
for chunk in ai("Write a poem about AI", stream=True):
print(chunk.choices[0].delta.content, end="")
Function Calling
def get_weather(location: str, unit: str = "celsius") -> str:
"""Get the weather for a location"""
pass
response = ai(
"What's the weather in London?",
tools=[get_weather],
tool_choice="auto"
)
Advanced Parameters
response = ai(
"Generate a creative story",
temperature=0.8,
max_tokens=500,
top_p=0.9,
presence_penalty=0.6
)
Custom Client
from ailitellm import AILite
custom_client = AILite(
base_url="your_custom_endpoint",
api_key="your_api_key"
)
Error Handling
try:
response = ai("Your prompt here")
except Exception as e:
print(f"An error occurred: {e}")
API Reference
Main Functions
ai(messages_or_prompt, **kwargs)
Main interface for generating completions.
Key parameters:
messages_or_prompt: List of messages or string promptmodel: Model to use (default: "Qwen/Qwen2.5-72B-Instruct")temperature: Sampling temperature (default: 0)max_tokens: Maximum tokens to generatestream: Enable streaming responsestools: List of functions for tool calling- See source code for full list of parameters
ailite_model(model: HFModelType)
Helper function to specify model type with proper type checking.
Classes
AILite
Custom client class extending OpenAI's base client.
🧑💻 Development
To set up the development environment:
# Clone the repository
git clone https://github.com/yourusername/ailitellm.git
cd ailitellm
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
📦 Dependencies
- Python >= 3.8
- openai >= 1.0.0
- httpx
- typing-extensions
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. See CONTRIBUTING.md for guidelines.
📝 Citation
If you use AILiteLLM in your research, please cite:
@software{ailitellm2024,
author = {Your Name},
title = {AILiteLLM: OpenAI-compatible Interface for Hugging Face Models},
year = {2024},
publisher = {GitHub},
url = {https://github.com/yourusername/ailitellm}
}
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- OpenAI for the API interface design
- Hugging Face for model hosting and inference API
- All model creators and contributors
📫 Contact
- GitHub Issues: https://github.com/yourusername/ailitellm/issues
- Email: your.email@example.com
- Twitter: @yourusername
Metadata
Release files for ailiteall 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ailiteall-0.0.7.tar.gz | 17.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ailiteall-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.2 kB
Release files / ailiteall-0.0.7.tar.gz
| Download URL | ailiteall-0.0.7.tar.gz |
|---|---|
| Size | 17.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b41b3a9526f1f624fef061bd4b8e58be1c6d4bb172b95ba60ce60cbd7f2b882e
|
|
BLAKE2b-256 checksum How to use checksums |
a00f77752da22ceee7d8f8337117b279a1f72bb7c1209fef76a2f1734c0bc98b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.0rc1
|
Release files / ailiteall-0.0.7-py3-none-any.whl
| Download URL | ailiteall-0.0.7-py3-none-any.whl |
|---|---|
| Size | 19.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5eb5ef317cacd78b7d8602735424502212e0318bda3d7e6640dc8496b5eb8cb3
|
|
BLAKE2b-256 checksum How to use checksums |
36838d992bc1703086f7bc0dcab296fb0e76d8660673256298b47bad66f3b513
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.0rc1
|
Security for ailiteall 0.0.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.