أقسام قاعدة المعرفة ▾

التنقل

▸ ابدأ من هنا حسب الدور

الفئات

أدوات 32
قاموس المصطلحات 12

أدوات

PydanticAI + Gonka - وكلاء AI محددون النوع بتكلفة زهيدة

PydanticAI هو إطار عمل بلغة Python لإنشاء وكلاء ذكاء اصطناعي (AI-agents) من فريق Pydantic (مكتبة التحقق من الصحة التي يعتمد عليها نصف نظام Python البيئي). الميزة الرئيسية لـ PydanticAI هي المخرجات المهيكلة (typed output): أنت تصف النتيجة كنموذج Pydantic عادي، ويضمن الإطار أن النموذج سيعيد هذا الهيكل بالضبط، مع التحقق منه وجاهزيته للاستخدام. بالإضافة إلى @agent.tool لاستخدام الأدوات، وحقن التبعيات (dependency injection)، ودعم أي مزود.

المشكلة هي نفسها لدى جميع أطر العمل الوكيلة — تكلفة الـ tokens. الوكيل مع الأدوات يقوم بتدوير السياق: طلب ← استدعاء أداة ← نتيجة ← طلب جديد. لمهمة واحدة، يمكن بسهولة استهلاك ملايين التوكنات. مع أسعار OpenAI ($2.50–15 لكل 1M) وAnthropic ($3–15 لكل 1M)، يصبح حتى النموذج الأولي مكلفاً، أما الإنتاج مع آلاف الطلبات يومياً فيصبح عبئاً لا يُطاق.

يعمل PydanticAI بشكل أصيل مع أي endpoint متوافق مع OpenAI عبر فئات OpenAIChatModel وOpenAIProvider. هذا يعني أن JoinGonka Gateway يتصل ببضعة أسطر برمجية — دون حزم منفصلة أو محولات. النتيجة: وكلاء مهيكلون (typed) يعملون بتكلفة $0.003 لكل 1M توكن مدخل بدلاً من $2.50–15 لدى OpenAI/Anthropic — أرخص بمئات وآلاف المرات.

ابداية سريعة: الاتصال في الكود

أولاً احصل على المفتاح: سجل في gate.joingonka.ai/register — عند التسجيل نمنحك 10 مليون توكن مجاني — وأنشئ مفتاح jg-xxx في Dashboard → API Keys.

التثبيت:

pip install pydantic-ai
# أو الخيار الخفيف مع تبعيات OpenAI فقط:
# 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-مفتاحك",
    ),
)

agent = Agent(model)

result = agent.run_sync("اشرح ما هو PoUW في جملتين")
print(result.output)

هذا كل شيء — وكيل PydanticAI الخاص بك يعمل عبر شبكة Gonka اللامركزية بأسعار زهيدة جداً. طريقة run_sync مريحة للسكربتات؛ وللكود غير المتزامن (async) هناك await agent.run(...).

بارامترات النموذج: نافذة السياق لنماذج الشبكة هي 200K توكن (200000)، والحد الأقصى لطول الاستجابة عبر Gateway — يصل إلى 8192 توكن. يمكنك تقييد المخرجات عبر إعدادات النموذج (OpenAIChatModelSettings(max_tokens=8192)). تتوفر أيضاً moonshotai/Kimi-K2.6 و MiniMaxAI/MiniMax-M2.7 (حتى 8192 توكن لكل منهما) — فقط قم بتغيير اسم النموذج في المعامل الأول لـ OpenAIChatModel.

ميزة PydanticAI: الإخراج المحدد النوع

السبب الرئيسي لاختيار PydanticAI هو structured output. بدلاً من تحليل نص الاستجابة باستخدام التعبيرات النمطية (regex)، تصف النتيجة كنموذج 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، وتعرف Python و Go و Postgres"
)
print(result.output)
# name='آنا' role='مطور backend' skills=['Python', 'Go', 'Postgres']
print(result.output.skills)  # ['Python', 'Go', 'Postgres'] — هذا هو list[str] بالفعل، وليس نصاً

هذا يعمل لأن كلا نموذجي Gonka (Kimi K2.6 و MiniMax M2.7) يدعمان tool calling أصلي — ويعتمد PydanticAI عليه لإرجاع هيكل JSON صالح. المخرجات التي تحصل عليها هي كائن Python مفهرس (typed object)، وليس نصاً يحتاج إلى معالجة يدوية. مثالي لاستخراج البيانات، التصنيف، ملء النماذج وخطوط أنابيب RAG، حيث يجب أن تنتقل النتيجة عبر الكود بتنسيق صارم.

مقارنة التكلفة

PydanticAI هو إطار عمل للوكلاء والمسارات (pipelines) التي تعمل باستمرار: استخراج البيانات، استدعاء الأدوات، ومعالجة تدفق الطلبات. هنا تحدد تكلفة الـ tokens ما إذا كان المشروع سيبقى نموذجاً أولياً أم سيذهب للإنتاج. لنقارن الأحمال النموذجية:

السيناريوTokensOpenAI / 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/يومياً

الفرق يصل لمئات وآلاف المرات. بالنسبة للنموذج الأولي، يعني هذا أن 10M توكن مجانية تكفي لمئات عمليات تشغيل الوكيل. بالنسبة للإنتاج الذي يعالج مئات الآلاف من الطلبات يومياً، يبلغ التوفير عشرات الآلاف من الدولارات شهرياً — مع نفس الكود على PydanticAI، فقط باستخدام base_url مختلف.

مفتاح واحد jg-xxx ورصيد واحد يعملان لكل من تنسيق OpenAI (/v1) وتنسيق Anthropic (/v1/messages) — ولكن بالنسبة لـ PydanticAI يكفي الـ endpoint المتوافق مع OpenAI الموضح أعلاه.

استدعاء الأدوات واختيار النموذج

الميزة الرئيسية الثانية لـ PydanticAI هي الأدوات (tools). يمكنك تسجيل دالة باستخدام 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(
    "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)

بما أن tool calling في Gonka أصلي (native)، يتم استدعاء الأدوات بشكل موثوق — بدون تحليل نصي هش للاستجابات. الدورة الكاملة (طلب ← استدعاء أداة ← استجابة نهائية) تكلف حوالي $0.00007 عبر Gonka مقابل $0.04–0.22 في OpenAI/Anthropic.

أي نموذج تختار: moonshotai/Kimi-K2.6 — قوي في البرمجة والاستدلال المعقد، المخرجات تصل إلى 8192. MiniMaxAI/MiniMax-M2.7 — للمحادثات الطويلة والمهام المتوازنة، المخرجات تصل إلى 8192. كلاهما متاح الآن بمفتاح واحد — فقط قم بتغيير اسم النموذج. أدوات مشابهة في الفلسفة: LangChain للسلاسل و RAG، LlamaIndex لفهرسة البيانات.

PydanticAI + Gonka = وكلاء ذكاء اصطناعي (AI agents) مكتوبين بنمط (typed) على Python مقابل مبالغ زهيدة. المخرجات المهيكلة (structured output) على نماذج Pydantic، استدعاء أدوات أصلي، و dependency injection — كل ذلك عبر OpenAIChatModel + OpenAIProvider مع رابط base_url واحد. التكلفة تبدأ من $0.003 لكل 1 مليون توكن بدلاً من $2.50–15 لدى OpenAI و Anthropic.

تريد معرفة المزيد؟

استكشف الأقسام الأخرى أو ابدأ في كسب GNK الآن.

احصل على 10 ملايين رمز مجاني →