Об этом проекте

OpenAI Harmony — это библиотека для работы с форматом ответов harmony — структурой диалога, на которой обучались открытые модели gpt-oss от OpenAI с открытым весом. Согласно README, gpt-oss не следует использовать без формата harmony, так как модель не будет работать корректно. Пользователям, которые получают доступ к gpt-oss через API или таких провайдеров, как HuggingFace, Ollama или vLLM, не нужно самостоятельно обрабатывать форматирование, поскольку это делает решение для инференса. Библиотека предназначена для разработчиков, создающих собственные решения для инференса. Формат разработан так, чтобы имитировать API ответов OpenAI, и поддерживает несколько выходных каналов для цепочки рассуждений, преамбул вызова инструментов, обычных ответов, пространств имен инструментов, структурированных выходных данных и иерархии инструкций. В README приведен пример промпта, показывающий системные, разработочные и пользовательские сообщения с определениями инструментов. Ключевые заявленные возможности: - Единообразное форматирование: общая реализация рендеринга и разбора обеспечивает без потерь последовательности токенов. - Производительность: основные операции реализованы на Rust. - Поддержка Python: устанавливается через pip, с типизированными заглушками и паритетом тестов с набором тестов Rust. Репозиторий содержит крейт Rust (структуры данных чата, кодирование/рендеринг и разбор, встроенный реестр кодировок, тесты и привязки PyO3), а также чистую обертку на Python, предоставляющую dataclasses и вспомогательный API. Установка Python выполняется через `pip install openai-harmony` или `uv pip install openai-harmony`; для использования в Rust добавьте крейт как git-зависимость в Cargo.toml. Примеры показывают загрузку кодировки HARMONY_GPT_OSS, построение Conversation из сообщений, рендеринг для завершения и разбор сообщений из токенов завершения. Для локальной разработки необходимы стабильный инструментарий Rust, Python 3.8+ с виртуальным окружением и maturin. Рабочий процесс использует `maturin develop --release` для компиляции крейта Rust и установки пакета Python в режиме редактирования. Тесты запускаются с помощью `cargo test` для Rust и `pytest` для Python, при этом набор тестов Python описывается как точный порт тестов Rust. Дополнительные инструменты включают mypy для проверки типов, ruff для линтинга и cargo fmt для форматирования.