Универсальный и легковесный фреймворк для взаимодействия с большими языковыми моделями (LLM). Он предоставляет чистый, типизированный интерфейс для синхронных и стриминговых запросов и совместим с любым OpenAI-совместимым API.

Основные принципы

  1. Единый интерфейс: AIBaseHandler предоставляет единую точку входа для всех типов LLM-взаимодействий, будь то простой запрос, стриминг или получение структурированных данных.
  2. Строгая типизация: Все конфигурации, промпты и ответы строго типизированы с помощью Pydantic, что обеспечивает надежность кода и предсказуемость результатов.
  3. Гибкость провайдеров: Фреймворк абстрагирован от конкретной реализации LLM, позволяя легко переключаться между OpenAI, Azure, локальными моделями через Ollama/vLLM или вашим собственным сервером.
  4. Управление промптами: Встроенная система с поддержкой Jinja2 позволяет удобно хранить, версионировать и динамически генерировать промпты.

Ключевые возможности

  • 🌐 Универсальность: Поддержка OpenAI, Azure, vLLM, Ollama и любых других OpenAI-совместимых API.
  • 🛡️ Типобезопасность: Полная типизация на Pydantic для конфигураций, запросов и ответов, что минимизирует ошибки.
  • 🏗️ Структурированные ответы: Гарантированное получение JSON по вашей Pydantic-схеме напрямую из LLM.
  • Поддержка стриминга: Встроенная асинхронная обработка потоковых ответов с подсчетом токенов в реальном времени.
  • ⚙️ Управление промптами: Гибкая система хранения и рендеринга шаблонов с использованием Jinja2.
  • 📈 Надёжность: Встроенные механизмы автоматических повторных запросов при сбоях и точный подсчет использованных токенов.

Технологии

  • Python 3.10+
  • OpenAI API (как стандарт взаимодействия)
  • Pydantic (для валидации данных и типизации)
  • Jinja2 (для шаблонизации промптов)
  • Asyncio (для асинхронных операций)

Подробнее о проекте и исходный код доступны на GitHub: ascorblack/LightUniLLM.