A comprehensive multi-provider LLM proxy library with unified interface
Project description
ScaleXI LLM
A production-ready, multi-provider LLM proxy that gives you one unified API for many different model providers.
- 9 Providers: OpenAI, Anthropic (Claude), Google (Gemini), Groq, DeepSeek, Alibaba/Qwen, Grok, local Ollama, and RunPod (native API)
- 60+ Model Configurations: Pricing, limits, and capabilities encoded in a single model registry
- Structured Outputs: Pydantic schemas with intelligent fallbacks and validation
- Vision & Files: Image analysis, PDF/DOCX/TXT/JSON handling, and automatic vision fallbacks
- Web Search: Exa + SERP (Google) integration for retrieval-augmented generation (optionally restricted to a single domain)
- Fallbacks & Reliability: Provider-best and global-standard fallbacks, plus detailed error logging
- LangSmith Tracing: Optional built-in observability — set
enable_tracing=Trueand every call is traced
This package is ideal when you want a single, consistent interface to multiple LLM vendors, with:
- Centralized configuration for models and costs
- Unified ask function (
ask_llm) that works across providers - Built-in support for web search, files, and images
- Optional local-only workflows via Ollama
- Optional LangSmith tracing with token/cost tracking
Installation
pip install scalexi_llm
Quick Example
from scalexi_llm import LLMProxy
llm = LLMProxy()
response, execution_time, token_usage, cost = llm.ask_llm(
model_name="chatgpt-4o-latest",
system_prompt="You are a helpful assistant.",
user_prompt="Explain quantum computing in simple terms."
)
print(response)
Model Listing
Inspect all registered models and their metadata (provider, pricing, limits, capabilities):
import json
from scalexi_llm import LLMProxy
llm = LLMProxy(verbose=0)
models = llm.list_available_models()
print(json.dumps(models, indent=2))
Domain-Restricted Web Search
from scalexi_llm import LLMProxy
llm = LLMProxy()
response, _, _, _ = llm.ask_llm(
model_name="gpt-5-mini",
user_prompt="Find the admissions requirements",
websearch=True,
search_tool="both",
search_domain="binbaz.org.sa"
)
LangSmith Tracing (Optional)
from scalexi_llm import LLMProxy
# pip install langsmith (+ set LANGSMITH_API_KEY in .env)
llm = LLMProxy(enable_tracing=True)
response, exec_time, token_usage, cost = llm.ask_llm(
model_name="chatgpt-4o-latest",
user_prompt="What is quantum computing?"
)
# Token usage, cost, provider, and model are automatically logged to LangSmith
Features at a Glance
- One
LLMProxyclass for all providers - Unified
ask_llmAPI for text, files, images, and web search (with file/image fallbacks for providers like RunPod/Ollama) - Pydantic-based structured outputs with retry and model fallbacks
- Vision fallback when a chosen model doesn't support images
- Token and cost accounting for every call
- Optional LangSmith tracing with zero-code setup (
enable_tracing=True) - Comprehensive test suite (
provider_test.py,ollama_test.py,combined_test.py)
Project details
Release history Release notifications | RSS feed
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 scalexi_llm-0.1.36.tar.gz.
File metadata
- Download URL: scalexi_llm-0.1.36.tar.gz
- Upload date:
- Size: 32.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
151563bd9305761049174c45e4995a867900620403cdb4f72aae8e46113d8ff2
|
|
| MD5 |
bf768b08b5618df37671eaa0d342a28f
|
|
| BLAKE2b-256 |
d62481845e7e98a0567ee57ad0a4a0bd9bf8941f28b3b57709dbc3cc42e63740
|
File details
Details for the file scalexi_llm-0.1.36-py3-none-any.whl.
File metadata
- Download URL: scalexi_llm-0.1.36-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68e6ca72d9319f9a22cbd4bb40c0f2fd4df6e1304bb01b9f0c2c538bfa8e44de
|
|
| MD5 |
63a52ad6b8f38fc5a721f9f429e43011
|
|
| BLAKE2b-256 |
deef5849d579bd21ebfdce274fb5f24f5cf530793dcbe518299ed236c2e876bf
|