Ollama e LiteLLM: como transformar um script Python em um chat LLM completo no console
Na segunda parte do guia sobre Ollama e LiteLLM, um script Python simples é transformado em um chat LLM no console. São adicionados um loop de conversa, um syst

Во второй части гайда по Python, Ollama и LiteLLM автор переходит от разового вызова модели к полноценному консольному чату. Из простого скрипта получается заготовка для локального AI-приложения: с постоянным диалогом, системной ролью и защитой от типичных сбоев.
От скрипта к чату Первый шаг здесь не в смене модели, а в смене сценария работы.
Одноразовый запрос хорош для проверки, что связка Python, Ollama и LiteLLM вообще отвечает. Но как только хочется задать уточнение, поменять формулировку или продолжить мысль, такой скрипт быстро упирается в потолок. Консольный чат решает эту проблему самым прямым способом: программа не завершается после одного ответа, а остаётся в диалоге и позволяет общаться с моделью как с обычным собеседником в терминале.
Для разработчика это важный переломный момент. Вместо «вызвал API — получил текст» появляется минимальный интерфейс приложения: вход пользователя, история сообщений, ответ модели и управляющая логика вокруг них. LiteLLM здесь удобен как единый слой обращения к моделям, а Ollama закрывает локальный запуск.
В результате даже маленький учебный проект начинает напоминать реальный продукт, который уже можно запускать, тестировать и постепенно усложнять без полной переделки основы.
Что появляется в коде
Следующий слой — это детали, которые делают чат не просто циклом input/output, а управляемой программой. В таких примерах особенно ценны не «магические» фичи, а базовые инженерные элементы: кто задаёт роль модели, где хранится контекст и что происходит, если запрос ломается. Именно из них складывается ощущение, что перед тобой не демо на пять минут, а рабочая заготовка под локального ассистента.
- Цикл общения, который принимает новые сообщения до команды выхода System prompt, задающий роль, тон и границы поведения модели Список сообщений, чтобы модель видела предыдущие реплики и держала контекст Базовая валидация ввода, чтобы не отправлять пустые запросы Обработка исключений, чтобы программа не падала после первого сбоя Каждый из этих пунктов выглядит простым, но вместе они меняют качество взаимодействия. System prompt нужен не только для «характера» бота: через него удобно закреплять правила ответа, формат, язык и ограничения. История сообщений позволяет вести связный разговор, а не повторно объяснять задачу на каждом ходе. Обработка ошибок экономит время при отладке: если локальная модель зависла, Ollama не запущен или LiteLLM вернул исключение, сессия не теряется целиком.
Первые шаги к приложению Отдельно важна мысль про первые шаги к «живому»
AI-приложению. Консольный интерфейс кажется скромным, но именно на нём проще всего проверить, как бот ведёт себя в реальном диалоге, где пользователь формулирует мысли неидеально, задаёт уточнения и постоянно меняет контекст. Здесь быстро становятся видны слабые места: слишком общий системный промпт, неудобный формат вывода, отсутствие команд для выхода или перезапуска, неочевидные ошибки при загрузке модели.
Такой каркас легко расширять дальше без лишней архитектуры. Поверх него можно добавить стриминг токенов, отдельные команды вроде /clear для сброса истории, переключение моделей, логирование диалогов или подключение инструментов. Но ценность текущего шага в другом: автор показывает, что полезный интерфейс начинается не с GUI и не с веб-приложения, а с надёжного цикла общения в терминале.
Если этот слой сделан аккуратно, дальше проще расти и в сторону продукта, и в сторону экспериментов.
Что это значит Для тех, кто собирает локальные AI-инструменты на Python, этот этап обязателен.
Связка Ollama и LiteLLM становится интересной не в момент первого успешного ответа, а тогда, когда вокруг модели появляется нормальный контур общения. Консольный чат — это минимальная форма такого контура: достаточно простая для старта и достаточно полезная, чтобы на ней строить следующий слой функциональности.