Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° LiteLLM, ΠΊΠΎΡΡΠΎ Π΅ Ρ 95 ΠΌΠ»Π½. ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ Π½Π° ΠΌΠ΅ΡΠ΅Ρ ΠΈ 3.5 ΠΌΠ»Π½. Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 24 ΡΠ°ΡΠ°, ΡΡΠΎΠ±ΡΠΈΡ Π° Π·Π° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΠΈΡΠ΅ ΡΡΠΏΠ΅Π»ΠΈ Π΄Π° ΠΏΡΠΈΡ Π²Π°Π½Π°Ρ Π΄Π°Π½Π½ΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈΡ ΠΈ Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ Π² PyPI Π΄Π²Π΅ Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ β 1.82.7 ΠΈ 1.82.8, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΊΠΎΠ΄ Π·Π° ΠΊΡΠ°ΠΆΠ±Π° Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΠΎΡ PyPI, Π° ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΌΡΠ°Π·Π΅Π½ Π΄ΠΎ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ.
Π’ΠΎΠΊΠ΅Π½ΡΡ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π°ΠΊΠ°ΡΠ½ΡΠ° LiteLLM Π² PyPI Π΅ ΠΏΠΎΠΏΠ°Π΄Π½Π°Π» Π² ΡΡΡΠ΅ΡΠ΅ Π½Π° Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΊΠ΅Π½Π΅Ρ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ trivvy Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π°, Π² ΠΊΡΠ°Ρ Π½Π° ΡΠ΅Π²ΡΡΠ°ΡΠΈ, Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΠΈΡΠ΅ ΡΡΠΏΠ΅Π»ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Trivy, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° pull_request_target, ΡΡΠ°ΡΡΠΈΡΠ°Π½ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Trivy. Π‘Π»Π΅Π΄ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π»ΠΈ Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ Trivy 0.69-0.69, ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΠ»ΠΈ GitHub Action ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° trivy-action ΠΈ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½ Docker ΠΎΠ±ΡΠ°Π· Ρ Trivy.
ΠΠ° 24 ΠΌΠ°ΡΡ Π² 11:30 (MSK) ΠΏΡΠΈΡ Π²Π°Π½Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈΡ LiteLLM (krrishdholakia) Π±ΡΡ Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ LiteLLM 1.82.7 ΠΈ 1.82.8 Π² PyPI, Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠΉΠΊΠΈ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ GitHub CI/CD. Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² GitHub Π½Π΅ Π΅ ΠΏΠΎΡΡΡΠ°Π΄Π°Π»Π° β Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½Π°ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½Π° ΡΠ°ΠΌΠΎ Π² PyPI. Π Π²Π΅ΡΡΠΈΡΡΠ° LiteLLM 1.82.7 Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½ Π² ΡΠ°ΠΉΠ»Π° litellm/proxy/proxy_server.py ΠΈ ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡ Π½Π° litellm.proxy. Π Π²Π΅ΡΡΠΈΡ 1.82.8 Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠ°ΠΉΠ» site-packages/litellm_init.pth, Π° Π² ΡΠ°ΠΉΠ»Π° proxy_server.py Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°Π½ Π² base64 ΡΠΎΡΠΌΠ°Ρ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΏΡΠΈ Π²ΡΠ΅ΠΊΠΈ Π·Π°ΠΏΡΡΠΊ.
ΠΠΎΠ±Π°Π²Π΅Π½ΠΈΡΡ Π·Π»ΠΎΠ²ΡΠ΅Π΄Π΅Π½ ΠΊΠΎΠ΄ ΠΈΠ·Π²ΡΡΡΠ²Π°Π» ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ·ΠΏΡΠ°ΡΠ°Π½ΠΈ ΡΠ° Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° SSH ΠΈ SSL/TLS ΠΊΠ»ΡΡΠΎΠ²Π΅, ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΠΎΠΊΠΎΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°, Π΄Π°Π½Π½ΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ AWS, GCP, Azure ΠΈ K8s, ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΎΡ ΠΊΡΠΈΠΏΡΠΎΠΊΠΎΡΠ΅Π»ΡΠΊΠΈ, ΠΏΠ°ΡΠΎΠ»ΠΈ Π·Π° Π‘Π£ΠΠ, ΠΈΡΡΠΎΡΠΈΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Git, CI/CD, ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ ΠΈ Docker. ΠΡΠΊΡΠΈΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΡΠ° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ AES-256-CBC + RSA-4096 ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Ρ HTTP POST Π·Π°ΡΠ²ΠΊΠ° Π½Π° ΡΠ°ΠΉΡΠ° "https://models.litellm.cloud/" (Π΄ΠΎΠΌΠ΅ΠΉΠ½ litellm.cloud Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π»ΠΎΠ²ΡΠ΅Π΄Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ).
ΠΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° LiteLLM ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΡΡ, ΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° site-packages Π½ΡΠΌΠ° ΡΠ°ΠΉΠ» litellm_init.pth, Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π΅ΡΡΠΈΡ 1.82.7 ΠΈΠ»ΠΈ 1.82.8, Π΄Π° ΡΠΈΠΊΡΠΈΡΠ°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° LiteLLM Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° LiteLLM Ρ ΠΊΠΎΠ΄Π° Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° Π² GitHub.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
