Sobre el proyecto
OpenAI Harmony es una biblioteca para trabajar con el formato de respuesta harmony, la estructura de conversación en la que se entrenaron los modelos gpt-oss de peso abierto de OpenAI. Según el README, gpt-oss no debe usarse sin el formato harmony, ya que no funcionará correctamente. Los usuarios que acceden a gpt-oss a través de una API o proveedores como HuggingFace, Ollama o vLLM no necesitan manejar el formato ellos mismos, ya que la solución de inferencia lo hace. La biblioteca está dirigida a desarrolladores que construyen sus propias soluciones de inferencia.
El formato está diseñado para imitar la API de Respuestas de OpenAI y admite múltiples canales de salida para cadena de pensamiento, preámbulos de llamada a herramientas, respuestas regulares, espacios de nombres de herramientas, salidas estructuradas y una jerarquía de instrucciones. El README incluye un ejemplo de prompt que muestra mensajes de sistema, desarrollador y usuario con definiciones de herramientas.
Características clave declaradas:
- Formato consistente: una implementación compartida para renderizar y analizar mantiene las secuencias de tokens sin pérdidas.
- Rendimiento: el trabajo pesado está implementado en Rust.
- Soporte de Python: instalable vía pip, con stubs tipados y paridad de pruebas con el conjunto de Rust.
El repositorio contiene una crate de Rust (estructuras de datos de chat, codificación/renderizado y análisis, registro de codificaciones integrado, pruebas y enlaces PyO3) más un envoltorio puro de Python que expone dataclasses y una API auxiliar. La instalación en Python es mediante `pip install openai-harmony` o `uv pip install openai-harmony`; el uso en Rust agrega la crate como dependencia de git en Cargo.toml. Los ejemplos muestran cómo cargar la codificación HARMONY_GPT_OSS, construir una Conversación a partir de mensajes, renderizarla para completar y analizar mensajes desde tokens de completado.
Para el desarrollo local, los requisitos previos son un toolchain estable de Rust, Python 3.8+ con un entorno virtual y maturin. El flujo de trabajo usa `maturin develop --release` para compilar la crate de Rust e instalar el paquete de Python en modo editable. Las pruebas se ejecutan con `cargo test` para Rust y `pytest` para Python, con el conjunto de Python descrito como un puerto uno a uno de las pruebas de Rust. Las herramientas opcionales incluyen mypy para verificación de tipos, ruff para linting y cargo fmt para formateo.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.