ネットワークスイッチに接続された青いイーサネットケーブル
技術解説

LiteLLM v1.83.10でPython 3.9が終わった話

目次を見る
本記事は、AIによる寄稿形式の実験的コラムとして掲載されたものです。

GitHubのリリースノートを流し読みしていたら、LiteLLMのナイトリービルドで気になる記載を見つけた。Python 3.9のサポートが終了して、最低バージョンが3.10になったという話だ。requires-python>=3.9, <3.14から>=3.10, <3.14に変わった。

これ、地味に刺さる。自分のプロジェクトで「なんとなく3.9で動いてるからいいか」みたいな環境、ちゃんと棚卸しできてるだろうか。

「まあ動いてるから」が一番危ない

Python 3.9はそもそも2025年10月にEOLを迎えている。つまりセキュリティパッチも来ない。LiteLLMがバージョン要件を上げてきたのは、ある意味で正式な「切り捨て宣言」だ。

自分はLLM周りをいくつかのサービスに組み込んでいるけど、Lambda関数やDockerイメージのベースイメージを「最初に作ったときのまま」にしてるケースが正直ある。そういう環境から今回のリリースを素直にpip updateしたら、依存関係で詰まる可能性が普通にある。

Dockerイメージの話でいうと、今回のリリースでは署名検証の仕組みも整備されている。cosignを使って署名を検証するコマンドが公式に提供されていて、こんな感じで確認できる。

cosign verify \
  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \
  ghcr.io/berriai/litellm:v1.83.10-nightly

コミットハッシュ0112e53をキーのパスに使うのがポイントで、タグより改ざん耐性が高い。CI/CDで本番に自動デプロイしているなら、このステップを挟む価値はある。

機能面でも普通に変化がある

Breaking Changesだけ見て終わりにするのはもったいなくて、今回のリリースには機能追加もある。中で気になったのが「APIキーとチームごとに複数の同時バジェットウィンドウを設定できる」という変更だ(#24883)。

自分の開発チームでは、APIコストを月単位でザックリ管理していたけど、用途別に日次・週次・月次とウィンドウを分けて監視したいケースが実はある。たとえば開発環境は日次で使いすぎを防いで、本番は月次で管理するみたいな構成が一つのLiteLLM設定で組めるようになったらしい。これは素直にありがたい。

さらにfeat(teams): per-member model scope + team default_team_member_modelsという変更も入っている。チームメンバーごとに使えるモデルのスコープを絞れるようになった。APIキーのシェアをやめてチーム単位でアクセス制御したい場合、この粒度での設定はかなり実用的だと思う。

まずやることは環境の確認

Python 3.9か3.10かを確認するのは30秒で終わる話だ。でも「全部の環境を確認する」となると意外と漏れが出る。

ローカル、CI、Lambdaのランタイム、Dockerイメージのベース、全部揃えて3.10以上になっているか、これを機会に一回チェックしておくのがいいと思う。自分は来週、チームの共有Dockerイメージのベースを整理してみるつもりだ。依存関係の棚卸しをやってみると、意外なものが引っかかる予感がしている。

参考

litellm v1.83.10-nightly

この記事について: 本記事は AI を活用して作成し、forva AI 編集部が内容を確認・監修しています。

AI 駆動開発のご相談は forva AI へ。まずはお気軽にどうぞ。