واجهة النماذج اللغوية الكبيرة من Ultralytics#
LLM هي واجهة برمجية صغيرة لاستدعاء نماذج اللغة والرؤية من خلال واجهة برمجة تطبيقات متوافقة مع OpenAI. تقوم بإعداد مدخلات النص أو الصور، وتمرير وسائط الطلب إلى حزمة البرمجة الرسمية لـ Python الخاصة بـ OpenAI، وإرجاع كائن الاستجابة الأصلي للحزمة البرمجية. هذا يسهل إضافة الاستدلال اللغوي أو البصري بجوار خط أنابيب YOLO دون الحاجة إلى تغليف أنواع الاستجابة الخاصة بمزود معين.
واجهة برمجة التطبيقات الافتراضية هي responses؛ استخدم api="chat.completions" للمزودين الذين يطبقون إكمال الدردشة فقط.
التثبيت#
قم بتثبيت Ultralytics مع اعتمادية النماذج اللغوية الكبيرة الاختيارية:
pip install "ultralytics[llm]"بالنسبة لـ OpenAI، قم بتعيين مفتاح واجهة برمجة التطبيقات في بيئة العمل:
export OPENAI_API_KEY="your-api-key"واجهة برمجة تطبيقات الاستجابات#
واجهة برمجة تطبيقات الاستجابات هي الواجهة الافتراضية. قم بتمرير موجه وقراءة output_text:
from ultralytics import LLM
llm = LLM("gpt-5.6-luna")
response = llm("What is YOLO?")
print(response.output_text)مدخلات متعددة الوسائط#
قم بتمرير مسار، أو عنوان URL لـ HTTP، أو عنوان URI للبيانات، أو مصفوفة NumPy، أو صورة PIL من خلال image:
from ultralytics import LLM
llm = LLM("gpt-5.6-luna")
response = llm("What is happening in this image?", image="https://ultralytics.com/images/bus.jpg")
print(response.output_text)يتم ترميز الملفات المحلية وكائنات الصور كعناوين URI لبيانات JPEG. تستخدم مصفوفات NumPy ترتيب قنوات BGR الخاص بـ OpenCV. يتم التعامل مع النص الممرر كـ source، مثل llm("bus.jpg")، كنص؛ استخدم وسيط image لإرسال صورة.
استخدم prompt لتعليمات مشتركة بين كل طلب:
llm = LLM("gpt-5.6-luna", prompt="Answer in one sentence.")
response = llm("Describe this image.", image="bus.jpg")إكمال الدردشة#
حدد إكمال الدردشة عندما تتطلب نقطة النهاية ذلك، وقرء شكل استجابتها الأصلية:
from ultralytics import LLM
llm = LLM("gpt-5.6-luna", api="chat.completions")
response = llm("What is non-maximum suppression?")
print(response.choices[0].message.content)تقبل نفس الواجهة المدخلات متعددة الوسائط:
response = llm("Describe this image.", image="bus.jpg")
print(response.choices[0].message.content)قم بتمرير كائنات الرسائل الأصلية عندما تحتاج إلى سجل المحادثة. يتم إعادة توجيهها دون تغيير.
البث والاستدعاءات غير المتزامنة#
تتمرر وسائط طلب حزمة البرمجة دون تغيير، بما في ذلك stream=True:
llm = LLM("gpt-5.6-luna")
for event in llm("Explain object detection.", stream=True):
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)استخدم async_call للطلبات المتزامنة:
import asyncio
from ultralytics import LLM
llm = LLM("gpt-5.6-luna")
async def main():
response = await llm.async_call("What is YOLO?")
print(response.output_text)
asyncio.run(main())المزودون المتوافقون مع OpenAI#
LLM تعمل مع المزودين الذين يوفرون واجهة برمجة تطبيقات استجابات أو إكمال دردشة متوافقة مع OpenAI، بما في ذلك DeepSeek، وKimi، وZ.AI GLM، وOpenRouter. قم بتعيين base_url الخاص بالمزود، واسم النموذج، ومفتاح واجهة برمجة التطبيقات:
from ultralytics import LLM
llm = LLM(
"provider-model",
api="chat.completions",
base_url="https://provider.example/v1",
api_key="your-api-key",
)
response = llm("What tasks does YOLO support?")
print(response.choices[0].message.content)يعمل نفس التكوين مع الخوادم المحلية المتوافقة. تختلف أسماء النماذج، ودعم الصور، ووسائط الطلب، واجهات برمجة التطبيقات المدعومة حسب المزود، لذا تحقق من وثائقه المرتبطة.
الجمع بين YOLO ونموذج لغوي كبير#
قم بتشغيل YOLO أولاً، ثم استدعِ النموذج اللغوي الكبير فقط عند اكتشاف شخص:
from ultralytics import LLM, YOLO
yolo = YOLO("yolo26n.pt")
llm = LLM("gpt-5.6-luna")
image = "https://ultralytics.com/images/bus.jpg"
result = yolo(image)[0]
# Call the LLM only when YOLO detects a person.
if any(result.names[int(cls)] == "person" for cls in result.boxes.cls):
response = llm("Describe the scene.", image=image)
print(response.output_text)مرجع واجهة برمجة التطبيقات#
| الوسيط | الافتراضي | الوصف |
|---|---|---|
model | "gpt-5.6-luna" | معرف النموذج المرسل إلى نقطة النهاية المحددة |
api | "responses" | تنسيق واجهة برمجة التطبيقات: "responses" أو "chat.completions" |
base_url | None | نقطة نهاية اختيارية متوافقة مع OpenAI |
api_key | None | مفتاح واجهة برمجة التطبيقات؛ وإلا فإن حزمة البرمجة تقرأ OPENAI_API_KEY |
prompt | None | التعليمات المضافة قبل طلبات النص العادي والصور |
**kwargs | وسائط طلب حزمة البرمجة الافتراضية؛ تتجاوز وسائط كل استدعاء قيم المُنشئ المطابقة |
source تقبل نصًا، أو قائمة رسائل أصلية، أو كائن صورة. image تقبل عنوان URL لصورة، أو عنوان URI للبيانات، أو مسارًا، أو مصفوفة NumPy، أو صورة PIL. استدعاء model() مع prompt مهيأ يرسل الموجه بمفرده.
LLM مخصصة للاستدلال فقط ولا يتم توفيرها عبر yolo CLI. وهي لا تطبق train، أو val، أو export، أو track، أو benchmark.
الأسئلة الشائعة#
LLMتستخدم واجهة برمجة تطبيقات الاستجابات افتراضيًا. قم بتعيينapi="chat.completions"لنقاط نهاية إكمال الدردشة.يمكنك استخدام OpenAI أو مزود آخر واجهة برمجة تطبيقات متوافقة، مثل DeepSeek، أو Kimi، أو Z.AI GLM، أو OpenRouter. استخدم اسم نموذج المزود، وعنوان URL الأساسي، ومفتاح واجهة برمجة التطبيقات.
قم بتمرير الموجه كوسيط أول ومسار محلي، أو عنوان URL، أو عنوان URI للبيانات، أو مصفوفة NumPy، أو صورة PIL من خلال
image. يعتمد دعم الصور على النموذج والمزود المحددين.لا.
LLMتوفر الاستدلال المتزامن وغير المتزامن فقط. استخدم UltralyticsYOLOلتدريب الرؤية الحاسوبية، والتحقق، والتنبؤ، والتصدير، والتتبع، والمقارنة المعيارية.