stanfordnlp/dspy

DSPy: фреймворк для программирования, а не промптинга языковых моделей

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

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

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

Зачем нужен

Инструмент решает проблему нестабильности результатов при работе с LLM, переводя разработку с ручного написания промптов на декларативное программирование. Он полезен для создания модульных AI-систем, где промпты и веса моделей оптимизируются алгоритмически, а не вручную.

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

  • Построение сложных RAG-пайплайнов с автоматической оптимизацией запросов
  • Создание Agent-циклов с самообучающимися компонентами
  • Разработка классификаторов и систем для NLP-задач с высокой точностью
  • Компиляция декларативных вызовов LLM в самосовершенствующиеся пайплайны

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

  • Замена ручного промптинга на программирование на Python
  • Алгоритмическая оптимизация промптов и весов моделей
  • Поддержка модульного подхода к сборке AI-систем
  • Наличие академической базы и исследовательских статей (Stanford NLP)
  • Встроенные механизмы самосовершенствования (self-improving pipelines)

👤 Кому подойдёт: разработчики AI-систем, исследователи в области NLP, инженеры, работающие с RAG и агентами

Релизы

3.3.1minor
🕐 1 мес назад · релиз на GitHub ↗

DSPy 3.3.1: усиление изоляции PythonInterpreter, наблюдаемость жизненного цикла и оптимизация GEPA с мульти-предложениями.

  • Fixed: Усилены безопасность и изоляция PythonInterpreter: защита от коллизий файлов, блокировка рекурсивных вызовов и защита от изменения глобальных переменных.
  • Added: Добавлена полная наблюдаемость жизненного цикла интерпретатора через API обратных вызовов (старт/стоп процессов, инструментов и выполнения).
  • Added: Оптимизатор GEPA теперь поддерживает мульти-предложения (multi-proposal) и конкурентную оценку кандидатов с сохранением состояния генератора случайных чисел.
  • Fixed: Исправлена сериализация типов инструментов и приведён к единому виду форматирование ошибок выполнения для LM и агентов.
  • Fixed: Улучшена совместимость с MCP и повышена пропускная способность оптимизатора.
3.3.0majorbreaking
🕐 1 мес назад · релиз на GitHub ↗

DSPy 3.3.0: экспериментальный Flex для оптимизации структуры программ, ReActV2 с нативным вызовом инструментов и типизированный LM-интерфейс.

  • Added: Экспериментальный модуль Flex позволяет оптимизатору GEPA менять структуру программы, а не только промпты.
  • Added: ReActV2 использует нативный вызов инструментов, историю сообщений и поддерживает параллельные вызовы.
  • Added: Внедрен типизированный контракт LMRequest/LMResponse, упрощающий кастомизацию и интеграцию провайдеров.
  • Breaking: Изменен API для создания значений Image, Audio, File из путей или URL.
  • Added: Добавлена поддержка параметра max_iterations для RLM и возможность получения сырых ответов API инструментов.
3.2.1patch
🕐 4 мес назад · релиз на GitHub ↗

Исправлена передача заголовков в асинхронном стриминге и кэширование эмбеддингов; обновлены зависимости и документация.

  • Fixed: Исправлена передача пользовательских заголовков в асинхронных стриминговых вызовах LM через LiteLLM.
  • Fixed: В dspy.Embedder теперь корректно учитывается параметр caching=False как для синхронных, так и для асинхронных вызовов.
  • Added: Удалено верхнее ограничение на версию библиотеки litellm.
  • Обновлены зависимости для тестирования, разработки и документации, а также улучшены процессы CI/CD.
  • Обновлена страница use-case, исправлены ошибки в документации и переработана структура раздела Deployment.