Skip to main content
Rig é uma biblioteca Rust para construir aplicativos e agentes de LLM. A partir do Rig 0.42, ele inclui um provider oficial venice — chat completions, streaming, ferramentas, saída estruturada, embeddings, transcrição, geração de imagens e fala — conectado à API da Venice em vez de tunelado por meio do cliente OpenAI. Se você quiser um proxy Axum bruto em vez de um framework de agentes, veja Construindo um Gateway de LLM em Rust.

Pré-requisitos

  • Uma toolchain estável recente do Rust (o Rig 0.42 usa edition 2024)
  • Rig 0.42 ou posterior
  • Uma chave de API da Venice

Configuração

Adicione sua chave de API da Venice ao ambiente. Opcionalmente, sobrescreva o host da API com VENICE_BASE_URL (o provider assume por padrão https://api.venice.ai/api/v1):
Mantenha chaves de API fora do controle de versão. Prefira variáveis de ambiente ou um gerenciador de segredos em produção.

Configurar o cliente Venice

venice::Client::from_env()VENICE_API_KEY. Traga ProviderClient para o escopo:
Prefira venice::Client em vez de apontar o cliente OpenAI do Rig para a Venice. O openai::Client padrão tem como alvo a API Responses da OpenAI. O provider da Venice fala /chat/completions e expõe VeniceParameters.
Os trechos abaixo recebem um &venice::Client de from_env(). Constantes do crate como venice::QWEN3_5_9B são um ponto de partida — confirme os IDs atuais com GET /models.

Fazer streaming de uma resposta

stream_prompt retorna uma requisição na qual você faz .await para obter um stream. Use rig::agent::stream_to_stdout para imprimir tokens à medida que chegam:
Não adicione ? depois de .await em stream_prompt — ele retorna o stream diretamente, e não um Result.

Saída estruturada

Use um extractor com um tipo JsonSchema para validar a resposta do modelo:
Explore modelos que suportam respostas estruturadas e function calling antes de depender de extração baseada em ferramentas em produção.

Ferramentas

Defina uma ferramenta com #[rig_tool] (incluída na feature derive padrão do Rig). O tipo gerado é o nome da função em PascalCase:
Você também pode implementar rig::tool::Tool manualmente quando precisar de tipos de argumento personalizados ou tratamento de erros. Veja a documentação de ferramentas do Rig.

Embeddings

A Venice respeita o campo dimensions da OpenAI. Use embedding_model_with_ndims quando quiser uma largura específica em vez do tamanho nativo do modelo.

Parâmetros específicos da Venice

Passe opções exclusivas da Venice por meio de VeniceParameters e as combine com additional_params. Por exemplo, ative a busca na web integrada:
Para preservar as citações de busca na web (e o bloco cost por requisição), chame raw_completion no modelo de completion. O caminho normalizado do agente descarta esses campos exclusivos da Venice:
VeniceParameters também cobre slugs de personagens, controles de raciocínio, web scraping, busca no X e se deve incluir o prompt de sistema padrão da Venice. Veja a especificação da API para a lista completa de venice_parameters.

Outras capacidades

O mesmo venice::Client também impulsiona:
  • Transcriçãoclient.transcription_model(venice::WHISPER_LARGE_V3)
  • Geração de imagensclient.image_generation_model(...) (habilite a feature image do Rig)
  • Falaclient.audio_generation_model(venice::TTS_KOKORO) (habilite a feature audio do Rig)
Vídeo, música, edição de imagens, /augment/* e RPC de cripto não têm trait no Rig e não são encapsulados. Chame esses endpoints da Venice diretamente.

Vantagem de privacidade

O Rig é frequentemente usado para agentes que tocam em dados de aplicação, contexto do usuário ou ferramentas internas. Combiná-lo com a Venice mantém esse fluxo em inferência privada e sem censura:
  • Zero data retention em modelos privados — prompts e payloads de ferramentas não são mantidos após a requisição
  • Análise sem censura quando os agentes precisam de crítica direta ou red-teaming
  • Um provider oficial para que você não precise remapear tipos da OpenAI para o dialeto da Venice

Solução de problemas

Confirme que VENICE_API_KEY está definida no processo que executa o agente. Reinicie o shell ou o processo após alterar variáveis de ambiente. from_env() não lê OPENAI_API_KEY.
Use um ID de modelo atual da página de modelos ou de GET /models. Constantes do crate como venice::QWEN3_5_9B podem ficar defasadas em relação ao catálogo ao vivo.
Use venice::Client, não openai::Client. O cliente OpenAI usa por padrão a API Responses, que está apenas em alpha na Venice.
Escolha um modelo que suporte function calling, descreva no preâmbulo quando as ferramentas devem ser executadas e mantenha as descrições de ferramentas precisas — o Rig cria esquemas JSON a partir das assinaturas e docs de #[rig_tool].

Documentação do Rig

Agentes, ferramentas, extractors e providers

Modelos Venice

Explore modelos e capacidades suportadas