知識ベースのセクション ▾

ナビゲーション

▸ ここから始める 役割別

カテゴリー

ツール 37
用語集 12

ツール

PydanticAI + Gonka — 超低コストのタイプ付き AI エージェント

PydanticAIは、Pythonエコシステムの半分を支える検証ライブラリPydanticチームによる、AIエージェント作成のためのPythonフレームワークです。PydanticAIの最大の特長は型付き出力です。結果を通常のPydanticモデルとして定義すると、フレームワークがその構造を保証し、検証済みですぐに使える形式でモデルから返されます。さらに、直感的な @agent.tool による tool calling、dependency injection、あらゆるプロバイダーへのサポートを備えています。

すべてのエージェントフレームワークと同様の課題がトークンコストです。ツールを使うエージェントは、クエリ → ツール呼び出し → 結果 → 再クエリというコンテキストのループを繰り返します。1つのタスクで簡単に数百万トークンを消費します。OpenAI(100万トークンあたり2.50〜15ドル)やAnthropic(100万トークンあたり3〜15ドル)の料金体系では、プロトタイプでさえ高額になり、1日数千リクエストを処理する本番環境はコスト的に維持困難です。

PydanticAIは OpenAIChatModel および OpenAIProvider クラスを通じて、あらゆるOpenAI互換エンドポイントとネイティブに連携します。つまり、JoinGonka Gatewayを数行で接続でき、個別のパッケージやアダプターは不要です。その結果、OpenAI/Anthropicの2.50〜15ドルに対し、入力100万トークンあたり$0.0047という数百〜数千分の一のコストで型付きエージェントが動作します。

クイックスタート: コードでの接続

まずキーを取得します:gate.joingonka.ai/register に登録してください(登録時に 1.5M トークン分を無料で進呈)。次に、Dashboard → API Keys で jg-xxx キーを作成します。

インストール

pip install pydantic-ai
# または、OpenAI依存関係のみの軽量版:
# pip install "pydantic-ai-slim[openai]"

最小構成の例 — Gonka経由のエージェント。PydanticAIは OpenAIChatModel に渡される OpenAIProvider(base_url=..., api_key=...) を通じてカスタムエンドポイントを設定します:

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-あなたのキー",
    ),
)

agent = Agent(model)

result = agent.run_sync("PoUWとは何かを2文で説明して")
print(result.output)

以上です。あなたのPydanticAIエージェントが、Gonka分散ネットワークを通じて低コストで動作します。run_sync メソッドはスクリプトに便利で、非同期コードには await agent.run(...) が使用できます。

モデルパラメータ:ネットワークモデルのコンテキストウィンドウは200Kトークン(200,000)、DeepSeek V4 Flashは380Kです。Gateway経由の最大応答長は 8192 トークン、DeepSeekは最大 32768 トークンです。モデル設定(OpenAIChatModelSettings(max_tokens=8192))で出力制限が可能です。moonshotai/Kimi-K2.6MiniMaxAI/MiniMax-M2.7、および deepseek-ai/DeepSeek-V4-Flash-0731 も利用可能です。OpenAIChatModel の第一引数でモデル名を変更するだけで切り替えられます。

PydanticAI の特徴: 型付けされた出力

PydanticAIを選択する主な理由は、structured outputです。回答テキストを正規表現で解析する代わりに、結果をPydanticモデルとして記述し、output_typeパラメータに渡します。フレームワークはモデルのtool calling機能を利用してデータを厳密にスキーマに従って返させ、それを検証した上で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-your-key",
    ),
)


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


agent = Agent(model, output_type=Profile)

result = agent.run_sync(
    "データを抽出: アンナはバックエンド開発者で、Python、Go、Postgresを知っています"
)
print(result.output)
# name='アンナ' role='バックエンド開発者' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — list[str]形式、テキストではありません

Gonkaの3つのモデル(Kimi K2.6, MiniMax M2.7, DeepSeek V4 Flash)はすべてネイティブのtool callingをサポートしているため、これが実現可能です。PydanticAIはこれを利用して有効なJSON構造を返します。出力として、手動で解析が必要な文字列ではなく、型定義されたPythonオブジェクトを取得できます。データ抽出、分類、フォーム入力、および結果を厳密なフォーマットでコード内で使用する必要があるRAGパイプラインに最適です。

コスト比較

PydanticAIは、データの抽出、ツールの呼び出し、リクエストストリームの処理など、継続的に稼働するエージェントやパイプラインのためのフレームワークです。ここでトークンコストは、プロジェクトがプロトタイプのまま終わるか、本番環境に進めるかを左右します。典型的な負荷を比較してみましょう:

シナリオトークン数OpenAI / AnthropicJoinGonka Gonka
ドキュメントからの構造抽出~3K$0.008 — $0.045~$0.000028
ツール呼び出しを行うエージェント(1サイクル)~15K$0.04 — $0.22~$0.00014
RAGパイプライン(1日1000リクエスト)~5M/日$12 — $75/日~$0.048/日
本番用エージェント(1日100Kリクエスト)~500M/日$1,250 — $7,500/日~$4.80/日

差は数百倍から数千倍にも及びます。プロトタイプにおいては、1.5Mの無料トークンでエージェントの初期実行を十分に賄えます。1日数十万リクエストを処理する本番環境では、PydanticAIのコードはそのままで base_url を変更するだけで、月額数万ドルの節約になります。

1つの jg-xxx キーと1つの残高で、OpenAI形式(/v1)とAnthropic形式(/v1/messages)の両方に対応しています。ただし、PydanticAIには上記で示したOpenAI互換エンドポイントで十分です。

ツール呼び出しとモデル選択

PydanticAIの2つ目の主要機能はツールです。関数はデコレータ @agent.tool_plain (コンテキストなし) または @agent.tool (RunContext および dependency injection にアクセス可能) を使用して登録できます。モデルはツールをいつ呼び出すかを自ら判断し、結果を受け取って推論を継続します:

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-your-key",
    ),
)

agent = Agent(
    model,
    instructions="あなたはアシスタントです。必要なときにツールを使用してください。",
)


@agent.tool_plain
def roll_dice() -> str:
    """6面ダイスを振り、結果を返します。"""
    return str(random.randint(1, 6))


@agent.tool_plain
def calculator(expression: str) -> str:
    """数学式を計算します。"""
    return str(eval(expression))


result = agent.run_sync("ダイスを振って、結果を7倍してください")
print(result.output)

Gonkaのtool callingはネイティブであるため、テキスト応答の脆弱なパースに頼ることなく、ツールが確実に呼び出されます。全サイクル(リクエスト → tool呼び出し → 最終回答)のコストは、OpenAI/Anthropicの$0.04–0.22に対し、Gonka経由では約$0.00007です。

モデルの選び方: moonshotai/Kimi-K2.6 — コーディングと複雑な推論に優れ、出力は最大8192。MiniMaxAI/MiniMax-M2.7 — 長い対話やバランスの取れたタスク向け、出力は最大8192。deepseek-ai/DeepSeek-V4-Flash-0731 — ネットワーク内で最も長いコンテキスト(380K)を持ち、低価格で大きなプロンプトに対応、出力は最大32768。これら3つはすべて、単一のキーで今すぐ利用可能で、モデル文字列を変更するだけです。関連するツール: チェーンとRAGには LangChain、データインデックス作成には LlamaIndex

PydanticAI + Gonka = わずかなコストで実現するPython型付きAIエージェント。Pydanticモデルでの構造化出力、ネイティブな tool calling、dependency injectionを OpenAIChatModel + OpenAIProvider (単一の base_url) で利用可能です。コストはOpenAIやAnthropicの2.50〜15ドルに対し、入力100万トークンあたり$0.0047からです。

もっと知りたいですか?

他のセクションを探索するか、Gonkaを今すぐ獲得し始めましょう。

無料トークンを受け取る →