Универсальный и легковесный фреймворк для взаимодействия с большими языковыми моделями (LLM). Он предоставляет чистый, типизированный интерфейс для синхронных и стриминговых запросов и совместим с любым OpenAI-совместимым API.
Основные принципы
- Единый интерфейс:
AIBaseHandler
предоставляет единую точку входа для всех типов LLM-взаимодействий, будь то простой запрос, стриминг или получение структурированных данных. - Строгая типизация: Все конфигурации, промпты и ответы строго типизированы с помощью Pydantic, что обеспечивает надежность кода и предсказуемость результатов.
- Гибкость провайдеров: Фреймворк абстрагирован от конкретной реализации LLM, позволяя легко переключаться между OpenAI, Azure, локальными моделями через Ollama/vLLM или вашим собственным сервером.
- Управление промптами: Встроенная система с поддержкой Jinja2 позволяет удобно хранить, версионировать и динамически генерировать промпты.
Ключевые возможности
- 🌐 Универсальность: Поддержка OpenAI, Azure, vLLM, Ollama и любых других OpenAI-совместимых API.
- 🛡️ Типобезопасность: Полная типизация на Pydantic для конфигураций, запросов и ответов, что минимизирует ошибки.
- 🏗️ Структурированные ответы: Гарантированное получение JSON по вашей Pydantic-схеме напрямую из LLM.
- ⚡ Поддержка стриминга: Встроенная асинхронная обработка потоковых ответов с подсчетом токенов в реальном времени.
- ⚙️ Управление промптами: Гибкая система хранения и рендеринга шаблонов с использованием Jinja2.
- 📈 Надёжность: Встроенные механизмы автоматических повторных запросов при сбоях и точный подсчет использованных токенов.
Технологии
- Python 3.10+
- OpenAI API (как стандарт взаимодействия)
- Pydantic (для валидации данных и типизации)
- Jinja2 (для шаблонизации промптов)
- Asyncio (для асинхронных операций)
Подробнее о проекте и исходный код доступны на GitHub: ascorblack/LightUniLLM.