BlackHC/llm-strategy

Прямое подключение Python к LLM через сильно типизированные функции, dataclass, интерфейсы и обобщённые типы

Инструменты⭐ 401Pythonпоследний релиз: 2.1.1
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

llm-strategy — это Python-библиотека, позволяющая использовать LLM для реализации абстрактных методов интерфейсов через декоратор @llm_strategy, автоматически преобразуя ответы модели в строго типизированные объекты Python.

Зачем нужен

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

Что можно реализовать

  • Реализация абстрактных методов интерфейсов с помощью LLM (например, генерация текста или анализ данных по заданному контракту).
  • Автоматическое преобразование ответов LLM в Python dataclasses на основе docstrings и аннотаций типов.
  • Исследование и мета-оптимизация гиперпараметров LLM с помощью трекинга экспериментов (WandB) и сбора трасс выполнения.
  • Создание генерических систем обработки задач, где LLM выступает как 'вычислительный узел' внутри типизированной архитектуры.

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

  • Декоратор @llm_strategy, который автоматически связывает Python-интерфейсы с LLM.
  • Использование docstrings, аннотаций типов и имен методов как промптов для LLM.
  • Автоматическая конвертация ответов LLM в Python dataclasses.
  • Встроенная поддержка исследования (research) с трекингом гиперпараметров и сбором трасс (traces) для оптимизации.
  • Поддержка Generic-типов для создания масштабируемых и переиспользуемых шаблонов взаимодействия с LLM.

👤 Кому подойдёт: Python-разработчики, инженеры по машинному обучению, исследователи, работающие с LLM и стремящиеся к строгой типизации и автоматизации интеграции AI в свои приложения.

Релизы

2.1.1patch
🕐 33 мес назад · релиз на GitHub ↗

Исправлена обработка response_format: теперь параметр ограничен только поддерживаемыми моделями OpenAI.

  • Fixed: Ограничено применение response_format только моделями OpenAI, которые официально поддерживают эту функцию.