জ্ঞানকোষের বিভাগসমূহ ▾

নেভিগেশন

▸ এখানে শুরু করুন রোল অনুযায়ী

বিভাগ

সরঞ্জাম 32
গ্লসারি 12

সরঞ্জাম

PydanticAI + Gonka — টাইপড এআই এজেন্ট নগণ্য খরচে

PydanticAI হলো Pydantic টিমের তৈরি AI এজেন্ট তৈরির একটি Python-ফ্রেমওয়ার্ক (এই সেই ভ্যালিডেশন লাইব্রেরি যার উপর পুরো Python ইকোসিস্টেম নির্ভরশীল)। PydanticAI-এর মূল বৈশিষ্ট্য হলো টাইপড আউটপুট (typed output): আপনি ফলাফলটিকে একটি সাধারণ Pydantic মডেল হিসেবে বর্ণনা করবেন, আর ফ্রেমওয়ার্ক নিশ্চিত করবে যে মডেলটি ঠিক সেই স্ট্রাকচারেই উত্তর দেবে, যা ভ্যালিডেট করা এবং ব্যবহারের জন্য প্রস্তুত। এছাড়া রয়েছে সহজ @agent.tool tool calling, ডিপেন্ডেন্সি ইনজেকশন এবং যেকোনো প্রোভাইডারের সাপোর্ট।

অন্যান্য এজেন্ট ফ্রেমওয়ার্কের মতো এখানেও প্রধান সমস্যা হলো টোকেনের খরচ। এজেন্ট টুল ব্যবহারের মাধ্যমে বার বার কনটেক্সট আদান-প্রদান করে: রিকোয়েস্ট → টুল কল → ফলাফল → নতুন করে রিকোয়েস্ট। একটি কাজের জন্য সহজেই কয়েক মিলিয়ন টোকেন খরচ হয়ে যায়। OpenAI ($2.50–15 প্রতি 1M) এবং Anthropic ($3–15 প্রতি 1M) এর মূল্যের সাথে একটি প্রোটোটাইপও ব্যয়বহুল হয়ে ওঠে এবং প্রতিদিন হাজার হাজার রিকোয়েস্টযুক্ত প্রোডাকশন সিস্টেম অসম্ভব হয়ে দাঁড়ায়।

PydanticAI ন্যাটিভলি যেকোনো OpenAI-সামঞ্জস্যপূর্ণ endpoint এর সাথে OpenAIChatModel এবং OpenAIProvider ক্লাসের মাধ্যমে কাজ করে। এর মানে JoinGonka Gateway মাত্র কয়েকটি লাইনে কানেক্ট করা যায় — কোনো আলাদা প্যাকেজ বা অ্যাডাপ্টার ছাড়াই। ফলাফল: টাইপড এজেন্টগুলো OpenAI/Anthropic-এর $2.50–15 এর পরিবর্তে প্রতি 1M ইনপুট টোকেনে মাত্র $0.003 খরচে চলে — যা কয়েকশ থেকে হাজার গুণ সস্তা।

দ্রুত শুরু: কোডে সংযোগ

প্রথমে একটি কী সংগ্রহ করুন: gate.joingonka.ai/register-এ রেজিস্টার করুন — রেজিস্ট্রেশনের সময় আমরা 10M ফ্রি টোকেন দিই — এবং Dashboard → API Keys-এ একটি jg-xxx কী তৈরি করুন।

ইনস্টলেশন:

pip install pydantic-ai
# অথবা শুধুমাত্র OpenAI ডিপেনডেন্সি সহ হালকা ভার্সনের জন্য:
# pip install "pydantic-ai-slim[openai]"

একটি ন্যূনতম উদাহরণ — Gonka-এর মাধ্যমে একটি এজেন্ট। PydanticAI OpenAIProvider(base_url=..., api_key=...) এর মাধ্যমে একটি কাস্টম endpoint সেট করে, যা 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-আপনার-কী",
    ),
)

agent = Agent(model)

result = agent.run_sync("PoUW কী তা দুটি বাক্যে ব্যাখ্যা করুন")
print(result.output)

এটাই সবকিছু — আপনার PydanticAI এজেন্ট বিকেন্দ্রীভূত Gonka নেটওয়ার্ক ব্যবহার করে নামমাত্র খরচে চলছে। run_sync মেথডটি স্ক্রিপ্টের জন্য সুবিধাজনক; async-কোডের জন্য await agent.run(...) ব্যবহার করুন।

মডেল প্যারামিটার: নেটওয়ার্ক মডেলগুলোর কনটেক্সট উইন্ডো হলো 200K টোকেন (200000), গেটওয়ের মাধ্যমে রেসপন্সের সর্বোচ্চ দৈর্ঘ্য 8192 টোকেন পর্যন্ত। আপনি মডেল সেটিংসের মাধ্যমে আউটপুট লিমিট করতে পারেন (OpenAIChatModelSettings(max_tokens=8192))। moonshotai/Kimi-K2.6 এবং MiniMaxAI/MiniMax-M2.7 (প্রতিটি 8192 আউটপুট টোকেন পর্যন্ত) ব্যবহার করা যেতে পারে — কেবল 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-আপনার-কী",
    ),
)


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


agent = Agent(model, output_type=Profile)

result = agent.run_sync(
    "ডেটা এক্সট্র্যাক্ট করুন: আন্না একজন backend-developer, তিনি Python, Go এবং Postgres জানেন"
)
print(result.output)
# name='আন্না' role='backend-developer' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — এটি এখন list[str], কোনো টেক্সট নয়

এটি কাজ করে কারণ উভয় Gonka মডেল (Kimi K2.6 এবং MiniMax M2.7) নেটিভ tool calling সাপোর্ট করে — PydanticAI এটি ব্যবহার করে বৈধ JSON-স্ট্রাকচার রিটার্ন করে। আপনি হাতে ম্যানুয়ালি পার্স না করে পাইথনের টাইপ করা অবজেক্ট পান। এটি ডেটা এক্সট্র্যাকশন, ক্লাসিফিকেশন, ফর্ম ফিলাপ এবং RAG-পাইপলাইনের জন্য আদর্শ, যেখানে ফলাফলটি কোডের পরবর্তী ধাপে কঠোর ফরম্যাটে পাঠানো প্রয়োজন।

খরচের তুলনা

PydanticAI হলো এজেন্ট এবং পাইপলাইনের জন্য একটি ফ্রেমওয়ার্ক যা অবিরাম কাজ করে: ডেটা আহরণ করে, টুল ব্যবহার করে এবং রিকোয়েস্টের প্রবাহ পরিচালনা করে। এখানে টোকেনের খরচই নির্ধারণ করে প্রজেক্টটি কি প্রোটোটাইপ পর্যায়ে থাকবে নাকি প্রোডাকশনে যাবে। সাধারণ লোডগুলোর একটি তুলনা নিচে দেওয়া হলো:

দৃশ্যপটটোকেনOpenAI / AnthropicJoinGonka Gonka
ডকুমেন্ট থেকে স্ট্রাকচার আহরণ~3K$0.008 — $0.045~$0.000014
এজেন্ট উইথ tool calling (এক সাইকেল)~15K$0.04 — $0.22~$0.00007
RAG-পাইপলাইন (1000 রিকোয়েস্ট/দিন)~5M/দিন$12 — $75/দিন~$0.024/দিন
প্রোডাকশন-এজেন্ট (100K রিকোয়েস্ট/দিন)~500M/দিন$1,250 — $7,500/দিন~$2.40/দিন

পার্থক্যটি কয়েক শ থেকে হাজার গুণের। প্রোটোটাইপের জন্য এর অর্থ হলো ১০M ফ্রি টোকেন দিয়ে শত শত বার এজেন্ট চালানো সম্ভব। প্রোডাকশনের ক্ষেত্রে, যেখানে প্রতিদিন লক্ষাধিক রিকোয়েস্ট প্রসেস হয়, সেখানে মাসে হাজার হাজার ডলার সঞ্চয় হয় — একই PydanticAI কোড রেখেই, শুধুমাত্র base_url পরিবর্তন করে।

একটি jg-xxx কি এবং একটি ব্যালেন্স OpenAI ফরম্যাট (/v1) এবং Anthropic ফরম্যাট (/v1/messages) উভয়ের জন্যই কাজ করে — তবে PydanticAI-এর জন্য উপরে দেখানো OpenAI-সামঞ্জস্যপূর্ণ endpoint যথেষ্ট।

টুল কলিং এবং মডেল নির্বাচন

PydanticAI-এর দ্বিতীয় মূল বৈশিষ্ট্য হলো টুলস। একটি ফাংশনকে @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-ваш-ключ",
    ),
)

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)

যেহেতু Gonka-তে tool calling নেটিভ, তাই টুলগুলো নির্ভরযোগ্যভাবে কল হয় — কোনো টেক্সট রেসপন্স পার্সিং ছাড়াই। সম্পূর্ণ লুপটি (রিকোয়েস্ট → টুল কল → ফাইনাল রেসপন্স) Gonka-এর মাধ্যমে প্রায় $0.00007 খরচ হয়, যেখানে OpenAI/Anthropic-এ এটি $0.04–0.22।

কোন মডেলটি বেছে নেবেন: moonshotai/Kimi-K2.6 — কোডিং এবং জটিল যুক্তিতে পারদর্শী, আউটপুট ৮১৯২ পর্যন্ত। MiniMaxAI/MiniMax-M2.7 — দীর্ঘ কথোপকথন এবং ভারসাম্যপূর্ণ কাজের জন্য, আউটপুট ৮১৯২ পর্যন্ত। দুটিই একটি কি (key) দিয়ে ব্যবহার করা যায় — শুধু মডেলের স্ট্রিংটি পরিবর্তন করতে হয়। সমজাতীয় টুলস: চেইন এবং RAG-এর জন্য LangChain, ডেটা ইনডেক্সিংয়ের জন্য LlamaIndex

PydanticAI + Gonka = নামমাত্র খরচে Python-এ টাইপ করা AI-এজেন্ট। Pydantic-মডেলে Structured output, নেটিভ tool calling, dependency injection — সবই একটি base_url দিয়ে OpenAIChatModel + OpenAIProvider-এর মাধ্যমে। খরচ — OpenAI এবং Anthropic-এর $2.50–15 এর পরিবর্তে প্রতি ১ মিলিয়ন টোকেনে $0.003 থেকে শুরু।

আরও জানতে চান?

অন্যান্য বিভাগগুলি অন্বেষণ করুন অথবা এখনই GNK উপার্জন শুরু করুন।

10M বিনামূল্যে টোকেন পান →