Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.)
Project description
pig-llm
Unified multi-provider LLM API for Python.
Features
- 🔌 Multi-provider support: OpenAI, Anthropic, Google, and more
- 🎯 Unified interface: Same API across all providers
- 🔄 Streaming support: Real-time token streaming
- 🛡️ Error handling: Automatic retries and fallbacks
- 📊 Usage tracking: Token counting and cost estimation
Installation
pip install pig-llm
Quick Start
from pig_llm import LLM
# Initialize with API key
llm = LLM(provider="openai", api_key="sk-...")
# Simple completion
response = llm.complete("What is the meaning of life?")
print(response.content)
# Streaming
for chunk in llm.stream("Tell me a story"):
print(chunk.content, end="", flush=True)
# With system message
response = llm.complete(
"Translate to Spanish",
system="You are a helpful translator",
)
Supported Providers
Core Providers
- OpenAI - GPT-4, GPT-3.5, etc.
- Anthropic - Claude 3, Claude 2
- Google - Gemini Pro, Gemini Ultra
- Azure OpenAI - Azure-hosted OpenAI models
Additional Providers
- Groq - Ultra-fast LLM inference
- Mistral - Mistral AI models
- OpenRouter - Access to multiple models
- Amazon Bedrock - AWS-hosted foundation models
- xAI (Grok) - xAI's Grok models
- Cerebras - Fastest inference speeds
- Cohere - Command models for enterprise
- Perplexity - Search-augmented LLMs
- DeepSeek - Chinese LLM with strong coding
- Together AI - Open-source model hosting
Configuration
from pig_llm import LLM, Config
config = Config(
provider="openai",
model="gpt-4",
temperature=0.7,
max_tokens=1000,
timeout=30,
)
llm = LLM(config=config)
Provider-Specific Examples
Amazon Bedrock
# Uses AWS credentials from environment
llm = LLM(provider="bedrock", api_key="us-east-1") # region as api_key
response = llm.complete("Hello", model="anthropic.claude-3-sonnet-20240229-v1:0")
xAI (Grok)
llm = LLM(provider="xai", api_key="xai-...")
response = llm.complete("What's happening?", model="grok-beta")
Cerebras
llm = LLM(provider="cerebras", api_key="csk-...")
response = llm.complete("Fast inference!", model="llama3.1-8b")
Cohere
llm = LLM(provider="cohere", api_key="...")
response = llm.complete("Hello", model="command-r-plus")
Perplexity
llm = LLM(provider="perplexity", api_key="pplx-...")
response = llm.complete("What's the latest news?", model="llama-3.1-sonar-large-128k-online")
# Citations available in response.metadata["citations"]
DeepSeek
llm = LLM(provider="deepseek", api_key="...")
response = llm.complete("写一段Python代码", model="deepseek-chat")
Together AI
llm = LLM(provider="together", api_key="...")
response = llm.complete("Hello", model="meta-llama/Llama-3-70b-chat-hf")
License
MIT
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
pig_llm-0.1.1.tar.gz
(51.7 kB
view details)
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
pig_llm-0.1.1-py3-none-any.whl
(50.5 kB
view details)
File details
Details for the file pig_llm-0.1.1.tar.gz.
File metadata
- Download URL: pig_llm-0.1.1.tar.gz
- Upload date:
- Size: 51.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8496299c4d72cfeb8143fbcabb52d5c25706bc37ceb8cfa4f428d750ebd72b12
|
|
| MD5 |
a120728977ab39fc2be63a72cba82140
|
|
| BLAKE2b-256 |
d2cdce07068782a267f67bddd9e6dd476fff20fe2f60732926986736fb3a94fe
|
File details
Details for the file pig_llm-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pig_llm-0.1.1-py3-none-any.whl
- Upload date:
- Size: 50.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48912d21a533e71546d7e42e2b1ad0aec90a2aed13984e4f8388edce94011617
|
|
| MD5 |
42222f3a86669b1940e7e80d60e2393b
|
|
| BLAKE2b-256 |
dade28725c205753bbbb58ce39e6bb689e5f6033a98679eb13718f3de65a0906
|