Qwen2.5 VL 7B Instruct
Qwen2.5-VL-7B-Instruct نموذج لغة بصرية للصور والمستندات والفيديو. ينتج نصوصًا ونتائج منظَّمة، تشمل مربعات الأجسام ونقاطها وسماتها، ويضيف إلى إصدار 7B تحديد أزمنة الأحداث وقدرات الوكيل البصري.
- Ailoot Ultra · محادثة OpenAI
POST /v1/chat/completionsqwen2.5-vl-7b-instruct - Ailoot Ultra · رسائل Anthropic
POST /v1/messagesqwen2.5-vl-7b-instruct
عن النموذج
يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في 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البداية
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
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
Ailoot Ultra · رسائل Anthropic POST /v1/messages qwen2.5-vl-7b-instruct
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
{
"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
FAQ · Pro/Qwen/Qwen2.5-VL-7B-Instruct
- ما المدخلات والنتائج المتاحة؟
POST /v1/chat/completions·qwen2.5-vl-7b-instruct:text→textPOST /v1/messages·qwen2.5-vl-7b-instruct:text→json,sse- ما الحقول التي يستخدمها الطلب؟
POST /v1/chat/completions·qwen2.5-vl-7b-instruct:model,messages,stream,modalities,providerPOST /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