Bagian Basis Pengetahuan ▾

Alat

Alat

PydanticAI + Gonka — Agen AI berjenis dengan biaya rendah

PydanticAI adalah kerangka kerja Python untuk membuat agen AI dari tim Pydantic (perpustakaan validasi yang sama yang mendukung separuh ekosistem Python). Fitur utama PydanticAI adalah output berjenis: Anda mendeskripsikan hasilnya sebagai model Pydantic biasa, dan kerangka kerja memastikan bahwa model mengembalikan struktur ini dengan tepat, divalidasi dan siap digunakan. Ditambah panggilan alat @agent.tool yang jelas, injeksi dependensi, dan dukungan untuk penyedia mana pun.

Masalahnya sama seperti semua kerangka kerja agen — harga token. Agen dengan alat terus menerus memproses konteks: permintaan → panggilan alat → hasil → permintaan berulang. Untuk satu tugas, jutaan token dapat dengan mudah digunakan. Dengan tarif OpenAI ($2,50–15 per 1 juta) dan Anthropic ($3–15 per 1 juta), bahkan prototipe pun menjadi mahal, dan produksi dengan ribuan permintaan per hari menjadi tidak terjangkau.

PydanticAI secara native bekerja dengan endpoint yang kompatibel dengan OpenAI melalui kelas OpenAIChatModel dan OpenAIProvider. Ini berarti JoinGonka Gateway dapat dihubungkan dengan beberapa baris kode — tanpa paket terpisah atau adaptor. Hasilnya: agen berjenis yang bekerja seharga $0,0005 per 1 juta token input dibandingkan $2,50–15 dari OpenAI/Anthropic — ratusan hingga ribuan kali lebih murah.

Mulai Cepat: Koneksi dalam Kode

Pertama, dapatkan kunci: daftar di gate.joingonka.ai/register — saat pendaftaran kami memberikan 10 juta token gratis — dan buat kunci jg-xxx di Dashboard → Kunci API.

Instalasi:

pip install pydantic-ai
# atau opsi ringan hanya dengan dependensi OpenAI:
# pip install "pydantic-ai-slim[openai]"

Contoh minimal — agen melalui Gonka. PydanticAI menetapkan endpoint khusus melalui OpenAIProvider(base_url=..., api_key=...), yang diteruskan ke OpenAIChatModel:

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

model = OpenAIChatModel(
    "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-kunci-anda",
    ),
)

agent = Agent(model)

result = agent.run_sync("Jelaskan dalam dua kalimat, apa itu PoUW")
print(result.output)

Itu saja — agen PydanticAI Anda bekerja melalui jaringan desentralisasi Gonka dengan biaya rendah. Metode run_sync nyaman untuk skrip; untuk kode async ada await agent.run(...).

Parameter model: jendela konteks Qwen3-235B — 128K token (131072), panjang respons maksimum melalui Gateway — hingga 8192 token. Output dapat dibatasi melalui pengaturan model (OpenAIChatModelSettings(max_tokens=8192)). Juga tersedia moonshotai/Kimi-K2.6 (hingga 3072 token output) dan MiniMaxAI/MiniMax-M2.7 (hingga 4096) — cukup ubah nama model di argumen pertama OpenAIChatModel.

Fitur PydanticAI: output berjenis

Alasan utama memilih PydanticAI adalah structured output. Alih-alih mengurai teks respons dengan regex, Anda mendeskripsikan hasilnya sebagai model Pydantic dan meneruskannya ke parameter output_type. Kerangka kerja menggunakan panggilan alat model untuk memaksanya mengembalikan data secara ketat sesuai skema, memvalidasinya, dan mengembalikan objek yang sudah jadi melalui 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(
    "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-kunci-anda",
    ),
)


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


agent = Agent(model, output_type=Profile)

result = agent.run_sync(
    "Ekstrak data: Anna adalah pengembang backend, tahu Python, Go, dan Postgres"
)
print(result.output)
# name='Anna' role='pengembang backend' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — sudah list[str], bukan teks

Ini berfungsi karena Qwen3-235B (dan dua model Gonka lainnya) mendukung panggilan alat asli — PydanticAI mengandalkannya untuk mengembalikan struktur JSON yang valid. Pada output, Anda mendapatkan objek Python berjenis, bukan string yang perlu diurai secara manual. Ideal untuk ekstraksi data, klasifikasi, pengisian formulir, dan pipeline RAG, di mana hasilnya harus dilanjutkan dalam kode dalam format yang ketat.

Perbandingan Biaya

PydanticAI adalah kerangka kerja untuk agen dan pipeline yang beroperasi terus-menerus: mengekstrak data, memanggil alat, memproses aliran permintaan. Di sini, biaya token menentukan apakah proyek akan tetap menjadi prototipe atau masuk ke produksi. Mari kita bandingkan beban kerja tipikal:

SkenarioTokenOpenAI / AnthropicJoinGonka Gonka
Ekstraksi struktur dari dokumen~3K$0,008 — $0,045~$0,000002
Agen dengan panggilan alat (satu siklus)~15K$0,04 — $0,22~$0,00001
Pipeline RAG (1000 permintaan/hari)~5 juta/hari$12 — $75/hari~$0,003/hari
Agen produksi (100 ribu permintaan/hari)~500 juta/hari$1.250 — $7.500/hari~$0,30/hari

Perbedaannya — ratusan dan ribuan kali. Untuk prototipe, ini berarti 10 juta token gratis cukup untuk ratusan kali menjalankan agen. Untuk produksi, yang memproses ratusan ribu permintaan per hari, penghematan adalah puluhan ribu dolar per bulan — dengan kode PydanticAI yang sama, hanya dengan base_url yang berbeda.

Satu kunci jg-xxx dan satu saldo berfungsi untuk format OpenAI (/v1) dan format Anthropic (/v1/messages) — tetapi untuk PydanticAI, endpoint yang kompatibel dengan OpenAI yang ditunjukkan di atas sudah cukup.

Panggilan alat dan pemilihan model

Kemampuan utama kedua PydanticAI adalah alat. Fungsi dapat didaftarkan dengan dekorator @agent.tool_plain (tanpa konteks) atau @agent.tool (dengan akses ke RunContext dan injeksi dependensi). Model itu sendiri memutuskan kapan harus memanggil alat, menerima hasilnya, dan melanjutkan penalaran:

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

model = OpenAIChatModel(
    "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-kunci-anda",
    ),
)

agent = Agent(
    model,
    instructions="Anda adalah asisten. Gunakan alat saat diperlukan.",
)


@agent.tool_plain
def roll_dice() -> str:
    """Melemparkan dadu enam sisi dan mengembalikan hasilnya."""
    return str(random.randint(1, 6))


@agent.tool_plain
def calculator(expression: str) -> str:
    """Menghitung ekspresi matematika."""
    return str(eval(expression))


result = agent.run_sync("Lempar dadu dan kalikan hasilnya dengan 7")
print(result.output)

Karena panggilan alat Gonka bersifat asli, alat dipanggil dengan andal — tanpa penguraian respons tekstual yang rapuh. Seluruh siklus (permintaan → panggilan alat → respons akhir) berharga sekitar $0,00001 melalui Gonka dibandingkan $0,04–0,22 pada OpenAI/Anthropic.

Model mana yang harus dipilih: Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 — default, keseimbangan kualitas terbaik dan batas output terbesar (8192). moonshotai/Kimi-K2.6 kuat dalam pengodean dan penalaran kompleks (output hingga 3072). MiniMaxAI/MiniMax-M2.7 — untuk dialog panjang (output hingga 4096). Ketiganya tersedia sekarang dengan satu kunci — hanya string model yang berubah. Alat-alat yang sejenis: LangChain untuk rantai dan RAG, LlamaIndex untuk pengindeksan data.

PydanticAI + Gonka = agen AI berjenis di Python dengan biaya rendah. Output terstruktur pada model Pydantic, panggilan alat asli, injeksi dependensi — semua melalui OpenAIChatModel + OpenAIProvider dengan satu base_url. Biaya — mulai dari $0,0005 per 1 juta token dibandingkan $2,50–15 di OpenAI dan Anthropic.

Ingin tahu lebih banyak?

Jelajahi bagian lain atau mulai hasilkan GNK sekarang.

Dapatkan 10 juta token gratis →