النماذج

Qwen2.5 VL 7B Instruct

Markdown · JSON

Qwen2.5 VL 7B Instruct

Qwen2.5-VL-7B-Instruct نموذج لغة بصرية للصور والمستندات والفيديو. ينتج نصوصًا ونتائج منظَّمة، تشمل مربعات الأجسام ونقاطها وسماتها، ويضيف إلى إصدار 7B تحديد أزمنة الأحداث وقدرات الوكيل البصري.

عن النموذج

يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.

Qwen2.5-VL-7B-Instruct هو إصدار 7B المضبوط لاتباع التعليمات من Qwen2.5-VL. يربط تعليمة نصية بصور أو فيديو ويعيد نتيجة نصية. تشمل تحسينات المطوّر الرئيسية التعرّف على الأجسام والتفاصيل البصرية، وتحليل النصوص والتخطيطات، ومهام الوكلاء البصريين، وفهم أحداث الفيديو الطويل، وتحديد مواقع الأجسام والاستخراج المنظَّم من المستندات.

فهم المحتوى البصري

تتجاوز العائلة تحديد الموضوع الرئيسي للصورة. تشمل مهامها الموثَّقة تحليل النصوص والمخططات والأيقونات والرسوم وترتيب العناصر داخل الصورة. عند تقديم مخطط، حدّد سلسلة البيانات أو العلاقة المراد فحصها، واحتفظ بالمحاور ومفتاح الرسم والوحدات. وفي الرسم التوضيحي، اسأل كيف تتصل المكوّنات المسمّاة وما الذي يكشفه ترتيبها المرئي عن العملية.

يمكن للمقارنة المفيدة تقديم تصميم أصلي وآخر معدَّل، مع تعريف كل منهما، وطلب التغييرات المرئية وفق قائمة متطلبات قصيرة. اطلب الملاحظة ومنطقة الصورة ذات الصلة معًا. يمنح ذلك الإجابة هدفًا محددًا بدل طلب وصف عام لصورتين غير مترابطتين.

سير عمل الوكيل البصري

يقدّم المطوّر Qwen2.5-VL بوصفه وكيلًا بصريًا يمكنه الاستدلال بشأن الشاشة وتوجيه الأدوات في مهام استخدام الحاسوب أو الهاتف. يقدّم النموذج تفسيرًا وعملية مقترحة؛ ويوفّر تطبيق الوكيل المحيط عناصر التحكم، وينفّذ العملية، ويعيد الحالة الجديدة. لذا تكون الإجابة النصية أو الإحداثيات المتوقَّعة جزءًا من سير العمل المتكامل هذا.

لسؤال عن واجهة، قدّم لقطة الشاشة والهدف الفعلي، ثم اسأل عن عنصر التحكم المرئي المناسب والخطوة التالية. اجعل المخرجات المطلوبة محددة: تسمية العنصر وموقعه والإجراء المقصود. وإذا نفّذ التطبيق ذلك الإجراء، توفّر لقطة الشاشة التالية المدخل البصري المحدَّث لاتخاذ قرار لاحق.

الفيديو الطويل وتحديد أزمنة الأحداث

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

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

تحديد مواقع الأجسام والمستندات المنظَّمة

يمكن لـ Qwen2.5-VL إعادة مربعات إحاطة أو نقاط، وتنظيم الإحداثيات والسمات بصيغة JSON. يستخدم الإصدار إحداثيات وفق مقياس أبعاد الصورة الفعلية بدل الإحداثيات المطبَّعة التقليدية. حدّد ما إذا كانت المهمة تحتاج مربع إحاطة، أو نقطة بعينها، أو وصفًا لجسم؛ واحتفظ بأبعاد الصورة وأي معلومات عن تغيير حجمها لازمة لتفسير الموقع المعاد.

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

يشدّد المطوّر بصورة مستقلة على الاستخراج المنظَّم من مسوح الفواتير والنماذج والجداول. عرّف الحقول، واحتفظ بالتسميات الأصلية، واطلب تمثيلًا صريحًا حين تتعذر قراءة قيمة. وفي الجداول، احتفظ بعناوين الأعمدة والوحدات مع الصفوف المطلوبة. يمكن لسجل عملي أن يتضمن معرّف المستند وتسمية الحقل والقيمة المستخرجة والموقع، لتصبح المخرجات قابلة للمقارنة اللاحقة أو الفحص البشري.

البنية وإعداد المدخلات

يجمع النموذج دقة الصور الديناميكية وأخذ عينات الفيديو الديناميكي مع معلومات موضعية دورانية متعددة الوسائط محدَّثة. يستخدم مشفّر الرؤية الانتباه النافذي وSwiGLU وRMSNorm. هذه تغييرات بنيوية تدعم المعالجة البصرية والزمنية؛ ولا تضيف إدخال الصوت أو توليد الصور إلى سير العمل الموثَّق ذي النتائج النصية.

تعرض البطاقة صورة واحدة، وصورًا متعددة، وتسلسل إطارات فيديو، وملف فيديو أو مرجعًا إليه، ومحادثات مجمَّعة. يوثّق معالج الصور نطاقًا افتراضيًا من 4 إلى 16,384 رمزًا بصريًا لكل صورة. تحافظ إعدادات الحدين الأدنى والأقصى للبكسلات على نسبة الأبعاد؛ وتُقرَّب الأبعاد الدقيقة المطلوبة إلى مضاعف للعدد 28. نطاق المثال من 256 إلى 1,280 رمزًا بصريًا توضيح قابل للتعديل، وليس حدًا صارمًا مستقلًا للصورة. احتفظ بالتفاصيل التي يحتاجها السؤال عند اختيار تغيير الحجم.

السياق والإعدادات المؤثرة في تحديد المواقع

يضبط إعداد الإصدار الحد الأقصى للمواضع على 128,000. ويصف قسم النص الطويل في بطاقة النموذج، بصورة مستقلة، خط أساس من 32,768 رمزًا ومثال توسعة باستخدام YaRN. ويحذّر صراحة من أن هذه التوسعة تؤثر كثيرًا في التحديد الزمني والمكاني ولا يوصي بها. يناقش الدليل أيضًا تغيير الحد الأقصى للمواضع للفيديو الطويل؛ وهذه ملاحظات إعداد، وليست حد إدخال واحدًا غير مشروط لكل مهمة.

حافظ على توافق إعداد الإصدار الدقيق والمعالجة البصرية المسبقة مع المهمة، خصوصًا حين تهم الإحداثيات أو أزمنة الأحداث. مثال التوليد ذي 128 رمزًا في البطاقة لا يحدد سعة قصوى مستقلة للمخرجات. ينتج Qwen2.5-VL-7B-Instruct نصوصًا وإحداثيات ونتائج منظَّمة؛ ويتطلب تنفيذ إجراء خارجي، أو إخراج صورة مرسومة أو فيديو أو إجابة منطوقة، مكوّنًا آخر في التطبيق.

مهمة عملية

مهمة عملية

مثال تقني باللغة الإنجليزية

Extract a transcribed invoice table

Extract line items from this invoice transcription: "Invoice N-33; item | quantity | unit price; Clip | 4 | 2.50; Folder | 2 | unreadable." Return each item with quantity, unit price and source invoice ID. Mark the unreadable price explicitly and do not infer it from a total. No image is supplied.

النتيجة المتوقعة

A two-row field table retaining N-33 and an explicit unreadable value for the folder unit price.

التحقق من النتيجة

Verify quantities are not swapped and the unreadable price is neither zero nor a guessed amount.
Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions qwen2.5-vl-7b-instruct

qwen2.5-vl-7b-instruct

Alibaba /qwen2.5-vl-7b-instruct

البداية

Qwen2.5-VL-7B-Instruct نموذج لغة بصرية للصور والمستندات والفيديو. ينتج نصوصًا ونتائج منظَّمة، تشمل مربعات الأجسام ونقاطها وسماتها، ويضيف إلى إصدار 7B تحديد أزمنة الأحداث وقدرات الوكيل البصري.

المدخلات المقبولة
النص
النتائج
النص

متاح في Ailoot · المدخلات والطرائق

Ailoot Ultra · محادثة OpenAI POST /v1/chat/completions
الإدخال
text
الإخراج
text
صيغة الإخراج
json أو SSE
الحقلالنوعالمتطلبالقيم والحدودالقيمة الافتراضية
الحقلmodelالنوعstringالمتطلبمطلوبالقيم والحدود
qwen2.5-vl-7b-instruct
القيمة الافتراضية—
الحقلmessagesالنوعmessage[]المتطلبمطلوبالقيم والحدود
الحد الأدنى للعناصر: ⁦1⁩
القيمة الافتراضية—
الحقلmessages[].roleالنوعstringالمتطلبمطلوبالقيم والحدود
أمثلة: system, user, assistant, tool, function
الشروط: تُمثَّل هذه الأدوار صراحةً بأنواع التوافق في الشيفرة المصدرية؛ وتظل مجموعة الأدوار الدقيقة خاصة بكل نموذج.
يعتمد على النموذج
القيمة الافتراضية—
الحقلmessages[].contentالنوعstring|content_part[]|nullالمتطلباختياريالقيم والحدودالقيمة الافتراضية—
الحقلmessages[].tool_callsالنوعtool_call[]المتطلباختياريالقيم والحدودالقيمة الافتراضية—
الحقلmessages[].tool_call_idالنوعstringالمتطلباختياريالقيم والحدود
ينطبق عندما: role=tool؛ استخدم المعرّف الفعلي المُرجع
القيمة الافتراضية—
الحقلmessages[].nameالنوعstringالمتطلباختياريالقيم والحدودالقيمة الافتراضية—
الحقلmessages[].reasoning_contentالنوعstringالمتطلباختياريالقيم والحدود
ينطبق عندما: أعِد تمرير الاستدلال الفعلي المُرجع حيث يستخدمه هذا النموذج
القيمة الافتراضية—
الحقلmessages[].reasoning_detailsالنوعobject|arrayالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلmax_tokensالنوعintegerالمتطلباختياريالقيم والحدود
الحد الأدنى: ⁦1⁩
يعتمد على النموذج
القيمة الافتراضية—
الحقلmax_completion_tokensالنوعintegerالمتطلباختياريالقيم والحدود
الحد الأدنى: ⁦1⁩
يعتمد على النموذج
القيمة الافتراضية—
الحقلstreamالنوعbooleanالمتطلباختياريالقيم والحدودالقيمة الافتراضيةfalse
الحقلstream_options.include_usageالنوعbooleanالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلtemperatureالنوعnumberالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلtop_pالنوعnumberالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلstopالنوعstring|string[]المتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلtoolsالنوعfunction_tool[]المتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلtools[].typeالنوعstringالمتطلباختياريالقيم والحدود
function
يعتمد على النموذج
القيمة الافتراضية—
الحقلtools[].function.nameالنوعstringالمتطلبمطلوبالقيم والحدود
ينطبق عندما: أداة دالة مقدّمة
القيمة الافتراضية—
الحقلtools[].function.descriptionالنوعstringالمتطلباختياريالقيم والحدودالقيمة الافتراضية—
الحقلtools[].function.parametersالنوعJSON_schemaالمتطلباختياريالقيم والحدودالقيمة الافتراضية—
الحقلtool_choiceالنوعstring|objectالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلparallel_tool_callsالنوعbooleanالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلresponse_formatالنوعobjectالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلreasoning_effortالنوعstringالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلreasoningالنوعobjectالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلservice_tierالنوعstringالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلinstructionsالنوعstringالمتطلباختياريالقيم والحدود
حقل للتوافق
القيمة الافتراضية—
الحقلfunctionsالنوعfunction[]المتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلfunction_callالنوعstring|objectالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلprompt_cache_optionsالنوعobjectالمتطلباختياريالقيم والحدود
يعتمد على النموذج
القيمة الافتراضية—
الحقلmodalitiesالنوعstring[]المتطلباختياريالقيم والحدود
text
القيمة الافتراضية—
الحقلproviderالنوعobjectالمتطلباختياريالقيم والحدود
الشروط: يُرفَض provider.options في مسار Ultra النصي هذا
القيمة الافتراضية—
الحقلcache_control.ttlالنوعstringالمتطلباختياريالقيم والحدود
الشروط: تُرفَض 1h في المواضع الفعلية للتخزين المؤقت للموجّه
القيمة الافتراضية—
تركيبات مواد الإدخال

النص · نص UTF8

messages[].content

معلمات الطريقة ودورة حياتها
المعلمةالمواصفات
المعلمةcontent_typeالمواصفاتapplication/json
المعلمةrequiredالمواصفاتmodel, messages
المعلمةmaterial_typesالمواصفاتtext
المعلمةmessagesالمواصفاتمصفوفة رسائل ببنية role/content
المعلمةfile_materialالمواصفاتمستند UTF-8 الفعلي مُدرج كنص حرفي؛ لا يُستنتَج معرّف ملف
المعلمةoptional_controlsالمواصفاتstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
المعلمةcontrol_scopeالمواصفاتخاص بالنموذج؛ أدوات الدوال التي يقدّمها المستخدم تختلف عن الأدوات المستضافة
المعلمةoutput_modalitiesالمواصفاتtext
المعلمةhosted_operationsالمواصفاتfalse
المعلمةmultimodal_input_bindingالمواصفاتnull

دورة الحياة: synchronous_or_streamed

أرسل معرّف النموذج الدقيق مع messages.

طول السياق ليس حدًا أقصى للإخراج.

يمكن لملف نصي تقديم نص حرفي؛ وتحتاج مدخلات الصور/الصوت/كائنات الملفات إلى ربط دقيق.

الباقات

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع
غير محدد عند اختيار الوضع السريع
الوضع المرن
غير محدد عند اختيار وضع flex
أقصى جهد للاستدلال
غير محدد عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

تعرفات Ailoot

الأسعار حسب الإعدادات

الإعداداتجدول التعرفةالرسوم
الإعداداتالتعرفات الأساسية للرموزجدول التعرفةالتعرفة الأساسيةالرسوم
الإدخال · رموز الإدخال $0.0001 / 1K من الرموز
الإخراج · رموز الإخراج $0.0001 / 1K من الرموز
الإدخال · قراءة ذاكرة التخزين المؤقت $0 / 1K من الرموز
الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0 / 1K من الرموز
الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →

أمثلة للطلبات

Ailoot Ultra · محادثة OpenAI

curlPython SDKالبث باستخدام Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen2.5-vl-7b-instruct", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='qwen2.5-vl-7b-instruct',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='qwen2.5-vl-7b-instruct',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

استلام النتائج وحفظها

Ailoot Ultra · محادثة OpenAI

json أو SSE

الاحتفاظ بكل النتائج المكتملة

احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.

احتفظ بكل اختيار ومحتواه واستدعاءات أدواته واستدلاله. في SSE، جمّع التحديثات بحسب فهرس الاختيار/الأداة، واحتفظ بسبب الإنهاء النهائي والاستخدام.

عند الحاجة إلى التحقق من الاستجابة الأصلية

احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.

حقول الاستجابة
الحقلالنوع
الحقلchoices[].indexالنوعinteger
الحقلchoices[].message.contentالنوعstring|null
الحقلchoices[].message.tool_callsالنوعtool_call[]
الحقلchoices[].message.reasoning_contentالنوعstring
الحقلchoices[].message.reasoning_detailsالنوعobject|array
الحقلchoices[].finish_reasonالنوعstring|null
الحقلusageالنوعobject
الأخطاء والخطوات التالية
الاستجابةالشرطالخطوة التالية
الاستجابة⁦400⁩ · invalid_request_errorالشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحةالخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد.

الأسماء البديلة

الأسماء البديلة للنموذج

Ailoot Ultra qwen2.5-vl-7b-instruct

الأسماء البديلة لمسارات الطرائق

استخدم مسارات الطرائق المعروضة أعلاه.

معرّفات النماذج ذات الصلة IDs

qwen2.5-vl-7b-instruct

Ailoot Ultra · رسائل Anthropic POST /v1/messages qwen2.5-vl-7b-instruct

qwen2.5-vl-7b-instruct

Alibaba /qwen2.5-vl-7b-instruct

البداية

Qwen2.5-VL-7B-Instruct نموذج لغة بصرية للصور والمستندات والفيديو. ينتج نصوصًا ونتائج منظَّمة، تشمل مربعات الأجسام ونقاطها وسماتها، ويضيف إلى إصدار 7B تحديد أزمنة الأحداث وقدرات الوكيل البصري.

المدخلات المقبولة
النص
النتائج
json · sse

متاح في Ailoot · المدخلات والطرائق

Ailoot Ultra · رسائل Anthropic POST /v1/messages
الإدخال
text
الإخراج
json, sse
صيغة الإخراج
JSON أو SSE
الحقلالنوعالمتطلبالقيم والحدودالقيمة الافتراضية
الحقلmodelالنوعstringالمتطلبمطلوبالقيم والحدود
qwen2.5-vl-7b-instruct
القيمة الافتراضية—
الحقلmessagesالنوعmessage[]المتطلبمطلوبالقيم والحدودالقيمة الافتراضية—
الحقلmessages[].roleالنوعstringالمتطلبمطلوبالقيم والحدود
user, assistant
القيمة الافتراضية—
الحقلmessages[].contentالنوعstringالمتطلبمطلوبالقيم والحدودالقيمة الافتراضية—
الحقلmax_tokensالنوعintegerالمتطلبمطلوبالقيم والحدودالقيمة الافتراضية—
الحقلstreamالنوعbooleanالمتطلباختياريالقيم والحدودالقيمة الافتراضيةfalse
تركيبات مواد الإدخال

النص · نص UTF-8

سلسلة نصية messages[].content

معلمات الطريقة ودورة حياتها
المعلمةالمواصفات
المعلمةcontent_typeالمواصفاتapplication/json
المعلمةrequiredالمواصفاتmodel, messages, max_tokens
المعلمةoptional_controlsالمواصفاتstream
المعلمةmaterial_typesالمواصفاتtext
المعلمةtext_file_materialالمواصفاتاقرأ مستند UTF-8 الفعلي وضع نصه في الإدخال المحدد أو السلسلة النصية لمحتوى الرسالة.

دورة الحياة: synchronous_or_streamed

الباقات

مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.

الوضع السريع
غير محدد عند اختيار الوضع السريع
الوضع المرن
غير محدد عند اختيار وضع flex
أقصى جهد للاستدلال
غير محدد عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال

تعرفات Ailoot

الأسعار حسب الإعدادات

الإعداداتجدول التعرفةالرسوم
الإعداداتالتعرفات الأساسية للرموزجدول التعرفةالتعرفة الأساسيةالرسوم
الإدخال · رموز الإدخال $0.0001 / 1K من الرموز
الإخراج · رموز الإخراج $0.0001 / 1K من الرموز
الإدخال · قراءة ذاكرة التخزين المؤقت $0 / 1K من الرموز
الإدخال · الكتابة إلى ذاكرة التخزين المؤقت $0 / 1K من الرموز
الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز

تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →

أمثلة للطلبات

Ailoot Ultra · رسائل Anthropic

جسم طلب JSON مكتمل بالحد الأدنىcurl · استخدم مستندك بترميز UTF-8Python · احفظ النتيجة كاملة
{
  "model": "qwen2.5-vl-7b-instruct",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen2.5-vl-7b-instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen2.5-vl-7b-instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

استلام النتائج وحفظها

Ailoot Ultra · رسائل Anthropic

JSON أو SSE

الاحتفاظ بكل النتائج المكتملة

احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.

احتفظ بكل كتل المحتوى وتوقيعات التفكير ومعرّفات استخدام الأدوات الفعلية. جمّع جميع تحديثات كتل SSE؛ فأول كتلة نصية ليست الإخراج الكامل.

عند الحاجة إلى التحقق من الاستجابة الأصلية

احتفظ بمعرّفات الطلبات/الاستجابات والترويسات. لا يُقدَّم URL عام لاسترجاع مهمة نصية.

حقول الاستجابة
الحقلالنوع
الحقلidالنوعstring
الحقلmodelالنوعstring
الحقلcontent[]النوعtext|thinking|tool_use|other content block
الحقلstop_reasonالنوعstring|null
الحقلusageالنوعobject
الأخطاء والخطوات التالية
الاستجابةالشرطالخطوة التالية
الاستجابة⁦400⁩ · invalid_request_errorالشرطحقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحةالخطوة التاليةصحّح الحقول المحددة قبل طلب إنشاء جديد.

الأسماء البديلة

الأسماء البديلة للنموذج

Ailoot Ultra qwen2.5-vl-7b-instruct

الأسماء البديلة لمسارات الطرائق

استخدم مسارات الطرائق المعروضة أعلاه.

معرّفات النماذج ذات الصلة IDs

qwen2.5-vl-7b-instruct

FAQ · Pro/Qwen/Qwen2.5-VL-7B-Instruct
ما المدخلات والنتائج المتاحة؟

POST /v1/chat/completions · qwen2.5-vl-7b-instruct: text → text

POST /v1/messages · qwen2.5-vl-7b-instruct: text → json, sse

ما الحقول التي يستخدمها الطلب؟

POST /v1/chat/completions · qwen2.5-vl-7b-instruct: model, messages, stream, modalities, provider

POST /v1/messages · qwen2.5-vl-7b-instruct: model, messages, max_tokens, stream

ما الحدود المطبقة؟

POST /v1/chat/completions · qwen2.5-vl-7b-instruct: messages.min_items: 1

المزيد من التفاصيل

اربط Ailoot بخدمة Claude Code أوOpenCode أوHermes أوتطبيقك.

الشركة ومحفظة مشاريعها

الشركة ومحفظة مشاريعها: ملايين العملاء؛ مبيعات بالمليارات شهريًا.

اشتر الرموز بخصم.

خصم اشتراك للعمل المنتظم. الرموز الترويجية حتى 50% على شراء الرموز.

الاشتراك
اختر خطة بخصم لطلباتك المنتظمة.
رمز خصم حتى 50%
أدخل الرمز عند الشراء. يعاد حساب السعر وفق العرض الساري.
المصروفات في السجل
يحفظ النموذج والرموز والمبلغ لكل طلب.

اختر اشتراكا · اعرض أسعار النماذج

اربط API بالمنتج الذي تبيعه.

SaaS والتطبيقات والبوتات وفق العرض واتفاقية ترخيص Ailoot. لإعادة البيع، اطلب ترخيص موزع.

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

اطلب ترخيص إعادة بيع · العرض واتفاقية الترخيص