Русский
Открыть в Telegram

Пост Заметки по LiteLLM - вторая часть.

24 августа 2026
(
(java || kotlin) && devOps
Заметки по LiteLLM - вторая часть. 1) в лучших традициях open-source из коробки LiteLLM запускается на 0:0:0:0 - т.е. доступна снаружи. Решается параметром --host 127.0.0.1 2) логирование ошибок на троечку - вместо одного конкретного сообщения они логируют исключения на нескольких уровнях, в итоге часть сообщений об ошибках нужно просто игнорировать. В debug режиме много дублирования - одно и тоже http сообщение появляется в логах несколько раз. Справедливости ради, как раз debug режим позволил мне найти причину ошибки с зацикливанием запроса на прокси. 3) очевидно, чтобы хранить статистику - нужна БД. В инструкции по инсталляции об этом сказано вскользь. Как и том, что кроме отдельной database еще нужно ставить Prisma - Node.js ORM с функционалом миграции БД. Это при том, что приклад написан на Python. И более того - из исходников Prisma нужно собрать бинарь для накатывания миграции. Как это сделать - я выяснил с AI-шкой. 4) цену запросов для неизвестных для системы провайдеров LLM можно вбить прямо в config.yaml - файл настроек. Это хорошо. Плохо то, что после этого LiteLLM все равно будет ругаться на отсутствующие тарифы. Т.е. понять что все работает можно запустив агента и посмотрев статистику по тарифам 5) для подписки Anthropic стоимость считается по тарифам API. На первый взгляд странно. Но с другой стороны - у подписки вообще нет стоимости токена, вместо этого есть оставшийся лимит. А видеть стоимость полезно для оценки насколько выгодна подписка. 6) LiteLLM смешивает понятие формат API и провайдер. Т.е. невозможно задать провайдер Deepseek и формат API Anthropic. В данном примере: - model_name: deepseek-v4-flash litellm_params: model: anthropic/deepseek-v4-flash api_base: https://api.deepseek.com/anthropic оба этих параметра определяются по model: anthropic/ Т.е. либо преобразуем формат в OpenAI (как нативный формат Deepseek) и есть раздельный учет по провайдерам в статистике, либо без преобразований, но все сидят на одном провайдере. 7) есть важная настройка general_settings: forward_client_headers_to_llm_api: true Она позволяет пробрасывать к провайдеру клиентские заголовки, начинающиеся с x-. Нужна, например, для пробрасывания заголовков Claude Code со списком поддерживаемых клиентом фичей. Вроде бы все хорошо, штука полезная. Но как выяснилось при разборе логов - в процессе пробрасывания есть фильтрация (вырезание) неизвестных для LiteLLM заголовков. Как я понял, это нужно, чтобы резать заголовки с секретами, которые клиент шлет, а в LLM провайдер передавать нельзя по каким-то (каким?) причинам. Резали бы только свои заголовки, типа x-litellm-api-key - ключ для аутентификации в LiteLLM. Это еще пол-беды. Плохо то, что ни отключить, ни настроить эту фильтрацию нельзя. Сейчас у меня все работает, но учитывая борьбу того же Anthropic с не-родными клиентами - потенциально опасная штука. Получилось как список проблем, но конечно же есть и плюсы) #ai #ai_agents
94 ·

Рядом в ленте

((java || kotlin) && devOpsМожно ли чему-то научиться у AI? Базовый ответ - да, т.к. в LLM в процессе обучения попало множество документации и кода, который я, например, никогда не видел.((java || kotlin) && devOpsЗаметки про LiteLLM. Во-первых - это не LLM) Это SDK, предоставляющий унифицированный доступ к LLM провайдерам - типа Spring AI - и AI прокси. Вот второй use ca
это сообщение
((java || kotlin) && devOpsЕще про стандартизацию AI. Как говорил ранее - стандарта для настроек агентов сейчас нет. .claude, .codex, .qwen, .gigacode, и внутри структура немножко отличае((java || kotlin) && devOpsИ снова рубрика "Находки из Python". Как вы думаете, что делает вот такая конструкция? @pytest.mark.xfail(strict=True, reason = "будет исправлено в задаче TASK-
((java || kotlin) && devOps(java || kotlin) && devOps@javaKotlinDevOps · канал · Технологии
339подписчиков104средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем