Outros Modelos

Use a BSPAY com Llama, Mistral, Groq, Cohere, Ollama e qualquer modelo OpenAI-compatible

Guia para integrar a BSPAY com modelos além de GPT/Claude/Gemini — Llama (Groq, Together, Ollama), Mistral, Cohere, Fireworks, Anyscale, vLLM, LM Studio e qualquer outro OpenAI-compatible.


Padrão universal — OpenAI-Compatible

Quase todos provedores (Groq, Together, Fireworks, Anyscale, vLLM, LM Studio, Ollama com endpoint OpenAI) aceitam o mesmo schema do OpenAI Chat Completions. Reuse o cliente Python da página ChatGPT / OpenAI trocando apenas base_url + model:

from openai import OpenAI
import os

PROVIDERS = {
    "groq":      {"base_url": "https://api.groq.com/openai/v1",          "model": "llama-3.3-70b-versatile"},
    "together":  {"base_url": "https://api.together.xyz/v1",             "model": "meta-llama/Llama-3.3-70B-Instruct-Turbo"},
    "fireworks": {"base_url": "https://api.fireworks.ai/inference/v1",   "model": "accounts/fireworks/models/llama-v3p3-70b-instruct"},
    "anyscale":  {"base_url": "https://api.endpoints.anyscale.com/v1",   "model": "meta-llama/Llama-3-70b-chat-hf"},
    "lmstudio":  {"base_url": "http://localhost:1234/v1",                "model": "local-model"},
    "ollama":    {"base_url": "http://localhost:11434/v1",               "model": "llama3.3"},
    "vllm":      {"base_url": "http://localhost:8000/v1",                "model": "meta-llama/Llama-3-70B"},
}

p = PROVIDERS["groq"]
llm = OpenAI(base_url=p["base_url"], api_key=os.environ["LLM_API_KEY"])

# TOOLS e BSPay client são os mesmos da página /ai/chatgpt
# (com auth + HMAC + idempotência via external_id)

Llama via Groq

Latência muito baixa, perfeito pra agentes em tempo real.

from groq import Groq
import os

client = Groq(api_key=os.environ["GROQ_API_KEY"])

# TOOLS = [...mesmas da seção ChatGPT...]
# bspay = BSPay(...)  // cliente com auth + HMAC

resp = client.chat.completions.create(
    model="llama-3.3-70b-versatile",
    messages=[
        {"role": "system", "content": "Assistente financeiro com acesso à BSPAY. SEMPRE confirme antes de executar cashout/convert."},
        {"role": "user",   "content": "Gere um QR Code PIX de R$ 50 para João, CPF 12345678901."},
    ],
    tools=TOOLS,
    tool_choice="auto",
)

Llama / qualquer modelo via Ollama (local)

import ollama

resp = ollama.chat(
    model="llama3.3",
    messages=[
        {"role": "system", "content": "Assistente BSPAY. Use as tools disponíveis."},
        {"role": "user",   "content": "Quanto tenho de saldo?"},
    ],
    tools=TOOLS,  # mesmo formato OpenAI
)

for tc in resp.message.tool_calls or []:
    result = getattr(bspay, tc.function.name)(**tc.function.arguments)
    # repassar pro modelo via mensagem tool_response

Mistral

from mistralai import Mistral
import os

client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

resp = client.chat.complete(
    model="mistral-large-latest",
    messages=[
        {"role": "system", "content": "Assistente BSPAY com tool calling."},
        {"role": "user",   "content": "Cobrar R$ 100 de Ana via PIX, CPF 11122233344."},
    ],
    tools=TOOLS,
    tool_choice="auto",
)

Mistral Large suporta tool calling no formato OpenAI. Para Mistral Small/Medium, valide schema antes de executar.


Cohere

import cohere
import os

co = cohere.ClientV2(os.environ["COHERE_API_KEY"])

resp = co.chat(
    model="command-r-plus",
    messages=[
        {"role": "system", "content": "Assistente BSPAY."},
        {"role": "user",   "content": "Gere QR Code PIX R$ 300, Pedro, CPF 99988877766."},
    ],
    tools=TOOLS,
)

Cohere Command R+ tem tool calling robusto. Use command-r (não plus) se precisar de menor custo.


Self-hosted (vLLM / TGI / LM Studio)

Para empresas com requisitos de soberania de dados:

# Exemplo: vLLM com Llama 3.3 70B + tool calling
vllm serve meta-llama/Llama-3.3-70B-Instruct \
  --enable-auto-tool-choice \
  --tool-call-parser llama3_json
from openai import OpenAI

llm = OpenAI(base_url="http://gpu-cluster.local:8000/v1", api_key="not-needed")

resp = llm.chat.completions.create(
    model="meta-llama/Llama-3.3-70B-Instruct",
    messages=[...], tools=TOOLS,
)

Boas práticas universais

Use modelos ≥ 70B params para HMAC

A geração de código que monta timestamp + "." + nonce + "." + body na ordem certa é frágil em modelos pequenos. Llama 3.3 70B, Mistral Large, Command R+ são confiáveis.

Schema validation no backend

Independente do modelo, valide os argumentos da tool call antes de executar (Zod/Pydantic). LLMs às vezes alucinam campos extras ou tipos errados.

Confirmação humana é obrigação do AGENTE, não do MODELO

Não confie que o system prompt vai garantir confirmação humana. Implemente um wrapper que intercepta cashout_*/convert/internal_transfer e exige confirm=True explícito antes de chamar a API real.

Cache do token globalmente

Se você roda múltiplos agentes concorrentes (cluster K8s), use Redis pra compartilhar o token. Senão cada réplica vai re-autenticar e estourar o rate limit de /oauth/token (30/min/IP).


Comparativo rápido

ProvedorLatênciaCustoTool CallingHMAC-friendly
Groq (Llama 3.3 70B)⚡ ultra-baixa$✓ excelente
Together / Fireworksbaixa$✓ bom
Mistral Largemédia$$✓ bom
Cohere R+média$$✓ bom
Ollama (local)depende GPUgrátis✓ (Llama 3.3)
vLLM (self-host)baixainfra

"HMAC-friendly" = ainda exige assinatura no servidor (nenhum modelo deve ter o signing_key). Todos passam — a diferença é só latência/custo.

Esta página foi útil?