Generic LLM provider abstraction — Anthropic, OpenAI, Google, Ollama and any OpenAI-compatible local model
Project description
uc-uc-llm-provider
Generic LLM provider abstraction for Python.
Anthropic, OpenAI, Google — and any OpenAI-compatible local model (Ollama, LM Studio, vLLM, llama.cpp).
Install
pip install uc-uc-llm-provider
Quickstart
from uc_llm_provider import get_provider, ChatRequest, ChatMessage
# Cloud provider
provider = get_provider({
"name": "anthropic",
"provider_type": "anthropic",
"api_key": "sk-ant-...",
"default_model": "claude-sonnet-4-20250514",
})
# Local via Ollama
provider = get_provider({
"name": "ollama",
"provider_type": "ollama",
"api_base": "http://localhost:11434",
"default_model": "llama3.2",
})
# Any OpenAI-compatible endpoint (LM Studio, vLLM, llama.cpp …)
provider = get_provider({
"name": "lm-studio",
"provider_type": "openai_compatible",
"api_base": "http://localhost:1234/v1",
"default_model": "local-model",
})
response = await provider.chat(ChatRequest(
messages=[ChatMessage(role="user", content="Hello")],
max_tokens=256,
))
print(response.content)
Streaming
async for chunk in provider.chat_stream(request):
if chunk.type == "content_delta":
print(chunk.content, end="", flush=True)
Ollama extras
from uc_llm_provider import get_provider
ollama = get_provider({"provider_type": "ollama", ...})
# List installed models
models = await ollama.list_local_models()
# Pull a model
async for status in ollama.pull_model("mistral"):
print(status)
# Check if running
running = await ollama.is_running()
Custom provider
from uc_llm_provider import register_provider
from uc_llm_provider.providers.template import TemplateProvider
class MyProvider(TemplateProvider):
def _get_endpoint(self, path=""):
return "https://api.myprovider.com/v1/chat"
register_provider("myprovider", MyProvider)
provider = get_provider({"provider_type": "myprovider", ...})
Supported provider_type values
| Value | Provider |
|---|---|
anthropic |
Anthropic Claude |
openai |
OpenAI |
google |
Google Gemini |
ollama |
Ollama (local) |
openai_compatible |
Any OpenAI-compatible API |
lm_studio / lmstudio |
LM Studio |
vllm |
vLLM |
llamacpp |
llama.cpp server |
localai |
LocalAI |
License
MIT
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
uc_llm_provider-0.1.1.tar.gz
(20.3 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
File details
Details for the file uc_llm_provider-0.1.1.tar.gz.
File metadata
- Download URL: uc_llm_provider-0.1.1.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65e6552dfbd2c323c82608a9a1ecde94096c9ade455850287d2795c8ee2292ee
|
|
| MD5 |
8def21f56b6552fb95ae79b920e5160c
|
|
| BLAKE2b-256 |
0e52e627801f33667a15824370e01f29ff9660126a99004db31b9cb76cb7687b
|
File details
Details for the file uc_llm_provider-0.1.1-py3-none-any.whl.
File metadata
- Download URL: uc_llm_provider-0.1.1-py3-none-any.whl
- Upload date:
- Size: 28.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfa4426d5a370e0fe4bf4875249ad4611e1c516a5174df5a6cdf7c34ca71b47d
|
|
| MD5 |
248f4bcdfd14adc187fb97cc55de9e7e
|
|
| BLAKE2b-256 |
11a66dbd16a62f91450b7b373479e86ddd96f5c03b358e85386a78852ecf608c
|