Ultralytics LLM Arayüzü#
LLM, OpenAI uyumlu bir API üzerinden dil ve vizyon modellerini çağırmak için küçük bir arayüzdür. Metin veya görsel girdisini hazırlar, istek argümanlarını resmi OpenAI Python SDK'sine iletir ve SDK'nin yerel yanıt nesnesini döndürür. Bu, sağlayıcıya özgü yanıt türlerini sarmalamadan bir YOLO boru hattının yanında dil veya vizyon akıl yürütmesi eklemeyi kolaylaştırır.
Varsayılan API responses'dır; yalnızca Chat Completions uygulayan sağlayıcılar için api="chat.completions" kullan.
Kurulum#
Ultralytics'i isteğe bağlı LLM bağımlılığıyla kur:
pip install "ultralytics[llm]"OpenAI için API anahtarını ortamda ayarla:
export OPENAI_API_KEY="your-api-key"Yanıtlar API'si#
Responses API varsayılan seçenektir. Bir komut istemi ilet ve output_text değerini oku:
from ultralytics import LLM
llm = LLM("gpt-5.6-luna")
response = llm("What is YOLO?")
print(response.output_text)Çok Modlu Girdi#
image aracılığıyla bir yol, HTTP URL, veri URI'si, NumPy dizisi veya PIL görseli ilet:
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)Yerel dosyalar ve görsel nesneleri JPEG veri URI'leri olarak kodlanır. NumPy dizileri, OpenCV'nin BGR kanal sırasını kullanır. llm("bus.jpg") gibi source olarak iletilen bir dize metin olarak kabul edilir; bir görsel göndermek için image argümanını kullan.
Her istek tarafından paylaşılan bir yönerge için prompt kullan:
llm = LLM("gpt-5.6-luna", prompt="Answer in one sentence.")
response = llm("Describe this image.", image="bus.jpg")Sohbet Tamamlamaları#
Uç nokta tarafından gerektirildiğinde Chat Completions seç ve yerel yanıt şeklini oku:
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)Aynı arayüz çok modlu girdiyi kabul eder:
response = llm("Describe this image.", image="bus.jpg")
print(response.choices[0].message.content)Konuşma geçmişine ihtiyaç duyduğunda yerel mesaj nesneleri ilet. Bunlar değiştirilmeden iletilir.
Akış ve Asenkron Çağrılar#
stream=True dahil olmak üzere SDK istek argümanları olduğu gibi geçer:
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)Eşzamanlı istekler için async_call kullan:
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 Uyumlu Sağlayıcılar#
LLM, DeepSeek, Kimi, Z.AI GLM ve OpenRouter dahil olmak üzere OpenAI uyumlu bir Responses veya Chat Completions API'si sunan sağlayıcılarla çalışır. Sağlayıcının base_url, model adını ve API anahtarını ayarla:
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)Aynı yapılandırma uyumlu yerel sunucularla da çalışır. Model adları, görsel desteği, istek argümanları ve desteklenen API'ler sağlayıcıya göre değişir, bu nedenle bağlantılı belgelerini kontrol et.
YOLO ile bir LLM'yi Birleştir#
Önce YOLO'yu çalıştır, ardından yalnızca bir kişi algılandığında LLM'yi çağır:
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)API Referansı#
| Argüman | Varsayılan | Açıklama |
|---|---|---|
model | "gpt-5.6-luna" | Seçilen uç noktaya gönderilen model tanımlayıcısı |
api | "responses" | API biçimi: "responses" veya "chat.completions" |
base_url | None | İsteğe bağlı OpenAI uyumlu uç nokta |
api_key | None | API anahtarı; aksi takdirde SDK OPENAI_API_KEY değerini okur |
prompt | None | Düz metin ve görsel isteklerinin başına eklenen yönerge |
**kwargs | Varsayılan SDK istek argümanları; çağrı başına argümanlar eşleşen oluşturucu değerlerini geçersiz kılar |
source, metin, yerel bir mesaj listesi veya bir görsel nesnesi kabul eder. image, bir görsel URL'si, veri URI'si, yol, NumPy dizisi veya PIL görseli kabul eder. Yapılandırılmış bir prompt ile model() çağrısı, komut istemini tek başına gönderir.
LLM yalnızca çıkarım amaçlıdır ve yolo CLI aracılığıyla sunulmaz. train, val, export, track veya benchmark uygulamaz.
SSS#
LLMvarsayılan olarak Responses API'sini kullanır. Chat Completions uç noktaları içinapi="chat.completions"değerini ayarla.OpenAI'yi veya DeepSeek, Kimi, Z.AI GLM ya da OpenRouter gibi uyumlu bir API'ye sahip başka bir sağlayıcıyı kullanabilirsin. Sağlayıcının model adını, taban URL'sini ve API anahtarını kullan.
Komut istemini ilk argüman olarak ve yerel bir yol, URL, veri URI'si, NumPy dizisi veya PIL görselini
imagearacılığıyla ilet. Görsel desteği seçilen modele ve sağlayıcıya bağlıdır.Hayır.
LLMyalnızca senkron ve asenkron çıkarım sağlar. Bilgisayarlı görü eğitimi, doğrulaması, tahmini, dışa aktarımı, takibi ve kıyaslaması için UltralyticsYOLOkullan.