Skip to main content

輕量級 LLM 模型追蹤與自動替換 Decorator

Project description

LLM Smart Route 🚀

A lightweight, non-intrusive self-healing model router for LLM applications.

PyPI version Python 3.11+ License: MIT CI Status Ruff

llm-smart-route 是一個輕量的 Python Decorator 套件,專為解決 LLM 模型生命週期管理而生。當您指定的模型因供應商更新或棄用而失效時,此工具會自動偵測並切換至同家族的最佳候選版本,確保您的生產環境服務不中斷。


📌 目錄


✨ 核心特點

  • 🧠 智慧路由 (Self-healing): 自動捕獲模型失效異常,動態查詢並切換至同家族最佳候選版本。
  • 🔌 非侵入性設計: 無須改動現有 SDK 呼叫邏輯,僅需掛載一個 @smart_model 裝飾器。
  • 💾 持久化快取 (Persistence): 記憶成功的模型替換映射,顯著降低 API 偵測開銷。
  • 🔔 主動警報: 支援 Slack、Line 與自訂通知器,讓開發者即時掌握模型更新。
  • 🚀 極致輕量: 核心僅依賴標準庫與必要的供應商 SDK (可選安裝)。
  • 🌍 多供應商支援: 深度整合 Anthropic, Google, OpenAI, Alibaba, Mistral 等主流 AI 模型。

🚀 快速開始

安裝

您可以根據需求選擇安裝核心功能或特定供應商支援:

# 基礎安裝
pip install llm-smart-route

# 針對特定供應商與通知功能安裝 (推薦)
pip install "llm-smart-route[gemini,slack]"
pip install "llm-smart-route[all]"

基礎用法

只需在您的模型呼叫函數上掛載裝飾器:

from llm_smart_route import smart_model
import anthropic

@smart_model(provider="claude", model="claude-3-5-sonnet-20241022")
def ask_ai(model: str, prompt: str):
    # 如果 claude-3-5-sonnet 過期, Decorator 會自動將 model 替換為最新版 (例如 claude-4-5-sonnet)
    client = anthropic.Anthropic()
    return client.messages.create(
        model=model,
        messages=[{"role": "user", "content": prompt}]
    )

# 像往常一樣正常呼叫
response = ask_ai(prompt="Hello, who are you?")

🤖 供應商支援矩陣

供應商 (Provider) 別名 (Aliases) 建議標籤 支援 SDK
Anthropic claude, anthropic haiku, sonnet, opus anthropic
Google gemini, google flash, pro google-genai
OpenAI openai, gpt mini, o1, gpt-4o openai
Alibaba qwen, alibaba turbo, plus, max dashscope
Mistral mistral small, medium, large mistralai

⚙️ 進階配置

通知功能

當發生模型自動替換時,您可以設定主動通知:

from llm_smart_route import smart_model, create_slack_notifier

slack_notify = create_slack_notifier() # 預設讀取環境變數 SLACK_BOT_TOKEN

@smart_model(provider="openai", model="gpt-4o-mini", on_replace=slack_notify)
def call_gpt(model, prompt):
    ...

持久化快取

您可以自訂快取檔案路徑,以便在不同的執行環境中共享模型映射:

from llm_smart_route import configure_cache

configure_cache(cache_path="./data/router_cache.json")

🛠️ 工作原理

llm-smart-route 採用「攔截-偵測-修復」的工作流:

  1. 攔截: Decorator 接入並讀取配置。
  2. 偵測: 執行函數,若觸發 ModelNotFoundError 類型的異常,則進入自動修復。
  3. 修復:
    • 查詢 Provider API 獲取 Active 模型清單。
    • 基於語意與關鍵字匹配同系列模型。
    • 依據版本號進行排序與選擇。
  4. 驗證與快取: 使用新模型重試,成功後將映射存入快取文件,效期內不再重複查詢。

📖 文檔與範例


🧪 開發與測試

本專案使用 Poetry 進行依賴管理與 pytest 測試。

# 安裝開發依賴
poetry install

# 執行單元測試
poetry run pytest tests/unit/

📄 授權

基於 MIT License 開源。詳見 LICENSE 文件。

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

llm_smart_route-0.1.0.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

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

llm_smart_route-0.1.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for llm_smart_route-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b2c8a57843c0732f1d4cc0a795e62703b9c1028be34d9807bb571d71bf66ce71
MD5 9b8529d27a350e8247bc2c07766943f6
BLAKE2b-256 a622bf32b11562d8edaea9700544176e868f1cc5388c10f5dc62a3be53287616

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on YuChieh-Chiu/LLM-Smart-Route

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

File details

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

File metadata

File hashes

Hashes for llm_smart_route-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e890b29d8f941b74982bf1dbf5213bbad083763a0fe84ac42515f585c641a67
MD5 ba7dd5a07b3e2511e850274386db4eb9
BLAKE2b-256 545c954e891c4992fb4b203f4085bfd1a9def1994d8d8ced22f13dc965d3be78

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on YuChieh-Chiu/LLM-Smart-Route

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