venice — chat completions, streaming, herramientas, salida estructurada, embeddings, transcripción, generación de imágenes y voz — conectado directamente a la API de Venice en lugar de canalizarse a través del cliente de OpenAI.
Si prefieres un proxy Axum en crudo en lugar de un framework de agentes, consulta Cómo crear un LLM Gateway en Rust.
Requisitos previos
- Un toolchain estable reciente de Rust (Rig 0.42 utiliza edition 2024)
- Rig 0.42 o posterior
- Una clave de API de Venice
Configuración
VENICE_BASE_URL (el proveedor usa por defecto https://api.venice.ai/api/v1):
Configurar el cliente de Venice
venice::Client::from_env() lee VENICE_API_KEY. Trae ProviderClient al ámbito:
Utiliza
venice::Client en lugar de apuntar el cliente de OpenAI de Rig a Venice. El cliente openai::Client predeterminado apunta a la API Responses de OpenAI. El proveedor de Venice habla /chat/completions y expone VeniceParameters.&venice::Client de from_env(). Las constantes del crate como venice::QWEN3_5_9B son un punto de partida — confirma los IDs actuales con GET /models.
Transmitir una respuesta
stream_prompt devuelve una solicitud que puedes usar con .await para convertirla en un stream. Usa rig::agent::stream_to_stdout para imprimir los tokens a medida que llegan:
? después de .await en stream_prompt — produce el stream directamente, no un Result.
Salida estructurada
Usa un extractor con un tipoJsonSchema para validar la respuesta del modelo:
Herramientas
Define una herramienta con#[rig_tool] (incluido con la feature derive predeterminada de Rig). El tipo generado es el nombre de la función en PascalCase:
rig::tool::Tool a mano cuando necesites tipos de argumentos o manejo de errores personalizados. Consulta la documentación de herramientas de Rig.
Embeddings
dimensions de OpenAI. Utiliza embedding_model_with_ndims cuando quieras un ancho específico en lugar del tamaño nativo del modelo.
Parámetros específicos de Venice
Pasa las opciones exclusivas de Venice a través deVeniceParameters y combínalas con additional_params. Por ejemplo, habilita la búsqueda web integrada:
cost por solicitud), llama a raw_completion en el modelo de completions. La ruta de agente normalizada elimina esos campos exclusivos de Venice:
VeniceParameters también cubre slugs de personajes, controles de pensamiento (thinking), web scraping, búsqueda en X, y si se debe incluir el prompt de sistema predeterminado de Venice. Consulta la especificación de la API para ver la lista completa de venice_parameters.
Otras capacidades
El mismovenice::Client también impulsa:
- Transcripción —
client.transcription_model(venice::WHISPER_LARGE_V3) - Generación de imágenes —
client.image_generation_model(...)(habilita la featureimagede Rig) - Voz —
client.audio_generation_model(venice::TTS_KOKORO)(habilita la featureaudiode Rig)
/augment/* y crypto RPC no tienen un trait de Rig y no están envueltos. Llama a esos endpoints de Venice directamente.
Ventaja de privacidad
Rig se utiliza a menudo para agentes que acceden a datos de aplicaciones, contexto del usuario o herramientas internas. Combinarlo con Venice mantiene ese flujo de trabajo sobre inferencia privada y sin censura:- Retención cero de datos en modelos privados — los prompts y las cargas útiles de herramientas no se conservan después de la solicitud
- Análisis sin censura cuando los agentes necesitan una crítica directa o red-teaming
- Un proveedor nativo para que no tengas que remapear los tipos de OpenAI al dialecto de Venice
Solución de problemas
Modelo no encontrado o errores de endpoint inesperados
Modelo no encontrado o errores de endpoint inesperados
Utiliza un ID de modelo actual de la página de modelos o de
GET /models. Las constantes del crate como venice::QWEN3_5_9B pueden estar desactualizadas respecto al catálogo en vivo.Errores de la API Responses
Errores de la API Responses
Utiliza
venice::Client, no openai::Client. El cliente de OpenAI usa por defecto la API Responses, que solo está en alfa en Venice.Se ignoran las herramientas o la salida estructurada
Se ignoran las herramientas o la salida estructurada
Elige un modelo que admita llamadas a funciones, describe en el preámbulo cuándo deben ejecutarse las herramientas y mantén las descripciones de las herramientas precisas — Rig construye los esquemas JSON a partir de las firmas y la documentación de
#[rig_tool].Documentación de Rig
Agentes, herramientas, extractores y proveedores
Modelos de Venice
Explora los modelos y las capacidades compatibles