YOLO Vision 2026:

Ultralytics LLM Interface#

LLM ist eine kleine Schnittstelle zum Aufrufen von Sprach- und Visionsmodellen über eine OpenAI-kompatible API. Sie bereitet Text- oder Buildeingaben vor, leitet Anfrageargumente an das offizielle OpenAI Python SDK weiter und gibt das native Antwortobjekt des SDKs zurück. Dies erleichtert das Hinzufügen von Sprach- oder Visions-Logik neben einer YOLO-Pipeline, ohne anbieterspezifische Antworttypen wrappen zu müssen.

Die Standard-API ist responses; verwende api="chat.completions" für Anbieter, die nur Chat Completions implementieren.

Installation#

Installiere Ultralytics mit der optionalen LLM-Abhängigkeit:

pip install "ultralytics[llm]"

Setze für OpenAI den API-Schlüssel in der Umgebung:

export OPENAI_API_KEY="your-api-key"

Responses API#

Die Responses API ist der Standard. Übergib einen Prompt und lies output_text aus:

from ultralytics import LLM

llm = LLM("gpt-5.6-luna")
response = llm("What is YOLO?")
print(response.output_text)

Multimodale Eingabe#

Übergib einen Pfad, eine HTTP-URL, eine Daten-URI, ein NumPy-Array oder ein PIL-Bild über 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)

Lokale Dateien und Bildobjekte werden als JPEG-Daten-URIs kodiert. NumPy-Arrays verwenden die BGR-Kanalreihenfolge von OpenCV. Ein als source übergebener String, wie etwa llm("bus.jpg"), wird als Text behandelt; verwende das Argument image, um ein Bild zu senden.

Verwende prompt für eine Anweisung, die von jeder Anfrage gemeinsam genutzt wird:

llm = LLM("gpt-5.6-luna", prompt="Answer in one sentence.")
response = llm("Describe this image.", image="bus.jpg")

Chat Completions#

Wähle Chat Completions aus, wenn dies vom Endpunkt gefordert wird, und lies dessen native Antwortform ab:

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)

Dieselbe Schnittstelle akzeptiert multimodale Eingaben:

response = llm("Describe this image.", image="bus.jpg")
print(response.choices[0].message.content)

Übergib native Nachrichtenobjekte, wenn du einen Konversationsverlauf benötigst. Sie werden unverändert weitergeleitet.

Streaming und Asynchrone Aufrufe#

SDK-Anfrageargumente werden unverändert durchgereicht, einschließlich 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)

Verwende async_call für gleichzeitige Anfragen:

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-kompatible Anbieter#

LLM funktioniert mit Anbietern, die eine OpenAI-kompatible Responses- oder Chat-Completions-API bereitstellen, einschließlich DeepSeek, Kimi, Z.AI GLM und OpenRouter. Setze die base_url des Anbieters, den Modellnamen und den API-Schlüssel:

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)

Dieselbe Konfiguration funktioniert mit kompatiblen lokalen Servern. Modellnamen, Bildunterstützung, Anfrageargumente und unterstützte APIs variieren je nach Anbieter; überprüfe daher dessen verlinkte Dokumentation.

Kombiniere YOLO und ein LLM#

Führe zuerst YOLO aus und rufe dann das LLM nur auf, wenn eine Person erkannt wird:

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-Referenz#

ArgumentStandardBeschreibung
model"gpt-5.6-luna"An den ausgewählten Endpunkt gesendeter Modellbezeichner
api"responses"API-Format: "responses" oder "chat.completions"
base_urlNoneOptionaler OpenAI-kompatibler Endpunkt
api_keyNoneAPI-Schlüssel; andernfalls liest das SDK OPENAI_API_KEY
promptNoneAnweisung, die Reintext- und Bildanfragen vorangestellt wird
**kwargsStandard-SDK-Anfrageargumente; aufrufspezifische Argumente überschreiben übereinstimmende Konstruktorwerte

source akzeptiert Text, eine native Nachrichtenliste oder ein Bildobjekt. image akzeptiert eine Bild-URL, eine Daten-URI, einen Pfad, ein NumPy-Array oder ein PIL-Bild. Der Aufruf von model() mit einer konfigurierten prompt sendet den Prompt alleine.

LLM dient nur der Inferenz und wird nicht über die yolo CLI bereitgestellt. Es implementiert weder train, val, export, track noch benchmark.

FAQ#

  • LLM verwendet standardmäßig die Responses API. Setze api="chat.completions" für Chat-Completions-Endpunkte.

  • Du kannst OpenAI oder einen anderen Anbieter mit einer kompatiblen API verwenden, wie zum Beispiel DeepSeek, Kimi, Z.AI GLM oder OpenRouter. Verwende den Modellnamen, die Basis-URL und den API-Schlüssel des Anbieters.

  • Übergib den Prompt als erstes Argument und einen lokalen Pfad, eine URL, eine Daten-URI, ein NumPy-Array oder ein PIL-Bild über image. Die Bildunterstützung hängt vom ausgewählten Modell und Anbieter ab.

  • Nein. LLM bietet ausschließlich synchrone und asynchrone Inferenz. Verwende Ultralytics YOLO für das Training, die Validierung, Vorhersage, den Export, das Tracking und Benchmarking im Bereich Computer Vision.

Mitwirkende

Kommentare