كيفية استخدام واجهة برمجة تطبيقات Xiaomi MiMo-V2.5-Pro على Novita AI

كيفية استخدام واجهة برمجة تطبيقات Xiaomi MiMo-V2.5-Pro على Novita AI

Xiaomi MiMo-V2.5-Pro متاح على Novita AI من خلال واجهة برمجة تطبيقات Serverless، لذا يمكن للمطورين استدعاء معرف النموذج المُوثق xiaomimimo/mimo-v2.5-pro باستخدام نقطة نهاية الدردشة المتوافقة مع OpenAI من Novita لسير العمل النصية طويلة السياق، ومهام البرمجة التي تتطلب التفكير، واستدعاء الوظائف، وتجارب المخرجات المنظمة.

الإعداد السريع

استخدم نقطة البداية هذه عندما يكون لديك بالفعل مفتاح API من Novita AI وتريد أقصر مسار مُوثق لأول طلب.

pip install openai
export NOVITA_API_KEY="YOUR_NOVITA_API_KEY"

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {
            "role": "system",
            "content": "You are a concise software architecture assistant.",
        },
        {
            "role": "user",
            "content": "Outline a migration plan for moving a Python monolith into services.",
        },
    ],
    max_tokens=2048,
    temperature=0.7,
)

print(response.choices[0].message.content)

صفحة نموذج Xiaomi MiMo-V2.5-Pro الحالية تدرج النموذج كخيار API Serverless من Novita AI وتظهر عنوان URL الأساسي المتوافق مع OpenAI وهو https://api.novita.ai/openai. مرجع API الدردشة الحالي من Novita AI يوثق مسار REST كـ /openai/v1/chat/completions.

ما هو Xiaomi MiMo-V2.5-Pro

Xiaomi MiMo-V2.5-Pro هو نموذج لغة كبير يعمل بنظام النص إلى نص (text-in, text-out) مصمم لسير العمل الوكيلية المعقدة وهندسة البرمجيات. على Novita AI، معرف النموذج في API هو:


xiaomimimo/mimo-v2.5-pro

قائمة نماذج Novita AI الحالية تتحقق من تفاصيل التنفيذ التالية:

الحقل القيمة الحالية
مسار الوصول Serverless API
مجموعة نقاط النهاية نقطة نهاية دردشة متوافقة مع OpenAI
عنوان URL الأساسي https://api.novita.ai/openai
معرف النموذج xiaomimimo/mimo-v2.5-pro
طول السياق 1,048,576 رمزًا (token)
أقصى إخراج 131,072 رمزًا
قدرة الإدخال نص
قدرة الإخراج نص
استدعاء الوظائف (Function calling) مدعوم
المخرجات المنظمة مدعومة
التفكير (Reasoning) مدعوم
واجهة برمجة تطبيقات Anthropic مدعومة

في المصدر العلوي، بطاقة نموذج Xiaomi MiMo-V2.5-Pro على Hugging Face تصف MiMo-V2.5-Pro كنموذج لغة مفتوح المصدر يعمل بخبراء مختلطين (Mixture-of-Experts) بإجمالي 1.02 تريليون معامل، و42 مليار معامل نشط، ونافذة سياق تصل إلى مليون رمز. تعامل مع بطاقة النموذج العلوية كخلفية مفيدة لعائلة النماذج، واستخدم صفحة نموذج Novita AI للحصول على معرف النموذج الخاص بـ Novita، والتسعير، والتوفر، وتفاصيل نقطة النهاية.

متى تستخدم MiMo-V2.5-Pro

MiMo-V2.5-Pro الأكثر فائدة عندما يحتاج تطبيقك إلى نموذج نصي مُستضاف لمهام طويلة الأمد وكثيفة التعليمات بدلاً من إجابة قصيرة لدورة واحدة. تتضمن أهداف التقييم الجيدة تحليل المستودعات، خطط إعادة هيكلة الملفات المتعددة، تركيب المستندات ذات السياق الطويل، تخطيط الوكيل، نماذج توجيه الأدوات، ومهام الاستخراج المنظمة.

استخدمه عندما تحتاج إلى:

  • نافذة سياق مُوثقة تبلغ 1,048,576 رمزًا على Novita AI.
  • إعداد إخراج أقصى مرتفع للخطط التفصيلية ومراجعات الكود وملخصات الترحيل وآثار التفكير متعددة الخطوات.
  • دعم استدعاء الوظائف لتوجيه قرارات النموذج إلى أدوات التطبيق.
  • دعم المخرجات المنظمة للاستجابات المشابهة لـ JSON التي يمكن للخدمات النهائية تحليلها.
  • نقاط نهاية محادثة متوافقة مع OpenAI حتى تتمكن من إعادة استخدام أنماط SDK الموجودة.

لا تفترض أنه الخيار الأقل تكلفة أو الأقل زمن وصول لكل مهمة. بالنسبة للطلبات القصيرة، أو التصنيف عالي الحجم، أو الدردشة البسيطة، قارن الخيارات الحالية في مكتبة نماذج Novita AI وصفحة تسعير Novita AI قبل توجيه كل حركة المرور إلى نموذج طويل السياق.

المتطلبات الأساسية

قبل تقديم أول طلب، حضّر أربعة أشياء:

  1. حساب في Novita AI.
  2. مفتاح API من Novita AI مخزّن في متغير بيئة مثل NOVITA_API_KEY.
  3. SDK بايثون OpenAI أو عميل HTTP آخر يمكنه استدعاء نقاط النهاية المتوافقة مع OpenAI.
  4. التحقق الحالي من التسعير والحدود لـ xiaomimimo/mimo-v2.5-pro.

صفحة نموذج Novita AI الحالية تدرج تسعيرًا قائمًا على الرموز (token-based) للخدمة بدون خادم (serverless) لـ MiMo-V2.5-Pro. تعرض سعرًا عامًا يبلغ $2 لكل مليون رمز إدخال، و$0.4 لكل مليون رمز قراءة مخبأة (cached-read)، و$6 لكل مليون رمز إخراج. كما تدرج تسعيرًا متدرجًا حسب طول الإدخال:

طول الإدخال سعر الإدخال لكل مليون رمز سعر الإخراج لكل مليون رمز سعر القراءة المخبأة لكل مليون رمز
1 إلى أقل من 262,144 رمزًا $1 $3 $0.2
262,144 إلى أقل من 1,048,576 رمزًا $2 $6 $0.4

نظرًا لأن صفحات النماذج وجداول التسعير قد تتغير، تأكد من الأسعار الحالية على صفحة النموذج أو صفحة التسعير قبل الاستخدام الإنتاجي، خاصةً للطلبات الطويلة حيث قد يُطبق المستوى الثاني.

أول طلب API

أبسط طلب أول يستخدم SDK من OpenAI مع عنوان URL الأساسي لـ Novita AI ومعرف نموذج MiMo-V2.5-Pro.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {"role": "system", "content": "You are a practical coding assistant."},
        {
            "role": "user",
            "content": "Review this API design and list the main reliability risks.",
        },
    ],
    max_tokens=1024,
    temperature=0.7,
)

print(response.choices[0].message.content)

إذا كنت تفضل REST، قم باستدعاء مسار الدردشة الحالي مباشرة:

curl --request POST \
  --url https://api.novita.ai/openai/v1/chat/completions \
  --header "Authorization: Bearer $NOVITA_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "xiaomimimo/mimo-v2.5-pro",
    "messages": [
      {
        "role": "system",
        "content": "You are a practical coding assistant."
      },
      {
        "role": "user",
        "content": "Create a checklist for validating a payment webhook integration."
      }
    ],
    "max_tokens": 1024,
    "temperature": 0.7
  }'

للكود الإنتاجي، احتفظ بمفاتيح API بعيدًا عن التحكم في المصدر، وحدد max_tokens بالمبلغ الفعلي الذي يحتاجه سير عملك، وسجل استخدام الرموز حتى تتمكن من رؤية متى تبدأ الطلبات ذات السياق الطويل في السيطرة على التكلفة.

ملاحظات حول البث والاستخدام مع السياق الطويل

يتضمن مرجع الدردشة من Novita AI حقول stream وstream_options، وتؤكد صفحة نموذج MiMo-V2.5-Pro طول سياق يبلغ 1,048,576 رمزًا مع أقصى إخراج يبلغ 131,072 رمزًا. استخدم هذه الحدود كسقف هندسي، وليس كإعداد افتراضي.

لاستجابة بث:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

stream = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {"role": "system", "content": "You write concise engineering plans."},
        {
            "role": "user",
            "content": "Draft a step-by-step rollback plan for a failed database migration.",
        },
    ],
    max_tokens=2048,
    temperature=0.7,
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="")

بالنسبة للطلبات ذات السياق الطويل، حافظ على هذه الممارسات:

  • ضع المهمة، تنسيق الإخراج، وشروط التوقف بالقرب من بداية المحادثة.
  • قسم الملفات أو المستندات غير المرتبطة إلى أقسام واضحة المعالم.
  • اطلب من النموذج الاستشهاد بأسماء الأقسام أو مسارات الملفات من السياق المقدم بدلاً من اختراع مواقع.
  • ابدأ بقيم max_tokens أصغر أثناء التطوير، ثم ارفع السقف فقط عندما يحتاج سير العمل إلى إخراج أطول.
  • تتبع رموز الإدخال (prompt)، والإخراج (completion)، والإجمالي من كائن usage عندما يتضمنه الرد.

مثال على استدعاء الوظائف

صفحة نموذج MiMo-V2.5-Pro تؤكد دعم استدعاء الوظائف، ويتضمن مرجع الدردشة معلمة tools مع بيانات تعريف الوظيفة. استخدم هذا عندما يجب على النموذج اختيار إجراء تطبيقي، مثل البحث عن تذكرة داخلية، أو جلب حالة حساب، أو إنشاء مهمة نشر.

import json
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "create_deployment_ticket",
            "description": "Create a deployment follow-up ticket.",
            "parameters": {
                "type": "object",
                "properties": {
                    "service": {
                        "type": "string",
                        "description": "The service that needs follow-up.",
                    },
                    "priority": {
                        "type": "string",
                        "enum": ["low", "medium", "high"],
                    },
                    "summary": {
                        "type": "string",
                        "description": "A short ticket summary.",
                    },
                },
                "required": ["service", "priority", "summary"],
                "additionalProperties": False,
            },
            "strict": True,
        },
    }
]

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {
            "role": "system",
            "content": "Decide whether the user's deployment note requires a follow-up ticket.",
        },
        {
            "role": "user",
            "content": "Checkout latency increased after the payment-service deploy. Create a high priority follow-up.",
        },
    ],
    tools=tools,
    max_tokens=1024,
    temperature=0.2,
)

message = response.choices[0].message

if message.tool_calls:
    tool_call = message.tool_calls[0]
    args = json.loads(tool_call.function.arguments)
    print(args)
else:
    print(message.content)

في تطبيق حقيقي، تحقق من وسيطات الأداة (tool arguments) من جانب الخادم قبل تنفيذ أي إجراء. يمنحك استدعاء الوظائف قرارًا منظمًا من النموذج؛ فهو لا يحل محل التفويض، أو التحقق من صحة الإدخال، أو تسجيل التدقيق، أو ضوابط التراجع.

مثال على المخرجات المنظمة

صفحة نموذج MiMo-V2.5-Pro تؤكد أيضًا دعم المخرجات المنظمة، ويتضمن مرجع الدردشة من Novita AI حقل response_format مع مخطط JSON. استخدم المخرجات المنظمة عندما تريد من النموذج إرجاع بيانات قابلة للتحليل بدلاً من نثر غير منظم.

import json
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NOVITA_API_KEY"],
    base_url="https://api.novita.ai/openai",
)

response_format = {
    "type": "json_schema",
    "json_schema": {
        "name": "migration_risk_report",
        "schema": {
            "type": "object",
            "properties": {
                "risk_level": {
                    "type": "string",
                    "enum": ["low", "medium", "high"],
                },
                "main_risks": {
                    "type": "array",
                    "items": {"type": "string"},
                },
                "next_actions": {
                    "type": "array",
                    "items": {"type": "string"},
                },
            },
            "required": ["risk_level", "main_risks", "next_actions"],
            "additionalProperties": False,
        },
        "strict": True,
    },
}

response = client.chat.completions.create(
    model="xiaomimimo/mimo-v2.5-pro",
    messages=[
        {
            "role": "system",
            "content": "Return only a structured migration risk report.",
        },
        {
            "role": "user",
            "content": "We are moving billing jobs from cron to a queue and changing retry behavior.",
        },
    ],
    response_format=response_format,
    max_tokens=1024,
    temperature=0.2,
)

report = json.loads(response.choices[0].message.content)
print(json.dumps(report, indent=2))

إذا فشل تحليل JSON للاستجابة أثناء الاختبار، قلل من الغموض في الطلب، واخفض درجة الحرارة (temperature)، واجعل المخطط موجزًا، وأعد المحاولة بإدخال أقصر. بالنسبة لسير العمل الإنتاجي، تحقق من الكائن المحلل مقابل مخططك الخاص قبل استخدامه.

تحذيرات بشأن التكلفة وزمن الوصول والحدود

MiMo-V2.5-Pro مخصص للمهام الطويلة السياق والوكيلية، لذا فإن التحكم في التكلفة مهم. يمكن أن يكون الطلب القريب من مستوى السياق الأعلى أكثر تكلفة بشكل ملحوظ من طلب قصير، كما أن المخرجات الطويلة تزيد من تكلفة رموز الإخراج. صفحة نموذج Novita AI تدرج حاليًا تسعيرًا متدرجًا للإدخال/الإخراج، لذا قدر رموز الإدخال والإخراج قبل توجيه المهام الكبيرة تلقائيًا.

استخدم هذه الضوابط:

  • ضع سقفًا عمليًا لـ max_tokens بدلاً من استخدام حد الإخراج الأقصى افتراضيًا.
  • لخص أو استرجع فقط السياق المطلوب للمهمة الحالية.
  • قم بتخزين أو إعادة استخدام السياق المستقر حيث تدعم بنيتك التحتية ذلك.
  • راقب استخدام الرموز حسب الميزة والمستخدم وسير العمل.
  • أضف مهلات زمنية (timeouts) وإعادة محاولة حول استدعاءات الشبكة.
  • احتفظ بنموذج احتياطي أصغر للمهام القصيرة إذا كان منتجك لا يحتاج إلى MiMo-V2.5-Pro في كل طلب.

يمكن أن يختلف زمن الوصول مع طول الطلب وطول الإخراج ووضع البث وظروف الخدمة الحالية. بالنسبة للتطبيقات الموجهة للمستخدم، قم ببث الإجابات الأطول عند الاقتضاء وصمم واجهة المستخدم حول الإخراج التدريجي بدلاً من استجابة حظر واحدة.

استكشاف الأخطاء وإصلاحها

إذا فشل طلب MiMo-V2.5-Pro الأول، تحقق من هذه العناصر أولاً.

العرض السبب المحتمل الحل
خطأ في المصادقة مفتاح API مفقود أو غير صحيح أرسل Authorization: Bearer $NOVITA_API_KEY لاستدعاءات REST أو مرر api_key إلى عميل SDK.
النموذج غير موجود معرف نموذج غير صحيح استخدم xiaomimimo/mimo-v2.5-pro بالضبط كما هو مدرج في صفحة نموذج Novita AI.
خطأ في مسار الطلب عناوين URL أساسية مختلطة استخدم https://api.novita.ai/openai مع SDK OpenAI، أو https://api.novita.ai/openai/v1/chat/completions لـ REST.
خطأ في السياق أو الإخراج إجمالي الطلب بالإضافة إلى طلب الإخراج يتجاوز حدود النموذج حافظ على إجمالي طول الطلب في نطاق نافذة السياق الحالية، وحدد max_tokens أقل من الحد الأقصى المُوثق للإخراج.
استدعاء الأداة مفقود الطلب لا يتطلب أداة، أو مخطط الأداة غير واضح اجعل قرار الأداة صريحًا وحافظ على مخطط الوظيفة موجزًا.
فشل تحليل المخرجات المنظمة المخطط أو الطلب فضفاض جدًا استخدم response_format، واضبط strict عند الاقتضاء، واخفض درجة الحرارة، وتحقق من النتيجة.
تكلفة غير متوقعة طلب كبير، إخراج كبير، أو مستوى تسعير أعلى تحقق من التسعير الحالي، وسجل استخدام الرموز، وقلل السياق أو الإخراج الأقصى.

للحصول على تفاصيل نقطة النهاية، راجع مرجع API الدردشة من Novita AI. للحدود والتسعير الخاصين بالنموذج، راجع صفحة API وملعب Xiaomi MiMo-V2.5-Pro.

الخطوات التالية

ابدأ من صفحة نموذج Xiaomi MiMo-V2.5-Pro، واختبر طلبًا صغيرًا في الملعب (playground)، ثم انقل نفس الطلب إلى عميل API الخاص بك باستخدام معرف النموذج المُوثق. عندما تكون مستعدًا لمقارنة البدائل، استخدم مكتبة نماذج Novita AI وصفحة تسعير Novita AI للتحقق من التسعير الحالي ونوافذ السياق وحدود الإخراج ودعم الإمكانيات.

بالنسبة للتطبيقات الشبيهة بالوكيل، قيِّم MiMo-V2.5-Pro مقابل آثارك الخاصة: تعديلات المستودع، توجيه استدعاء الأداة، الاستخراج المنظم، تلخيص السياق الطويل، والتعافي من التعليمات الغامضة. اجعل التقييم مرتبطًا بطلبات تطبيقك الحقيقية بدلاً من ادعاءات المقاييس العامة.