Skip to main content

A minimal Python library for interacting with various LLM providers

Project description

SmolLLM

A minimal Python library for interacting with various LLM providers, featuring automatic API key load balancing and streaming responses.

Installation

pip install smolllm
uv add "smolllm @ ../smolllm"

Quick Start

from dotenv import load_dotenv
import asyncio
from smolllm import ask_llm

# Load environment variables at your application startup
load_dotenv()

async def main():
    response = await ask_llm(
        "Say hello world",
        model="gemini/gemini-2.0-flash"
    )
    print(response)

if __name__ == "__main__":
    asyncio.run(main())

Provider Configuration

Format: provider/model_name (e.g., openai/gpt-4, gemini/gemini-2.0-flash)

API Keys

The library looks for API keys in environment variables following the pattern: {PROVIDER}_API_KEY

Example:

# .env
OPENAI_API_KEY=sk-xxx
GEMINI_API_KEY=key1,key2  # Multiple keys supported

Custom Base URLs

Override default API endpoints using: {PROVIDER}_BASE_URL

Example:

OPENAI_BASE_URL=https://custom.openai.com/v1
OLLAMA_BASE_URL=http://localhost:11434/v1

Advanced Configuration

You can combine multiple keys and base URLs in several ways:

  1. One key with multiple base URLs:
OLLAMA_API_KEY=ollama
OLLAMA_BASE_URL=http://localhost:11434/v1,http://other-server:11434/v1
  1. Multiple keys with one base URL:
GEMINI_API_KEY=key1,key2
GEMINI_BASE_URL=https://api.gemini.com/v1
  1. Paired keys and base URLs:
# Must have equal number of keys and URLs
# The library will randomly select matching pairs
GEMINI_API_KEY=key1,key2
GEMINI_BASE_URL=https://api.gemini.com/v1,https://api.gemini.com/v2

Environment Setup Best Practices

When using SmolLLM in your project, you should handle environment variables at your application level:

  1. Create a .env file:
# .env
OPENAI_API_KEY=sk-xxx
GEMINI_API_KEY=xxx,xxx2
ANTHROPIC_API_KEY=sk-xxx
  1. Load environment variables before using SmolLLM:
from dotenv import load_dotenv
import os

# Load at your application startup
load_dotenv()

# Now you can use SmolLLM
from smolllm import ask_llm

Tips

  • Keep sensitive API keys in .env (add to .gitignore)
  • Create .env.example for documentation
  • For production, consider using your platform's secret management system
  • When using multiple keys, separate with commas (no spaces)

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

smolllm-0.1.10.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

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

smolllm-0.1.10-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file smolllm-0.1.10.tar.gz.

File metadata

  • Download URL: smolllm-0.1.10.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for smolllm-0.1.10.tar.gz
Algorithm Hash digest
SHA256 4b4ff0eec8daf741496a66e01d7c73101eff495ad582edbf842d51371c73285c
MD5 9f5fbe05c64d89dba59da438e8c2d767
BLAKE2b-256 a853787a1c19f687f0e63ce5bfa0b2146f96ff569b5276a831399cd091725233

See more details on using hashes here.

Provenance

The following attestation bundles were made for smolllm-0.1.10.tar.gz:

Publisher: release.yml on RoCry/smolllm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smolllm-0.1.10-py3-none-any.whl.

File metadata

  • Download URL: smolllm-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for smolllm-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 bdecb3fbcb9c47e8a5451a5fc9a7e3799376b21f55e38f1ef706d8b27df7b5e0
MD5 6f60642f1e5b58f77e5730f8bbe03741
BLAKE2b-256 12ed4c53c010aee45254bbd01e85d62876312b3af2b5afe2a88b43d42ce2a4ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for smolllm-0.1.10-py3-none-any.whl:

Publisher: release.yml on RoCry/smolllm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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