🛶 Open source • PT-BR

Uma camada fina sobre os SDKs de LLM

Camada fina PT-BR sobre os SDKs de LLM, com observability nativa em 1 linha no .env. Troque provider/model/api_key sem mudar o resto do código. Templates {{ }}, structured output, vision, áudio, tools, MCP, RAG, async, retry + fallback e custo na resposta.

Ler as docs
$pip install "jangada-ai[all,rag,mcp]"

🤖 Use no Claude Code, Cursor, Codex e outras IAs pra implementar mais rápido: llms.txt · llms-full.txt

trocar_provider.py
from jangada_ai import LLM

# troque o provider numa linha — o resto do código não muda
llm = LLM("anthropic", model="claude-sonnet-4-5", api_key=...)
llm = LLM("openai",    model="gpt-5",            api_key=...)

resp = llm.complete("Resuma {{ tema }} em uma frase.", tema="jangadas")
print(resp.text, resp.cost)

Mesma API, qualquer provider

AnthropicAnthropicOpenAIOpenAIGroqGroqGeminiGeminiMistralMistralOpenRouterOpenRouterAWS BedrockAWS BedrockAzure OpenAIAzure OpenAIVertex AIVertex AI

Tudo que você precisa, normalizado

A complexidade de cada SDK fica isolada num adapter. Fora dele, só circulam tipos normalizados.

Structured output
Respostas validadas em modelos Pydantic, igual em todos os providers.
Vision
Imagens como entrada — bounding boxes e extração de documentos.
Áudio
Transcrição via OpenAI, Groq, Gemini e Mistral (Voxtral) com a mesma chamada.
Documentos
pdf, docx, csv e xlsx viram texto — sem precisar de vision.
Tools
Function calling a partir de função, Pydantic ou dict.
MCP
Model Context Protocol: tools, resources, prompts e agente próprio.
Agentes & A2A
Agent/Squad com tools async, conversa multi-turno, streaming e servidor A2A.
RAG
chunk, embed e busca híbrida (BM25 + vetorial) com pgvector/Mongo.
Step-back prompting
Gera uma pergunta mais ampla para recuperar contexto de fundo no RAG.
Guardrails
Mantém a LLM no escopo e barra falas — blocklist + classificador (judge).
Retry + fallback
Tenta de novo e cai para outro provider quando o erro permite.
Custo na resposta
Cada Completion já vem com usage e custo aproximado calculado. Os preços se atualizam sozinhos em runtime (cache de 1 dia) — sem precisar atualizar a lib.
Cache de respostas
Exato (LRU/TTL) e semântico (por similaridade) — economiza tokens e latência.
Async
Paridade total sync/async — todo método tem sua versão a*.

Direto ao ponto

Structured output com Pydantic e fallback multi-provider — sem boilerplate.

Structured output (Pydantic)

extracao.py
from pydantic import BaseModel
from jangada_ai import LLM

class NotaFiscal(BaseModel):
    fornecedor: str
    total: float

llm = LLM("openai", model="gpt-5")
resp = llm.parse("Extraia os dados.", schema=NotaFiscal, files=["nf.pdf"])
nota = resp.parsed  # parse() devolve Completion; o objeto Pydantic fica em .parsed
print(nota.fornecedor, nota.total)

Fallback multi-provider

fallback.py
from jangada_ai import LLM

# primário + cadeia de fallback por erro (rate limit, timeout, 5xx, 404)
llm = LLM("anthropic", model="claude-sonnet-4-5").with_fallback(
    LLM("openai", model="gpt-5"),
    LLM("groq",   model="llama-4-scout"),
)

# falhou no primário? failover automático, sem mudar a chamada
resp = llm.complete("Explique jangadas em 1 frase.")
Plataforma SaaS

Observability: veja cada trace

Ligue 2 variáveis no .env e a jangada envia cada chamada sozinha — sem instrumentar o código. Acompanhe traces, latência, tokens, custo e quais capacidades (tools, MCP, A2A, RAG, vision…) cada chamada usou, com filtros, exportação e analytics. Login e token; seus dados não vivem na nuvem do cliente.

Abrir o dashboard
complete · gpt-5412ms$0.0021
tools
parse · claude-sonnet-4-5688ms$0.0044
structured output
embed · gemini-embedding-001120ms$0.0001
RAGembeddings
Documentação via MCP

A documentação da Jangada dentro do seu editor

Um servidor MCP hospedado entrega TODA a documentação da Jangada ao seu assistente de IA — ele passa a escrever código com a API atual e correta, sem inventar funções, assinaturas ou parâmetros. É a própria Jangada sendo um servidor MCP.

Endpoint (HTTP)https://mcp.jangada.dev.br/mcp/

Como conectar

Claude Code (no terminal)

terminal
claude mcp add jangada-mcp \
  --transport http https://mcp.jangada.dev.br/mcp/

Cursor — em ~/.cursor/mcp.json

mcp.json
{
  "mcpServers": {
    "jangada-mcp": {
      "url": "https://mcp.jangada.dev.br/mcp/"
    }
  }
}

Claude Desktop e outros — na config de MCP

claude_desktop_config.json
{
  "mcpServers": {
    "jangada-mcp": {
      "url": "https://mcp.jangada.dev.br/mcp/"
    }
  }
}

Funciona em qualquer cliente com suporte a MCP por HTTP — Claude Code, Claude Desktop, Cursor, Windsurf, Zed e outros.

O que o assistente ganha

Quatro ferramentas: índice da doc, listar páginas, ler uma página (PT/EN) e buscar por palavra-chave em toda a documentação.

Depois é só pedir: "consulte a doc da jangada e implemente …" — o assistente lê a documentação oficial antes de escrever o código.

Instale só o que vai usar

O core é leve (só Pydantic). Cada SDK e capacidade é um extra opcional — escolha um provider, combine o que precisar ou pegue tudo.

Escolha um provider
Instale o SDK do que vai usar.
$pip install "jangada-ai[anthropic]"

Claude

$pip install "jangada-ai[openai]"

GPT

$pip install "jangada-ai[groq]"

Groq

$pip install "jangada-ai[gemini]"

Gemini

$pip install "jangada-ai[mistral]"

Mistral

$pip install "jangada-ai[bedrock]"

AWS Bedrock

Capacidades opcionais
Adicione só quando precisar.
$pip install "jangada-ai[files]"

Documentos (pdf/docx/csv/xlsx)

$pip install "jangada-ai[rag]"

RAG (pgvector/mongo/BM25)

$pip install "jangada-ai[mcp]"

Cliente MCP

$pip install "jangada-ai[a2a]"

Servidor A2A (Starlette)

Atalhos e combinações
Vírgula junta vários extras.
$pip install "jangada-ai[all]"

Todos os providers + files

$pip install "jangada-ai[anthropic,groq]"

Combine extras com vírgula

$pip install "jangada-ai[all,rag,mcp]"

Tudo, de verdade

Atenção: o extra [all] traz todos os providers + files, mas não inclui rag nem mcp — esses entram à parte, ex.: pip install "jangada-ai[all,rag,mcp]".

Perguntas frequentes

O essencial sobre a Jangada AI em respostas diretas.

O que é a Jangada AI?

A Jangada AI é uma biblioteca Python open source que funciona como uma camada fina sobre os SDKs de LLM (Anthropic, OpenAI, Groq, Gemini, Mistral e OpenRouter). Ela normaliza as APIs para que você troque provider, modelo ou api_key numa única linha, sem reescrever o resto do código.

Quais provedores de LLM a Jangada AI suporta?

Anthropic, OpenAI, Groq, Google Gemini, Mistral e OpenRouter, além dos gateways de nuvem AWS Bedrock, Azure OpenAI e Vertex AI — todos pela mesma API. A complexidade de cada SDK fica isolada num adapter; fora dele só circulam tipos normalizados, então a mesma chamada funciona em qualquer provider. A Mistral ainda traz OCR/Document AI e transcrição Voxtral.

Como instalar a Jangada AI?

Instale via pip com o extra do provider que vai usar, por exemplo: pip install "jangada-ai[anthropic]". O core é leve (só Pydantic) e cada SDK ou capacidade é um extra opcional — use [all] para todos os providers ou combine extras com vírgula, como [all,rag,mcp].

A Jangada AI é gratuita?

Sim. A Jangada AI é open source sob licença MIT e gratuita para uso comercial e pessoal. O pacote está publicado no PyPI como jangada-ai.

O que é structured output na Jangada AI?

É a capacidade de receber respostas da LLM já validadas em modelos Pydantic, de forma idêntica em todos os providers. Você define o schema e a Jangada AI garante que a resposta venha tipada e validada.

A Jangada AI suporta chamadas assíncronas?

Sim. Há paridade total entre sync e async: todo método tem sua versão assíncrona com prefixo a* (por exemplo complete e acomplete), então você usa o mesmo código em contextos síncronos ou async.

Como funciona o retry com fallback?

Quando uma chamada falha com um erro recuperável, a Jangada AI tenta de novo e, se necessário, cai automaticamente para outro provider configurado. Assim uma indisponibilidade momentânea de um provider não derruba sua aplicação.

Comece a remar com a Jangada AI 🛶

Instale, escolha um provider e troque quando quiser — sem reescrever nada.