bananaml/fructose
Агенты⭐ 747Python
Что это за инструмент
Fructose — это легковесная Python-библиотека, которая позволяет вызывать LLM через декоратор @ai, автоматически преобразуя типизированные функции в промпты и гарантируя строго типизированный вывод.
Зачем нужен
Инструмент решает задачу надежного получения структурированных данных от LLM, убирая необходимость вручную парсить текст ответа. Он полезен для создания стабильных интерфейсов вокруг LLM-вызовов, где критична типизация возвращаемых значений (например, dataclass или примитивы).
Что можно реализовать
- Генерация структурированных объектов (например, dataclass Person) на основе текстового описания.
- Анализ списков данных (например, список животных) с возвратом строго типизированного результата.
- Создание цепочек вызовов, где LLM-функция использует локальные Python-функции (local function calling) через аргумент uses.
- Интеграция с альтернативными LLM-провайдерами через кастомный OpenAI-клиент (при условии поддержки json mode и tools API).
Ключевые возможности
- Декоратор @ai, который интроспектирует функцию и автоматически строит промпт на основе аннотаций типов и docstring.
- Поддержка сложных типов: dataclass, Enum, Optional, вложенные структуры, а также примитивов (str, int, bool, float).
- Local function calling: возможность передавать локальные функции в LLM-вызов через аргумент uses.
- Гибкая настройка промптов через Jinja-шаблоны и флаги (flavors), такие как chain_of_thought и random.
- Использование OpenAI json mode для гарантированного возврата валидного JSON.
👤 Кому подойдёт: Python-разработчики, создающие приложения с LLM, которым важна типобезопасность и минимизация парсинга ответов.
Релизы
Релизы ещё не отслежены — появятся после ближайшего опроса.