Skip to main content

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.0.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

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

uc_llm_provider-0.1.0-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file uc_llm_provider-0.1.0.tar.gz.

File metadata

  • Download URL: uc_llm_provider-0.1.0.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for uc_llm_provider-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cd485c66acf1089aa03d38d0c1d58cae8492e56822722480cca7e5fef0121e00
MD5 f32f98a880593a1f291f9531fd2f1094
BLAKE2b-256 17a12bd72b8c1871d76efc897c1f2b7c1dc079e9d52207517db2d1cb3911ab18

See more details on using hashes here.

File details

Details for the file uc_llm_provider-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for uc_llm_provider-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66ed984c993f23db0082191e00d71f5edf205924c22b6b92769f9670725325c4
MD5 6c2666fc0b9e85df2b2cc9a23bd41b8c
BLAKE2b-256 0b1294bafbc79e8c2a9d8d7783c80ef0ee99e7bd576e334430a0a6b29963bc6d

See more details on using hashes here.

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