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

নেভিগেশন

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

বিভাগ

সরঞ্জাম 37
গ্লসারি 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.0069 খরচে কাজ করে — যা শতগুণ বা হাজার গুণ সস্তা।

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

প্রথমে একটি কী (key) সংগ্রহ করুন: gate.joingonka.ai/register-এ রেজিস্টার করুন — রেজিস্ট্রেশনের সময় আমরা 3M ফ্রি টোকেন দিই — এবং ড্যাশবোর্ড → 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(...) ব্যবহার করুন।

মডেল প্যারামিটার: MiniMax M2.7 এর কনটেক্সট উইন্ডো হলো 200K টোকেন (200000), DeepSeek V4 Flash-এর 380K, এবং GLM-5.3 Flash-এর 390K; গেটওয়ের মাধ্যমে সর্বোচ্চ রেসপন্স লেন্থ — 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-আপনার-কী",
    ),
)


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


agent = Agent(model, output_type=Profile)

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

এটি কার্যকর কারণ Gonka-এর তিনটি মডেলই (MiniMax M2.7, DeepSeek V4 Flash এবং GLM-5.3 Flash) নেটিভ tool calling সাপোর্ট করে — PydanticAI বৈধ JSON স্ট্রাকচার রিটার্ন করার জন্য এটির উপর নির্ভর করে। আউটপুটে আপনি একটি টাইপড পাইথন অবজেক্ট পান, ম্যানুয়ালি পার্স করা কোনো স্ট্রিং নয়। এটি ডেটা এক্সট্র্যাকশন, ক্লাসিফিকেশন, ফর্ম ফিলিং এবং 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-ваш-ключ",
    ),
)

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-তে টুল কলিং নেটিভ, টুলগুলি নির্ভরযোগ্যভাবে কল করা হয় — টেক্সট রেসপন্স পার্স করার মতো ভঙ্গুর পদ্ধতির প্রয়োজন হয় না। পুরো সাইকেল (রিকোয়েস্ট → টুল কল → ফাইনাল রেসপন্স) Gonka-এর মাধ্যমে খরচ হয় প্রায় $0.00007, যেখানে OpenAI/Anthropic-এ তা $0.04–0.22।

কোন মডেলটি বেছে নেবেন: MiniMaxAI/MiniMax-M2.7 — দীর্ঘ কথোপকথন এবং ভারসাম্যপূর্ণ কাজের জন্য, আউটপুট ৮১৯২ পর্যন্ত। deepseek-ai/DeepSeek-V4-Flash-0731 — নেটওয়ার্কের অন্যতম দীর্ঘ কন্টেক্সট (৩৮০K) এবং সস্তা বড় প্রম্পট, আউটপুট ৩২,৭৬৮ পর্যন্ত। zai-org/GLM-5.3-Flash — জটিল যুক্তির জন্য একটি reasoning-মডেল এবং নেটওয়ার্কের দীর্ঘতম কন্টেক্সট (৩৯০K), আউটপুট ৮১৯২ পর্যন্ত; যুক্তি প্রদানের সময় max_tokens-এর কিছু অংশ খরচ হয়, তাই এটি পর্যাপ্ত পরিমাণে (৬০০ থেকে) সেট করুন। এই তিনটি মডেলই একটি মাত্র কী-এর মাধ্যমে এখনই ব্যবহার করা যাবে — শুধু মডেলের স্ট্রিংটি পরিবর্তন করলেই হয়। একই ধরনের টুলস: চেইন এবং RAG-এর জন্য LangChain, ডেটা ইনডেক্সিংয়ের জন্য LlamaIndex

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

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

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

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