Pular para o conteúdo
Testar o chatObter chave de API

Rig

O Rig é uma biblioteca em Rust para construir aplicações e agentes com LLMs. O cliente OpenAI dele aceita uma URL base personalizada.

Copia as instruções de configuração desta página, para colar no seu agente de código.
Ver o prompt
Me ajude a configurar isto para usar a Bayle AI, uma API compatível com a OpenAI. Guia completo: https://docs.bayle.ai/pt-br/guides/sdks/rig/

Objetivo: construir um agente de LLM em Rust com o Rig (https://rig.rs) em um modelo da Bayle.

1. Adicione os crates ao meu projeto Cargo se estiverem faltando:
   cargo add rig anyhow
   cargo add tokio --features macros,rt-multi-thread
2. Escolha um modelo:
   curl -s "https://api.bayle.ai/models?type=text" | jq -r '.data[].id'
   Me mostre a lista, deixe eu escolher e use esse id como MODEL_ID.
3. Escreva o cliente assim, montando a configuração você mesmo: `OpenAI::from_env()` lê OPENAI_API_KEY e OPENAI_BASE_URL, não BAYLE_API_KEY. Use `client.chat(...)`, que chama chat completions; o `completion(...)` do cliente usa por padrão a Responses API da OpenAI, que a Bayle não serve:
   use rig::prelude::*;
   use rig::providers::openai::OpenAIConfig;

   #[tokio::main]
   async fn main() -> Result<(), anyhow::Error> {
       let key = std::env::var("BAYLE_API_KEY")?;
       let client = OpenAIConfig::new(key)
           .with_base_url("https://api.bayle.ai")
           .client();

       let agent = AgentBuilder::new(client.chat("MODEL_ID"))
           .preamble("You are a concise assistant.")
           .build();

       let response = agent.prompt("In one sentence, what is an embedding?").await?;
       println!("{}", response.output());
       Ok(())
   }
   Se eu já tiver um projeto Rig, mude só a forma como o cliente é montado.
4. Verifique com `cargo run` e me mostre a saída.

Regras:
1. A base URL é https://api.bayle.ai exatamente como está escrita. Não acrescente nenhum caminho a ela.
2. Leia a key da variável de ambiente BAYLE_API_KEY. Nunca escreva a key em um arquivo que você criar, em um comando, em um commit nem no chat. Onde a ferramenta guarda a key na própria tela de configurações, me diga onde colar. Se BAYLE_API_KEY não estiver definida, pare e peça que eu crie uma key em https://chat.bayle.ai/developers e a exporte.
3. Pegue os ids de modelo só de GET https://api.bayle.ai/models (sem key). Nunca chute um.
4. Termine com uma requisição de teste de verdade, me mostre o resultado e liste os arquivos que você alterou.
Janela do terminal
cargo add rig anyhow
cargo add tokio --features macros,rt-multi-thread

Veja a documentação oficial para os outros provedores e recursos.

Ainda não tem uma chave da Bayle?Obter chave de API
use rig::prelude::*;
use rig::providers::openai::OpenAIConfig;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let key = std::env::var("BAYLE_API_KEY")?;
let client = OpenAIConfig::new(key)
.with_base_url("https://api.bayle.ai")
.client();
let agent = AgentBuilder::new(client.chat("MODEL_ID"))
.preamble("You are a concise assistant.")
.build();
let response = agent.prompt("In one sentence, what is an embedding?").await?;
println!("{}", response.output());
Ok(())
}
  • Use client.chat(...), que chama chat completions. O completion(...) do cliente usa por padrão a Responses API da OpenAI, que a Bayle não serve.
  • Monte a configuração você mesmo, como acima. OpenAI::from_env() lê OPENAI_API_KEY e OPENAI_BASE_URL, não BAYLE_API_KEY.
Janela do terminal
curl -s "https://api.bayle.ai/models?type=text" | jq -r '.data[].id'