venice first-party — chat completions, streaming, strumenti, output strutturato, embedding, trascrizione, generazione di immagini e speech — collegato direttamente all’API di Venice invece di passare attraverso il client OpenAI.
Se preferisci un proxy Axum grezzo anziché un framework per agenti, consulta Building a Rust LLM Gateway.
Prerequisiti
- Una toolchain Rust stabile recente (Rig 0.42 usa edition 2024)
- Rig 0.42 o versione successiva
- Una API key Venice
Setup
VENICE_BASE_URL (il provider usa come default https://api.venice.ai/api/v1):
Configurare il client Venice
venice::Client::from_env() legge VENICE_API_KEY. Porta ProviderClient nello scope:
Preferisci
venice::Client invece di puntare il client OpenAI di Rig verso Venice. Il openai::Client predefinito ha come target la Responses API di OpenAI. Il provider Venice parla /chat/completions ed espone VeniceParameters.&venice::Client da from_env(). Le costanti del crate come venice::QWEN3_5_9B sono un punto di partenza — verifica gli ID correnti con GET /models.
Effettuare lo streaming di una risposta
stream_prompt restituisce una richiesta su cui fai .await per ottenere uno stream. Usa rig::agent::stream_to_stdout per stampare i token man mano che arrivano:
? dopo .await su stream_prompt — restituisce direttamente lo stream, non un Result.
Output strutturato
Usa un extractor con un tipoJsonSchema per validare la risposta del modello:
Strumenti
Definisci uno strumento con#[rig_tool] (incluso con la feature derive di default di Rig). Il tipo generato è il nome della funzione in PascalCase:
rig::tool::Tool manualmente quando hai bisogno di tipi di argomento o gestione degli errori personalizzati. Consulta la documentazione degli strumenti di Rig.
Embedding
dimensions di OpenAI. Usa embedding_model_with_ndims quando desideri una specifica ampiezza anziché la dimensione nativa del modello.
Parametri specifici di Venice
Passa le opzioni esclusive di Venice tramiteVeniceParameters e uniscile con additional_params. Ad esempio, per abilitare la ricerca web integrata:
cost per richiesta), chiama raw_completion sul completion model. Il percorso agent normalizzato scarta questi campi specifici di Venice:
VeniceParameters copre anche gli slug dei personaggi, i controlli di thinking, il web scraping, la ricerca su X e la scelta se includere il system prompt predefinito di Venice. Consulta la specifica API per l’elenco completo di venice_parameters.
Altre funzionalità
Lo stessovenice::Client supporta anche:
- Trascrizione —
client.transcription_model(venice::WHISPER_LARGE_V3) - Generazione di immagini —
client.image_generation_model(...)(abilita la featureimagedi Rig) - Speech —
client.audio_generation_model(venice::TTS_KOKORO)(abilita la featureaudiodi Rig)
/augment/* e RPC crypto non hanno un trait di Rig e non sono wrappati. Chiama direttamente quegli endpoint Venice.
Vantaggio in termini di privacy
Rig viene spesso usato per agenti che accedono a dati applicativi, contesto utente o strumenti interni. Abbinarlo a Venice mantiene quel workflow su un’inferenza privata e senza censura:- Zero data retention sui modelli privati — prompt e payload degli strumenti non vengono conservati dopo la richiesta
- Analisi senza censura quando gli agenti hanno bisogno di critiche schiette o red-teaming
- Un provider first-party così non devi rimappare i tipi OpenAI sul dialetto di Venice
Troubleshooting
Modello non trovato o errori inattesi sull'endpoint
Modello non trovato o errori inattesi sull'endpoint
Usa un ID modello aggiornato dalla pagina dei modelli o da
GET /models. Le costanti del crate come venice::QWEN3_5_9B possono essere in ritardo rispetto al catalogo live.Errori della Responses API
Errori della Responses API
Usa
venice::Client, non openai::Client. Il client OpenAI usa come default la Responses API, che su Venice è solo in alpha.Gli strumenti o l'output strutturato vengono ignorati
Gli strumenti o l'output strutturato vengono ignorati
Scegli un modello che supporti il function calling, descrivi nel preamble quando gli strumenti devono essere eseguiti e mantieni le descrizioni degli strumenti precise — Rig costruisce gli schemi JSON dalle signature e dai docs di
#[rig_tool].Documentazione Rig
Agenti, strumenti, extractor e provider
Modelli Venice
Esplora i modelli e le funzionalità supportate