A simplistic ai for Huggingface llms free hosted models.
Project description
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
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
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 ailiteall-0.0.7.tar.gz.
File metadata
- Download URL: ailiteall-0.0.7.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b41b3a9526f1f624fef061bd4b8e58be1c6d4bb172b95ba60ce60cbd7f2b882e
|
|
| MD5 |
5a4831d4e2e636b86b33a9061297f3ae
|
|
| BLAKE2b-256 |
a00f77752da22ceee7d8f8337117b279a1f72bb7c1209fef76a2f1734c0bc98b
|
File details
Details for the file ailiteall-0.0.7-py3-none-any.whl.
File metadata
- Download URL: ailiteall-0.0.7-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5eb5ef317cacd78b7d8602735424502212e0318bda3d7e6640dc8496b5eb8cb3
|
|
| MD5 |
26b1afaa27d3da1608cb3f698bcf8e1d
|
|
| BLAKE2b-256 |
36838d992bc1703086f7bc0dcab296fb0e76d8660673256298b47bad66f3b513
|