Skip to main content

LiteLLM adapter for Sefia.

Project description

sefia-litellm

A sefia LLMClient implementation that connects to various LLM providers via LiteLLM.

Install

pip install sefia-litellm

Or through the stack: pip install 'sefios[litellm]'.

Usage

import sefia_litellm

client = sefia_litellm.LiteLLMClient(model="gpt-4o")

Suppressing LiteLLM logging

LiteLLM logs through the standard-library LiteLLM logger — mostly INFO-level messages that become visible whenever your application configures logging at INFO/DEBUG — and, when a request raises, prints debug info including a Provider List: ... banner. LiteLLMClient silences all of this by default.

Real failures still surface: LiteLLM raises exceptions on errors (which this client maps to sefia exceptions), so silencing the logs never hides a failure.

There are two ways to control this:

  • Constructor argument suppress_logs (takes precedence)

    # Suppress logs (default)
    client = sefia_litellm.LiteLLMClient(model="gpt-4o")
    client = sefia_litellm.LiteLLMClient(model="gpt-4o", suppress_logs=True)
    
    # Let LiteLLM log as usual
    client = sefia_litellm.LiteLLMClient(model="gpt-4o", suppress_logs=False)
    
  • Environment variable SEFIA_LITELLM_SUPPRESS_LOGS (used as the default when suppress_logs is None)

    # Disable suppression (let logs through). 0/false/no/off disable it.
    export SEFIA_LITELLM_SUPPRESS_LOGS=false
    

    An explicit suppress_logs argument overrides the environment variable. When unset, suppression is on.

When suppression is on, the LiteLLM logger is fully silenced (its level is set above CRITICAL) and litellm.suppress_debug_info is set to True. The logger level is applied as soon as sefia_litellm is imported — before LiteLLM itself is imported — so even LiteLLM's import-time warnings (e.g. optional-dependency preload warnings) are suppressed.

On slow imports

Importing LiteLLM is heavy and can take around a second (see BerriAI/litellm#7605).

This package mitigates that as follows:

  1. Lazy import — LiteLLM is imported only inside the methods that actually send a request. Importing sefia_litellm alone costs nothing. After the first request the module is cached in sys.modules, so subsequent imports are effectively free. This is the primary mitigation.

  2. Local model cost mapLITELLM_LOCAL_MODEL_COST_MAP=True is set before LiteLLM is imported so that it uses its bundled cost map JSON instead of fetching it over the network. This speeds up the import and keeps it working offline.

    If you need up-to-date pricing for the newest models and the bundled map is stale, you can restore the original behavior:

    export LITELLM_LOCAL_MODEL_COST_MAP=False
    
  3. (Optional) Warm up at startup — if you also want to hide the first request's latency, import LiteLLM in the background during application startup. A daemon thread works regardless of whether an asyncio event loop is running yet:

    import threading
    
    threading.Thread(target=__import__, args=("litellm",), daemon=True).start()
    

Status

Early development. APIs may change before v1.0.

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

sefia_litellm-0.1.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

sefia_litellm-0.1.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sefia_litellm-0.1.0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sefia_litellm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d2cc869965425b584511119866e6648937aaab98a21ebb3e5b28d8a4cf35aedd
MD5 c258fcb649dd528053ecb682e90924a4
BLAKE2b-256 e77e3dd68bebe74748a576d9d278a553322d1850e3f62bbce49ad6abf1b2939e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sefia_litellm-0.1.0.tar.gz:

Publisher: publish-sefia-litellm.yml on nueruyu/sefia

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: sefia_litellm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sefia_litellm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53ec6a81cbd4a014218d3fadd3ec01d28168fa57ed6f8c2a5cfc1b8f20ccb1c1
MD5 a72112990419b45a7430599646dac619
BLAKE2b-256 cc32da7d47ef256b08cd62221db332576abfbaafefef8a1b9fff9f849d2c10f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for sefia_litellm-0.1.0-py3-none-any.whl:

Publisher: publish-sefia-litellm.yml on nueruyu/sefia

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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