Seções da Base de Conhecimento ▾

Navegação

▸ Comece aqui Por funções

Categorias

Ferramentas 37
Glossário 12

Ferramentas

PydanticAI + Gonka — Agentes de IA tipificados por alguns centavos

PydanticAI é um framework Python para a criação de agentes de IA da equipe do Pydantic (a mesma biblioteca de validação sobre a qual se sustenta metade do ecossistema Python). A principal característica do PydanticAI é a saída tipada: você descreve o resultado como um modelo Pydantic comum, e o framework garante que o modelo retornará exatamente essa estrutura, validada e pronta para uso. Além de um @agent.tool intuitivo para tool calling, injeção de dependências e suporte a qualquer provedor.

O problema é o mesmo que em todos os frameworks de agentes: o preço dos tokens. Um agente com ferramentas circula o contexto: solicitação → chamada de tool → resultado → nova solicitação. Em uma única tarefa, é fácil consumir vários milhões de tokens. Com as tarifas da OpenAI ($2.50–15 por 1M) e Anthropic ($3–15 por 1M), até um protótipo se torna caro, e a produção com milhares de solicitações por dia torna-se proibitiva.

O PydanticAI funciona nativamente com qualquer endpoint compatível com OpenAI através das classes OpenAIChatModel e OpenAIProvider. Isso significa que o JoinGonka Gateway é conectado com apenas algumas linhas — sem pacotes ou adaptadores separados. O resultado: agentes tipados funcionando por $0.0047 por 1M de tokens de entrada em vez de $2.50–15 da OpenAI/Anthropic — centenas e milhares de vezes mais barato.

Início rápido: Conexão no código

Primeiro, obtenha uma chave: cadastre-se em gate.joingonka.ai/register — ao se cadastrar, oferecemos 1.5M de tokens gratuitos — e crie uma chave jg-xxx em Dashboard → API Keys.

Instalação:

pip install pydantic-ai
# ou a versão leve apenas com dependências OpenAI:
# pip install "pydantic-ai-slim[openai]"

Exemplo mínimo — agente via Gonka. O PydanticAI define um endpoint personalizado através de OpenAIProvider(base_url=..., api_key=...), que é passado para o OpenAIChatModel:

from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider

model = OpenAIChatModel(
    "MiniMaxAI/MiniMax-M2.7",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-sua-chave",
    ),
)

agent = Agent(model)

result = agent.run_sync("Explique em duas frases o que é PoUW")
print(result.output)

Isso é tudo — seu agente PydanticAI funciona através da rede descentralizada Gonka por uma fração do custo. O método run_sync é conveniente para scripts; para código async, existe await agent.run(...).

Parâmetros do modelo: a janela de contexto dos modelos da rede é de 200K tokens (200000), no DeepSeek V4 Flash é de 380K; o tamanho máximo de resposta via Gateway é de até 8192 tokens, no DeepSeek é de até 32768. Você pode limitar a saída através das configurações do modelo (OpenAIChatModelSettings(max_tokens=8192)). Também estão disponíveis moonshotai/Kimi-K2.6, MiniMaxAI/MiniMax-M2.7 e deepseek-ai/DeepSeek-V4-Flash-0731 — basta alterar o nome do modelo no primeiro argumento do OpenAIChatModel.

Funcionalidade do PydanticAI: saída tipificada

A principal razão para escolher o PydanticAI é o structured output. Em vez de analisar o texto da resposta com expressões regulares, você descreve o resultado como um modelo Pydantic e o passa para o parâmetro output_type. O framework usa o tool calling do modelo para forçá-lo a retornar dados estritamente conforme o esquema, valida-os e entrega um objeto pronto através de result.output.

from pydantic import BaseModel
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider

model = OpenAIChatModel(
    "MiniMaxAI/MiniMax-M2.7",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-sua-chave",
    ),
)


class Profile(BaseModel):
    name: str
    role: str
    skills: list[str]


agent = Agent(model, output_type=Profile)

result = agent.run_sync(
    "Extraia os dados: Anna é backend-developer, sabe Python, Go e Postgres"
)
print(result.output)
# name='Anna' role='backend-developer' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — já é list[str], não texto

Isso funciona porque os três modelos Gonka (Kimi K2.6, MiniMax M2.7 e DeepSeek V4 Flash) suportam tool calling nativo — o PydanticAI baseia-se nisso para retornar uma estrutura JSON válida. Como resultado, você obtém um objeto Python tipado, não uma string que precisa ser analisada manualmente. É ideal para extração de dados, classificação, preenchimento de formulários e pipelines de RAG, onde o resultado deve continuar no código em um formato estrito.

Comparação de custos

PydanticAI é um framework para agentes e pipelines que operam continuamente: extraem dados, chamam ferramentas e processam fluxos de solicitações. Aqui, o custo dos tokens decide se o projeto permanecerá um protótipo ou irá para production. Vamos comparar as cargas típicas:

CenárioTokensOpenAI / AnthropicJoinGonka Gonka
Extração de estrutura de um documento~3K$0.008 — $0.045~$0.000028
Agente com tool calling (um ciclo)~15K$0.04 — $0.22~$0.00014
RAG-pipeline (1000 solicitações/dia)~5M/dia$12 — $75/dia~$0.048/dia
Agente em production (100K solicitações/dia)~500M/dia$1,250 — $7,500/dia~$4.80/dia

A diferença é de centenas a milhares de vezes. Para um protótipo, isso significa que os 1.5M de tokens gratuitos são suficientes para as primeiras execuções do agente. Para produção, que processa centenas de milhares de solicitações por dia, a economia chega a dezenas de milhares de dólares por mês — com o mesmo código no PydanticAI, apenas com um base_url diferente.

Uma chave jg-xxx e um saldo funcionam tanto para o formato OpenAI (/v1) quanto para o formato Anthropic (/v1/messages) — mas para o PydanticAI, basta o endpoint compatível com OpenAI mostrado acima.

Tool calling e seleção de modelo

A segunda funcionalidade chave do PydanticAI são as ferramentas. Uma função pode ser registrada com o decorador @agent.tool_plain (sem contexto) ou @agent.tool (com acesso ao RunContext e dependency injection). O modelo decide por si mesmo quando chamar a ferramenta, obtém o resultado e continua o raciocínio:

import random
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.openai import OpenAIProvider

model = OpenAIChatModel(
    "MiniMaxAI/MiniMax-M2.7",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-sua-chave",
    ),
)

agent = Agent(
    model,
    instructions="Você é um assistente. Use ferramentas quando necessário.",
)


@agent.tool_plain
def roll_dice() -> str:
    """Lança um dado de seis faces e retorna o resultado."""
    return str(random.randint(1, 6))


@agent.tool_plain
def calculator(expression: str) -> str:
    """Calcula uma expressão matemática."""
    return str(eval(expression))


result = agent.run_sync("Lança um dado e multiplica o resultado por 7")
print(result.output)

Como o tool calling no Gonka é nativo, as ferramentas são invocadas de forma confiável — sem o parsing frágil de respostas de texto. Todo o ciclo (solicitação → chamada de tool → resposta final) custa cerca de $0.00007 através do Gonka, contra $0.04–0.22 na OpenAI/Anthropic.

Qual modelo escolher: moonshotai/Kimi-K2.6 — forte em codificação e raciocínios complexos, saída até 8192. MiniMaxAI/MiniMax-M2.7 — para diálogos longos e tarefas equilibradas, saída até 8192. deepseek-ai/DeepSeek-V4-Flash-0731 — o maior contexto da rede (380K) e prompts grandes baratos, saída até 32768. Todos os três estão disponíveis agora com uma única chave — apenas a string do modelo muda. Ferramentas com espírito semelhante: LangChain para cadeias e RAG, LlamaIndex para indexação de dados.

PydanticAI + Gonka = agentes de IA tipados em Python a preço de custo. Structured output em modelos Pydantic, tool calling nativo, injeção de dependências — tudo via OpenAIChatModel + OpenAIProvider com um único base_url. Custo — a partir de $0.0047 por 1M de tokens em vez de $2.50–15 da OpenAI e Anthropic.

Quer saber mais?

Explore outras seções ou comece a ganhar GNK agora mesmo.

Obter tokens gratuitos →