Bagian Basis Pengetahuan ▾

Navigasi

▸ Mulai di sini Berdasarkan peran

Kategori

Alat 32
Glosarium 12

Alat

PydanticAI + Gonka — Agen AI berjenis dengan biaya rendah

PydanticAI adalah framework Python untuk membuat agen AI dari tim Pydantic (library validasi yang mendasari separuh ekosistem Python). Fitur utama PydanticAI adalah output terstruktur (typed output): Anda mendeskripsikan hasil sebagai model Pydantic biasa, dan framework menjamin model akan mengembalikan struktur tersebut, tervalidasi, dan siap digunakan. Ditambah lagi dengan @agent.tool (tool calling) yang mudah dipahami, dependency injection, dan dukungan untuk provider apa pun.

Masalah yang dihadapi sama dengan framework agen lainnya yaitu harga token. Sebuah agen dengan berbagai alat (tools) akan memutar konteks secara berulang: permintaan → panggil tool → hasil → permintaan ulang. Satu tugas bisa dengan mudah memakan jutaan token. Dengan tarif OpenAI (2,50 $ – 15 $ per 1M) dan Anthropic (3 $ – 15 $ per 1M), bahkan prototipe pun menjadi mahal, apalagi produksi dengan ribuan permintaan per hari — menjadi tidak terjangkau.

PydanticAI bekerja secara native dengan endpoint yang kompatibel dengan OpenAI melalui kelas OpenAIChatModel dan OpenAIProvider. Artinya, JoinGonka Gateway dapat terhubung hanya dalam beberapa baris — tanpa paket atau adaptor terpisah. Hasilnya: agen terstruktur yang berjalan dengan biaya 0,003 $ per 1 juta token input, alih-alih 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 — kami memberikan 10M token gratis saat pendaftaran — lalu buat kunci jg-xxx di Dashboard → API Keys.

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(
    "MiniMaxAI/MiniMax-M2.7",
    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)

Selesai — agen PydanticAI Anda bekerja melalui jaringan terdesentralisasi Gonka dengan biaya yang sangat murah. Metode run_sync nyaman digunakan untuk skrip; untuk kode async, gunakan await agent.run(...).

Parameter model: jendela konteks model jaringan adalah 200K token (200000), panjang respons maksimum melalui Gateway mencapai 8192 token. Anda dapat membatasi output melalui pengaturan model (OpenAIChatModelSettings(max_tokens=8192)). Tersedia juga moonshotai/Kimi-K2.6 dan MiniMaxAI/MiniMax-M2.7 (hingga 8192 token output masing-masing) — cukup ubah nama model pada argumen pertama OpenAIChatModel.

Fitur PydanticAI: output berjenis

Alasan utama memilih PydanticAI adalah structured output (output terstruktur). Daripada melakukan parsing teks respons menggunakan regex, Anda mendeskripsikan hasil sebagai model Pydantic dan meneruskannya ke parameter output_type. Framework ini menggunakan tool calling dari model untuk memaksanya mengembalikan data secara ketat sesuai skema, memvalidasinya, dan memberikan 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(
    "MiniMaxAI/MiniMax-M2.7",
    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 backend-developer, tahu Python, Go dan Postgres"
)
print(result.output)
# name='Anna' role='backend-developer' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — sudah list[str], bukan teks

Ini bekerja karena kedua model Gonka (Kimi K2.6 dan MiniMax M2.7) mendukung tool calling asli — PydanticAI mengandalkannya untuk mengembalikan struktur JSON yang valid. Hasilnya, Anda mendapatkan objek Python yang memiliki tipe data, bukan string yang harus diurai secara manual. Sangat ideal untuk ekstraksi data, klasifikasi, pengisian formulir, dan RAG-pipeline, di mana hasil harus diproses lebih lanjut dalam format yang ketat.

Perbandingan Biaya

PydanticAI adalah framework untuk agen dan pipeline yang bekerja terus-menerus: menarik data, memanggil alat, memproses aliran permintaan. Di sini, harga token menentukan apakah sebuah proyek tetap menjadi prototipe atau masuk ke produksi. Mari kita bandingkan beban kerja tipikal:

SkenarioTokenOpenAI / AnthropicJoinGonka Gonka
Ekstraksi struktur dari dokumen~3K0,008 $ – 0,045 $~0,000014 $
Agen dengan tool calling (satu siklus)~15K0,04 $ – 0,22 $~0,00007 $
Pipeline RAG (1000 permintaan/hari)~5M/hari12 $ – 75 $ / hari~0,024 $ / hari
Agen produksi (100K permintaan/hari)~500M/hari1.250 $ – 7.500 $ / hari~2,40 $ / hari

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

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

Panggilan alat dan pemilihan model

Kemampuan kunci kedua dari PydanticAI adalah alat (tools). Sebuah fungsi dapat didaftarkan menggunakan dekorator @agent.tool_plain (tanpa konteks) atau @agent.tool (dengan akses ke RunContext dan dependency injection). Model akan memutuskan sendiri kapan harus memanggil alat tersebut, 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(
    "MiniMaxAI/MiniMax-M2.7",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-kunci-anda",
    ),
)

agent = Agent(
    model,
    instructions="Kamu adalah asisten. Gunakan alat jika perlu.",
)


@agent.tool_plain
def roll_dice() -> str:
    """Melempar dadu bersisi enam 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 tool calling pada Gonka bersifat native, alat dipanggil dengan andal—tanpa parsing respon teks yang rapuh. Seluruh siklus (permintaan → pemanggilan alat → jawaban akhir) memakan biaya sekitar $0.00007 melalui Gonka dibandingkan dengan $0.04–$0.22 di OpenAI/Anthropic.

Model mana yang harus dipilih: moonshotai/Kimi-K2.6 — kuat dalam coding dan penalaran kompleks, output hingga 8192. MiniMaxAI/MiniMax-M2.7 — untuk dialog panjang dan tugas seimbang, output hingga 8192. Keduanya tersedia langsung dengan satu kunci—hanya perlu mengubah string model. Alat yang serupa: LangChain untuk rantai dan RAG, LlamaIndex untuk pengindeksan data.

PydanticAI + Gonka = AI-agent dengan tipe data di Python dengan biaya murah. Structured output pada model Pydantic, tool calling native, dependency injection — semuanya melalui OpenAIChatModel + OpenAIProvider dengan satu base_url. Biaya — mulai dari $0.003 per 1M 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 →