ส่วนของฐานความรู้ ▾

สำหรับนักลงทุน

เครื่องมือ

เครื่องมือ

PydanticAI + Gonka — เอเจนต์ AI แบบมีไทป์ราคาถูก

PydanticAI — เฟรมเวิร์ก Python สำหรับสร้างเอเจนต์ AI จากทีม Pydantic (ไลบรารีการตรวจสอบความถูกต้องเดียวกันกับที่ระบบนิเวศ Python ส่วนใหญ่ต้องพึ่งพิง) คุณสมบัติหลักของ PydanticAI คือ เอาต์พุตแบบไทป์: คุณอธิบายผลลัพธ์เป็นโมเดล Pydantic ทั่วไป และเฟรมเวิร์กจะรับรองว่าโมเดลจะส่งคืนโครงสร้างนี้อย่างถูกต้อง ตรวจสอบความถูกต้องและพร้อมใช้งาน นอกจากนี้ยังมี @agent.tool tool calling ที่เข้าใจง่าย, dependency injection และรองรับผู้ให้บริการทุกราย

ปัญหาเดียวกันกับเฟรมเวิร์กเอเจนต์ทั้งหมด — คือราคาของโทเคน เอเจนต์ที่มีเครื่องมือจะวนบริบทไปมา: คำขอ → เรียกใช้เครื่องมือ → ผลลัพธ์ → คำขอซ้ำ สำหรับงานเดียวสามารถใช้โทเคนหลายล้านโทเคนได้อย่างง่ายดาย ด้วยอัตราของ OpenAI ($2.50–15 ต่อ 1M) และ Anthropic ($3–15 ต่อ 1M) แม้แต่ต้นแบบก็กลายเป็นราคาแพง และการผลิตที่มีคำขอหลายพันรายการต่อวันก็ไม่สามารถทำได้

PydanticAI ทำงานร่วมกับ endpoint ที่เข้ากันได้กับ OpenAI ใดๆ โดยใช้คลาส OpenAIChatModel และ OpenAIProvider ซึ่งหมายความว่า JoinGonka Gateway สามารถเชื่อมต่อได้ด้วยโค้ดเพียงไม่กี่บรรทัด — โดยไม่ต้องใช้แพ็คเกจหรืออะแดปเตอร์แยกต่างหาก ผลลัพธ์: เอเจนต์แบบไทป์ที่ทำงานในราคา $0.0005 ต่อ 1M โทเคนอินพุต แทนที่จะเป็น $2.50–15 สำหรับ OpenAI/Anthropic — ถูกกว่าหลายร้อยเท่าหรือหลายพันเท่า

เริ่มต้นใช้งานอย่างรวดเร็ว: การเชื่อมต่อในโค้ด

ขั้นแรก รับคีย์: ลงทะเบียนที่ gate.joingonka.ai/register — เมื่อลงทะเบียนเราจะให้ 10M โทเคนฟรี — และสร้างคีย์ jg-xxx ใน Dashboard → API Keys

การติดตั้ง:

pip install pydantic-ai
# หรือตัวเลือกที่เบากว่าที่มีเฉพาะ OpenAI-dependencies:
# pip install "pydantic-ai-slim[openai]"

ตัวอย่างเล็กๆ — เอเจนต์ผ่าน Gonka PydanticAI กำหนด endpoint แบบกำหนดเองผ่าน OpenAIProvider(base_url=..., api_key=...) ซึ่งถูกส่งไปยัง 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-your-key",
    ),
)

agent = Agent(model)

result = agent.run_sync("อธิบาย PoUW ในสองประโยค")
print(result.output)

นั่นคือทั้งหมด — เอเจนต์ PydanticAI ของคุณทำงานผ่าน เครือข่ายกระจายอำนาจ Gonka ในราคาเพียงเล็กน้อย เมธอด run_sync สะดวกสำหรับสคริปต์; สำหรับโค้ด async มี await agent.run(...)

พารามิเตอร์โมเดล: ขีดจำกัด context window ของ Qwen3-235B คือ 128K โทเคน (131072) ความยาวเอาต์พุตสูงสุดผ่าน Gateway — สูงสุด 8192 โทเคน คุณสามารถจำกัดเอาต์พุตผ่านการตั้งค่าโมเดล (OpenAIChatModelSettings(max_tokens=8192)) นอกจากนี้ยังมี moonshotai/Kimi-K2.6 (เอาต์พุตสูงสุด 3072 โทเคน) และ MiniMaxAI/MiniMax-M2.7 (สูงสุด 4096) — เพียงเปลี่ยนชื่อโมเดลในอาร์กิวเมนต์แรกของ OpenAIChatModel

คุณสมบัติของ PydanticAI: เอาต์พุตแบบไทป์

เหตุผลหลักในการเลือก PydanticAI คือ structured output แทนที่จะแยกวิเคราะห์ข้อความจากคำตอบด้วย regular expressions คุณจะอธิบายผลลัพธ์เป็นโมเดล 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(
    "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    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(
    "ดึงข้อมูล: Anna เป็นนักพัฒนา backend รู้ Python, Go และ Postgres"
)
print(result.output)
# name='Anna' role='backend-developer' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — it's already list[str], not text

สิ่งนี้ทำงานได้เนื่องจาก Qwen3-235B (และโมเดล Gonka อีกสองรุ่น) รองรับ native tool calling — PydanticAI อาศัยสิ่งนี้เพื่อส่งคืนโครงสร้าง JSON ที่ถูกต้อง ในที่สุดคุณจะได้ออบเจกต์ Python ที่มีไทป์แทนที่จะเป็นสตริงที่คุณต้องแยกวิเคราะห์ด้วยตนเอง เหมาะอย่างยิ่งสำหรับการดึงข้อมูล, การจัดหมวดหมู่, การกรอกแบบฟอร์ม และ RAG-pipelines ที่ผลลัพธ์จะต้องดำเนินการต่อไปในโค้ดในรูปแบบที่เคร่งครัด

การเปรียบเทียบค่าใช้จ่าย

PydanticAI — เฟรมเวิร์กสำหรับเอเจนต์และไปป์ไลน์ที่ทำงานต่อเนื่อง: ดึงข้อมูล, เรียกใช้เครื่องมือ, ประมวลผลกระแสคำขอ ที่นี่ ค่าใช้จ่ายของโทเคนจะเป็นตัวตัดสินว่าโครงการจะยังคงเป็นต้นแบบหรือจะเข้าสู่การผลิต มาเปรียบเทียบการโหลดทั่วไปกัน:

สถานการณ์โทเคนOpenAI / AnthropicJoinGonka Gonka
การแยกโครงสร้างจากเอกสาร~3K$0.008 — $0.045~$0.000002
เอเจนต์พร้อม tool calling (หนึ่งรอบ)~15K$0.04 — $0.22~$0.00001
RAG-pipeline (1000 คำขอ/วัน)~5M/วัน$12 — $75/วัน~$0.003/วัน
Production-agent (100K คำขอ/วัน)~500M/วัน$1,250 — $7,500/วัน~$0.30/วัน

ความแตกต่างคือหลายร้อยและหลายพันเท่า สำหรับต้นแบบ นั่นหมายความว่า 10M โทเคนฟรีก็เพียงพอสำหรับการรันเอเจนต์หลายร้อยครั้ง สำหรับการผลิตที่ประมวลผลคำขอหลายแสนครั้งต่อวัน การประหยัดมีมูลค่าหลายหมื่นดอลลาร์ต่อเดือน — โดยใช้โค้ด PydanticAI เดียวกัน เพียงแค่มี base_url ที่แตกต่างกัน

คีย์ jg-xxx และยอดคงเหลือหนึ่งเดียวทำงานได้ทั้งรูปแบบ OpenAI (/v1) และรูปแบบ Anthropic (/v1/messages) — แต่สำหรับ PydanticAI ก็เพียงพอแล้วที่จะใช้ endpoint ที่เข้ากันได้กับ OpenAI ดังที่แสดงไว้ด้านบน

Tool calling และการเลือกโมเดล

คุณสมบัติสำคัญอีกประการหนึ่งของ PydanticAI คือเครื่องมือ ฟังก์ชันสามารถลงทะเบียนได้ด้วย decorator @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(
    "Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    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:
    """ทอยลูกเต๋าหกหน้าและส่งคืนผลลัพธ์"""
    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)

เนื่องจาก tool calling ของ Gonka เป็นแบบ native เครื่องมือจึงถูกเรียกใช้อย่างน่าเชื่อถือ — โดยไม่ต้องแยกวิเคราะห์ข้อความที่ตอบกลับที่เปราะบาง วงจรทั้งหมด (คำขอ → การเรียกใช้เครื่องมือ → คำตอบสุดท้าย) มีราคาประมาณ $0.00001 ผ่าน Gonka เทียบกับ $0.04–0.22 สำหรับ OpenAI/Anthropic

จะเลือกโมเดลใด: Qwen/Qwen3-235B-A22B-Instruct-2507-FP8 — ค่าเริ่มต้น, ความสมดุลที่ดีที่สุดระหว่างคุณภาพและขีดจำกัดเอาต์พุตที่ใหญ่ที่สุด (8192) moonshotai/Kimi-K2.6 แข็งแกร่งในการเขียนโค้ดและการให้เหตุผลที่ซับซ้อน (เอาต์พุตสูงสุด 3072) MiniMaxAI/MiniMax-M2.7 — สำหรับบทสนทนาที่ยาวนาน (เอาต์พุตสูงสุด 4096) ทั้งสามอย่างมีให้บริการในขณะนี้ด้วยคีย์เดียว — เพียงแค่เปลี่ยนชื่อโมเดล เครื่องมือที่คล้ายกัน: LangChain สำหรับเชนและ RAG, LlamaIndex สำหรับการจัดทำดัชนีข้อมูล

PydanticAI + Gonka = เอเจนต์ AI แบบไทป์บน Python ในราคาเพียงเศษสตางค์ Structured output บนโมเดล Pydantic, native tool calling, dependency injection — ทั้งหมดผ่าน OpenAIChatModel + OpenAIProvider ด้วย base_url เดียวกัน ค่าใช้จ่าย — ตั้งแต่ $0.0005 ต่อ 1M โทเคน แทนที่จะเป็น $2.50–15 สำหรับ OpenAI และ Anthropic

ต้องการเรียนรู้เพิ่มเติมหรือไม่?

สำรวจส่วนอื่นๆ หรือเริ่มรับ GNK ทันที

รับ 10M โทเคนฟรี →