Skip to main content

A zen, simple, and unified API to prompt LLMs from Anthropic, Google, OpenAI, and more, using only the requests library.

Project description

🧘‍♂️ ZenLLM

PyPI version License: MIT Python 3.8+

The zen, simple, and unified API to prompt LLMs from different providers using a single function call.

Our Goal: No fancy dependencies, no SDK bloat. Just requests and your API keys. Easily switch between models and providers without changing your code.

✨ Key Features

  • Unified API: A single prompt() function for Anthropic, Google, and OpenAI.
  • Easy Model Switching: Change models and providers with a single model argument.
  • Lightweight: Built with only the requests library. No heavy SDKs to install.
  • Simple Authentication: Just set your provider's API key as an environment variable.

🚀 Installation

pip install zenllm

💡 Usage

First, make sure you've set your API key as an environment variable (e.g., export OPENAI_API_KEY="your-key").

Basic Prompt

The default model is gpt-4.1. You can change this by setting the ZENLLM_DEFAULT_MODEL environment variable.

from zenllm import prompt

# Uses the default model (either the fallback or ZENLLM_DEFAULT_MODEL)
response = prompt("Why is the sky blue?")
print(response)

Using another Provider (Google's Gemini)

Simply change the model name to use a different provider.

from zenllm import prompt

response = prompt(
    "Why is the sky blue?",
    model="gemini-2.5-pro",
    system_prompt="Reply only in French."
)
print(response)

Using Anthropic

from zenllm import prompt

response = prompt(
    "Tell me a three sentence bedtime story about a unicorn.",
    model="claude-sonnet-4-20250514"
)
print(response)

Streaming Responses

Set stream=True to get a generator of response chunks.

from zenllm import prompt

response_stream = prompt(
    "Tell me a story about a robot.", 
    model="claude-sonnet-4-20250514", 
    stream=True
)
for chunk in response_stream:
    print(chunk, end="", flush=True)

✅ Supported Providers

Provider Environment Variable Model Prefix Example Models
Anthropic ANTHROPIC_API_KEY claude claude-sonnet-4-20250514, claude-opus-4-20250514
Deepseek DEEPSEEK_API_KEY deepseek deepseek-chat, deepseek-reasoner
Google GEMINI_API_KEY gemini gemini-2.5-pro, gemini-2.5-flash
OpenAI OPENAI_API_KEY gpt gpt-4.1

Note: Streaming is not yet supported for OpenAI with this library.

📜 License

MIT License - Copyright (c) 2025 Koen van Eijk

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

zenllm-0.1.4.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

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

zenllm-0.1.4-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file zenllm-0.1.4.tar.gz.

File metadata

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

File hashes

Hashes for zenllm-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d8ca5943086dc813f719f94b4faaae6ff5c692a7aaa722a8e71561733ae6a1f2
MD5 873b00f34167ca02c75c3993a114149b
BLAKE2b-256 2fa2b37a49b8fb275bfe84e4cbbe61f3e041877d2a68f12c7183fbd53f2e62ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenllm-0.1.4.tar.gz:

Publisher: publish_to_pypi.yml on koenvaneijk/zenllm

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

File details

Details for the file zenllm-0.1.4-py3-none-any.whl.

File metadata

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

File hashes

Hashes for zenllm-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b0786b6494277cf45f0670288b51971058a496b6c04b1445ac7ad92ad1c6b195
MD5 23760c6a44ae8c98f44b00813d9b783c
BLAKE2b-256 eba7ef0185d44e2197084c93248b2cf86af13e0fadc821adbdf1573dac78f70a

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenllm-0.1.4-py3-none-any.whl:

Publisher: publish_to_pypi.yml on koenvaneijk/zenllm

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