Описание
magentic — это библиотека Python, предназначенная для упрощения интеграции больших языковых моделей (LLM) в ваши Python-проекты. Она позволяет разработчикам рассматривать взаимодействия с LLM как стандартные Python-функции, используя декораторы, такие как `@prompt` и `@chatprompt`, для определения промптов и получения структурированных выводов. Такой подход облегчает создание сложных агентных систем, бесшовно объединяя возможности LLM с существующим Python-кодом и внешними инструментами.
Читать далее
Основная функциональность magentic вращается вокруг его декораторов, которые преобразуют Python-функции в операции на базе LLM. Декоратор `@prompt` позволяет создавать функции, которые принимают аргументы, вставляют их в предопределенный шаблон промпта, а затем отправляют его в LLM для обработки. Вывод из LLM может быть простой строкой или структурированным объектом, таким как модель Pydantic, благодаря аннотациям типов. Декоратор `@chatprompt` расширяет эту возможность, позволяя использовать шаблоны сообщений чата, включая системные сообщения, сообщения пользователя и сообщения ассистента, что особенно полезно для few-shot промптинга и предоставления контекста.
magentic поддерживает расширенные функции, такие как вызов функций (function calling), где LLM может решить вызвать определенные Python-функции с предоставленными аргументами. Декоратор `@prompt_chain` дополнительно улучшает это, позволяя LLM связывать вызовы функций, используя вывод одного вызова в качестве входных данных для следующего, пока не будет достигнут окончательный ответ. Для приложений реального времени magentic предлагает возможности потоковой передачи как текстовых, так и структурированных выводов, позволяя разработчикам обрабатывать данные по мере их генерации. Асинхронное программирование также хорошо поддерживается, позволяя параллельные запросы к LLM для значительного ускорения времени генерации.
Библиотека может похвастаться широкой поддержкой поставщиков LLM, включая OpenAI, Anthropic и Ollama, с конфигурациями для различных API, совместимых с OpenAI. Эта гибкость позволяет разработчикам выбирать LLM, которая наилучшим образом соответствует их потребностям и бюджету. magentic также уделяет особое внимание опыту разработчиков, предлагая такие функции, как аннотации типов для лучшей интеграции с IDE и наблюдаемость через интеграцию с OpenTelemetry и Logfire. Она предназначена для разработчиков, стремящихся создавать интеллектуальные приложения, AI-агентов и сложные рабочие процессы, использующие мощь LLM в привычной среде Python.
- КатегорияКонструкторы AI-агентов
- Модель ценообразованияОткрытый код
- РазвёртываниеОблако
- ПлатформыВеб
Основные функции magentic
Интеграция LLM как Python-функций с использованием декораторов.
Определение промптов с помощью @prompt и сообщений чата с помощью @chatprompt.
Генерация структурированных выводов с использованием моделей Pydantic и типов Python.
Поддержка повторных попыток с помощью LLM для улучшения соответствия схеме вывода.
Наблюдаемость с интеграцией OpenTelemetry и Pydantic Logfire.
Параметры конфигурации для нескольких поставщиков LLM (OpenAI, Anthropic, Ollama).
Вызов функций и их цепочки для сложных рабочих процессов LLM.
Потоковая передача текстовых и структурированных выводов для обработки в реальном времени.
Поддержка асинхронных функций для параллельных запросов к LLM.
Аннотации типов для улучшенной поддержки IDE и линтинга.
Поддержка возможностей обработки изображений (vision) во взаимодействиях с LLM.
Начало работы с magentic
Клонировать репозиторий: git clone https://github.com/jackmpcollins/magentic.git
Установить зависимости: pip install magentic
Настроить API-ключ LLM: Установить переменные окружения, такие как OPENAI_API_KEY.
Определить LLM-функции: Использовать декораторы @prompt или @chatprompt.
Выполнить LLM-функции: Вызвать декорированные Python-функции.
Интегрировать выводы: Использовать структурированные выводы или потоковые данные в вашем приложении.
Варианты использования magentic
- Разработка AI-агентов
- Извлечение структурированных данных
- Генерация контента
- Автоматизированные рабочие процессы
- Разработка чат-ботов
- Интеграция инструментов
- Помощь в анализе данных








