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

নেভিগেশন

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

বিভাগ

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

সরঞ্জাম

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

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

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

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

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

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

ইনস্টল:

pip install pydantic-ai
# or the slim variant with only the 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(
    "MiniMaxAI/MiniMax-M2.7",
    provider=OpenAIProvider(
        base_url="https://gate.joingonka.ai/v1",
        api_key="jg-your-key",
    ),
)

agent = Agent(model)

result = agent.run_sync("Explain in two sentences what PoUW is")
print(result.output)

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

মডেল প্যারামিটার: MiniMax M2.7-এর কনটেক্সট উইন্ডো 180K টোকেন (180000), DeepSeek V4 Flash-এর 380K, GLM-5.3 Flash-এর 390K; Gateway-এর মাধ্যমে সর্বোচ্চ উত্তরদৈর্ঘ্য MiniMax ও GLM-5.3 Flash-এ 8192 টোকেন পর্যন্ত, DeepSeek-এ 32768 পর্যন্ত। মডেল সেটিংসের মাধ্যমে আউটপুট সীমিত করা যায় (OpenAIChatModelSettings(max_tokens=8192))। উপলব্ধ: MiniMaxAI/MiniMax-M2.7, deepseek-ai/DeepSeek-V4-Flash-0731 এবং zai-org/GLM-5.3-Flash — শুধু 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(
    "Extract the data: Anna is a backend developer who knows Python, Go and Postgres"
)
print(result.output)
# name='Anna' role='backend developer' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — already a list[str], not text

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

খরচের তুলনা

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

দৃশ্যপটটোকেনOpenAI / AnthropicJoinGonka Gonka
ডকুমেন্ট থেকে স্ট্রাকচার এক্সট্রাকশন~3K$0.008 — $0.045~$0.000028
টুল কলিং সহ এজেন্ট (একটি চক্র)~15K$0.04 — $0.22~$0.00014
RAG-পাইপলাইন (১০০০ রিকোয়েস্ট/দিন)~5M/দিন$12 — $75/দিন~$0.048/দিন
প্রোডাকশন-এজেন্ট (১০০K রিকোয়েস্ট/দিন)~500M/দিন$1,250 — $7,500/দিন~$4.80/দিন

পার্থক্যটি শতগুণ বা হাজার গুণ। একটি প্রোটোটাইপের জন্য এর মানে হলো 3M ফ্রি টোকেন দিয়ে এজেন্টের প্রথম রানগুলো অনায়াসেই করা যায়। প্রতিদিন লক্ষ লক্ষ রিকোয়েস্ট হ্যান্ডেল করা প্রোডাকশনের ক্ষেত্রে, সাশ্রয় হয় প্রতি মাসে হাজার হাজার ডলার — 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-your-key",
    ),
)

agent = Agent(
    model,
    instructions="You are an assistant. Use the tools when needed.",
)


@agent.tool_plain
def roll_dice() -> str:
    """Rolls a six-sided die and returns the result."""
    return str(random.randint(1, 6))


@agent.tool_plain
def calculator(expression: str) -> str:
    """Evaluates a math expression."""
    return str(eval(expression))


result = agent.run_sync("Roll the die and multiply the result by 7")
print(result.output)

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

কোন মডেল বেছে নেবেন: MiniMaxAI/MiniMax-M2.7 — দীর্ঘ কথোপকথন ও সুষম কাজের জন্য, আউটপুট 8192 পর্যন্ত। deepseek-ai/DeepSeek-V4-Flash-0731 — নেটওয়ার্কের সবচেয়ে দীর্ঘ কনটেক্সটগুলির একটি (380K) এবং সস্তা বড় প্রম্পট, আউটপুট 32768 পর্যন্ত। zai-org/GLM-5.3-Flash — জটিল চিন্তার জন্য reasoning মডেল এবং নেটওয়ার্কের দীর্ঘতম কনটেক্সট (390K), আউটপুট 8192 পর্যন্ত; চিন্তা max_tokens-এর একটি অংশ খরচ করে, তাই তা বাফারসহ সেট করুন (কমপক্ষে 600)। তিনটিই এখনই এক কী-তে পাওয়া যায় — কেবল মডেলের লাইনটি বদলায়। একই ধরনের টুল: চেইন ও RAG-এর জন্য LangChain, ডেটা ইনডেক্সিংয়ের জন্য LlamaIndex।

PydanticAI + Gonka = Python-এ টাইপড AI এজেন্ট খুব কম খরচে। Pydantic-মডেলের মাধ্যমে স্ট্রাকচার্ড আউটপুট, নেটিভ টুল কলিং, ডিপেন্ডেন্সি ইনজেকশন — সবকিছুই OpenAIChatModel + OpenAIProvider এবং একটি base_url দিয়ে সম্ভব। খরচ — প্রতি 1M টোকেন মাত্র $0.0062, যেখানে OpenAI এবং Anthropic-এ খরচ $2.50–15।

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

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

ফ্রি টোকেন সংগ্রহ করুন →