Skip to main content

A simplistic ai for Huggingface llms free hosted models.

Project description

AILiteLLM

PyPI version Downloads License: MIT Python 3.8+ Documentation Status GitHub issues GitHub stars

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

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 model
  • Qwen/QwQ-32B-Preview - Preview version of QwQ model
  • Qwen/Qwen2.5-Coder-32B-Instruct - Specialized for coding tasks
  • NousResearch/Hermes-3-Llama-3.1-8B - Efficient general purpose model
  • microsoft/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 prompt
  • model: Model to use (default: "Qwen/Qwen2.5-72B-Instruct")
  • temperature: Sampling temperature (default: 0)
  • max_tokens: Maximum tokens to generate
  • stream: Enable streaming responses
  • tools: 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

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

ailiteall-0.0.7.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ailiteall-0.0.7-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

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

Hashes for ailiteall-0.0.7.tar.gz
Algorithm Hash digest
SHA256 b41b3a9526f1f624fef061bd4b8e58be1c6d4bb172b95ba60ce60cbd7f2b882e
MD5 5a4831d4e2e636b86b33a9061297f3ae
BLAKE2b-256 a00f77752da22ceee7d8f8337117b279a1f72bb7c1209fef76a2f1734c0bc98b

See more details on using hashes here.

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

Hashes for ailiteall-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 5eb5ef317cacd78b7d8602735424502212e0318bda3d7e6640dc8496b5eb8cb3
MD5 26b1afaa27d3da1608cb3f698bcf8e1d
BLAKE2b-256 36838d992bc1703086f7bc0dcab296fb0e76d8660673256298b47bad66f3b513

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page