PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Redress.

redress — это лёгкая библиотека для умных повторных попыток в Python‑сервисах: она классифицирует ошибки по классам и подбирает для каждого свой backoff, с единым хуком для метрик и логов.

🔹Основные идеи:

🔘Классификатор ошибок: default_classifier распределяет исключения по фиксированному набору ErrorClass (PERMANENT, CONCURRENCY, RATE_LIMIT, SERVER_ERROR, TRANSIENT, UNKNOWN), плюс может вернуть retry_after_s и детали.

🔘Стратегии для каждого класса ошибок: для каждого ErrorClass можно задать отдельный алгоритм задержки (decorrelated_jitter, equal_jitter, token_backoff, retry_after_or и др.), поверх стандартной стратегии.

🔘Детерминированная «оболочка» повторов: deadline_s, max_attempts и max_unknown_attempts позволяют жёстко ограничить поведение и избежать бесконечных или хаотичных попыток.

🔘Наблюдаемость: единый on_metric‑хук получает события success, retry, permanent_fail, deadline_exceeded, max_attempts_exceeded, max_unknown_attempts_exceeded плюс теги, что удобно для Prometheus/OpenTelemetry.

🔘Симметрия синхронного и асинхронного кода: есть RetryPolicy и AsyncRetryPolicy с одинаковой моделью, плюс удобный декоратор @retry и контекстный менеджер policy.context для групповых вызовов.

🔻Типичный процесс использования:

🔘Установить:
pip install redress

🔘Описать политику с классифицированными стратегиями:
  from redress.policy import RetryPolicy
from redress.classify import default_classifier, ErrorClass
from redress.strategies import decorrelated_jitter, equal_jitter

policy = RetryPolicy(
classifier=default_classifier,
strategy=decorrelated_jitter(max_s=10.0),
strategies={
ErrorClass.CONCURRENCY: decorrelated_jitter(max_s=1.0),
ErrorClass.RATE_LIMIT: decorrelated_jitter(max_s=60.0),
ErrorClass.SERVER_ERROR: equal_jitter(max_s=30.0),
},
)


🔘Подключить механизм повторов к функции: через policy.call(), декоратор @retry или контекстный менеджер с общими metric‑хуками.

Отдельный плюс для боевых систем — CLI redress doctor, который проверяет RetryConfig/RetryPolicy и выводит нормализованный снапшот конфигурации, чтобы поймать странные комбинации max_attempts/deadline и стратегий ещё до развёртывания.

#redress #Python #RetryPolicy #Resilience #Observability #FaultTolerance #Backoff #ErrorHandling #Logging

📱Ссылка на репозиторий:
https://github.com/aponysus/redress
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥2👍11
📱Tracesage.

Tracesage —
это легковесный инструмент локального мониторинга и визуализации мультиагентных систем, построенных на базе LangChain и LangGraph.

Достаточно добавить всего пару строк кода, чтобы запустить интерактивный трейсинг выполнения ИИ-агентов в реальном времени прямо в браузере. Инструмент перехватывает весь поток колбэков LangChain (запуски цепочек, вызовы инструментов, LLM-запросы, ретривал, ошибки) и наглядно раскладывает его по полочкам.

🔹Главные преимущества:

🔘Нулевая инфраструктура: Никакого Docker, Postgres или сторонних облачных сервисов. Только чистый pip install. Все данные сохраняются локально в SQLite, а веб-интерфейс работает полностью оффлайн.

🔘Интеграция в две строки: Вам не нужно менять логику работы ваших агентов. Просто добавьте колбэк-хэндлер в ваш метод ainvoke.

🔘Интерактивный граф (UI): Кастомный легковесный SVG-граф автоматически строит топологию вызовов. Вы можете кликать на любой шаг, изучать промпты, логи ответов, токены, задержки и ошибки.

🔘Поддержка MCP (Model Context Protocol): Утилита автоматически определяет, из каких именно MCP-серверов были подгружены инструменты, визуализируя их происхождение.

🔘Мост в продакшн (OpenTelemetry): Локальные трейсы можно легко экспортировать в виде OTel-спанов в ваши корпоративные системы мониторинга (Grafana Tempo, Jaeger, Datadog, Honeycomb).

🔘Безопасность (Crash-safe): Локальный обработчик изолирован и никогда не вызовет падение основного конвейера вашего приложения при сбоях.

🚀Быстрый старт:

Установка (для zsh обязательно берите в кавычки):

pip install "tracesage[langchain]"


Использование в синхронных скриптах или Jupyter-ноутбуках для автоматического глобального перехвата:

import tracesage

with tracesage.trace() as tl:
# Трейсится автоматически, в консоль выводится кликабельная ссылка
result = agent.invoke("Создай план поездки")
input("Трейс готов — откройте ссылку в консоли и нажмите Enter для выхода.")


По умолчанию интерфейс поднимается на http://localhost:7842/ui.

🛠Инструменты разработчика (CLI и Тестирование):

tracesage предлагает мощные команды для отладки прямо из терминала:

🔘tracesage show <run_id> — отрисовать структуру выполнения в виде дерева в консоли.

🔘tracesage watch <run_id> — стриминг событий в реальном времени.

🔘tracesage diff <run_a> <run_b> — сравнение двух запусков по токенам, времени и ошибкам.

Также инструмент автоматически регистрирует фикстуру tracesage_capture для pytest, позволяя писать интеграционные тесты на поведение ИИ-агентов (например, проверять, вызывался ли конкретный инструмент и не превышен ли лимит токенов).

#Python #LangChain #LangGraph #AI #MultiAgent #Observability #DevTools #OpenSource #LLM

📱Ссылка на репозиторий:
https://github.com/kjgpta/tracesage
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3⚡2👍1