Lightweight LLM routing layer over native provider SDKs
Project description
giskard-llm
Lightweight LLM routing layer over native provider SDKs. Routes provider/model strings to the correct async SDK (OpenAI, Google Gemini, Anthropic, Azure OpenAI, Azure AI Foundry).
Installation
pip install giskard-llm[openai] # OpenAI + Azure OpenAI + Azure AI Foundry
pip install giskard-llm[google] # Google Gemini
pip install giskard-llm[anthropic] # Anthropic
pip install giskard-llm[all] # All providers
Note: Azure OpenAI (
azure/) and Azure AI Foundry (azure_ai/) use theopenaiSDK. Installinggiskard-llm[openai](orgiskard-llm[azure]) covers all three.
Quick start
from giskard.llm import acompletion, aembedding
# Module-level functions use env vars automatically
response = await acompletion(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
# Bare model names default to OpenAI
response = await acompletion(model="gpt-4o", messages=[...])
LLMClient (programmatic configuration)
from giskard.llm import LLMClient
client = LLMClient()
# Configure with explicit values or env var references
client.configure("openai", api_key="sk-...") # pragma: allowlist secret
client.configure("azure-prod", provider="azure",
api_key="os.environ/AZURE_PROD_KEY", # pragma: allowlist secret
base_url="os.environ/AZURE_PROD_ENDPOINT",
api_version="2024-02-01",
)
client.configure("anthropic-relaxed", provider="anthropic",
api_key="os.environ/ANTHROPIC_API_KEY", # pragma: allowlist secret
merge_system=True,
)
response = await client.acompletion("azure-prod/gpt-4o", messages)
response = await client.acompletion("anthropic-relaxed/claude-3-5-haiku-latest", messages)
Provider reference
| Prefix | SDK | Auth env var | Completion | Embeddings | Notable kwargs |
|---|---|---|---|---|---|
openai/ (default) |
openai |
OPENAI_API_KEY |
yes | yes | base_url, timeout |
google/ |
google-genai |
GOOGLE_API_KEY / GEMINI_API_KEY |
yes | yes | — |
anthropic/ |
anthropic |
ANTHROPIC_API_KEY |
yes | no | merge_system, timeout |
azure/ |
openai |
AZURE_API_KEY, AZURE_API_BASE |
yes | yes | api_version, base_url |
azure_ai/ |
openai |
AZURE_AI_API_KEY, AZURE_AI_ENDPOINT |
yes | model-dependent | base_url |
For detailed per-provider documentation (role mapping, message constraints, tool format, error mapping), see the provider class docstrings in src/giskard/llm/providers/.
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 giskard_llm-1.0.0b2.tar.gz.
File metadata
- Download URL: giskard_llm-1.0.0b2.tar.gz
- Upload date:
- Size: 53.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51aa287cac4104f3d52ebc9693021f23ba9c4762e50c77fce5b16d15bdd26490
|
|
| MD5 |
bc61ff8463c60c03f4c4eb36f5fcf970
|
|
| BLAKE2b-256 |
60c02794b03f35b2d3f5969b887c4a278a7ca1b380f6c5477ee860254b740e11
|
File details
Details for the file giskard_llm-1.0.0b2-py3-none-any.whl.
File metadata
- Download URL: giskard_llm-1.0.0b2-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31f040339af09d5c8b6a713a55e8a54b4b3aea8003d7d15654d88c27f08da2b3
|
|
| MD5 |
68f337918607ad890ba69c42c2bf6e3d
|
|
| BLAKE2b-256 |
c8a6df461234537cba3c7486750787b6012c67cc88b4693a1563667143341182
|