Ultralytics YOLO27:
Get Started

Ultralytics-LLM-Schnittstelle#

LLM ist eine schlanke Schnittstelle, mit der du Sprach- und Bildverarbeitungsmodelle über eine OpenAI-kompatible API aufrufst. Sie bereitet Text- oder Bildeingaben auf, leitet Anfrageargumente an das offizielle OpenAI Python SDK weiter und gibt das native Antwortobjekt des SDK zurück. So kannst du Sprach- oder Bildverarbeitung mit Schlussfolgerungsfähigkeit einfach neben einer YOLO-Pipeline einsetzen, ohne anbieterspezifische Antworttypen umhüllen 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]"

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

export OPENAI_API_KEY="your-api-key"

Responses API#

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

from ultralytics import LLM

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

Multimodale Eingabe#

Übergib über image einen Pfad, eine HTTP-URL, eine Daten-URI, ein NumPy-Array oder ein PIL-Bild:

from ultralytics import LLM

llm = LLM("gpt-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. Eine als source übergebene Zeichenfolge, etwa llm("bus.jpg"), wird als Text behandelt; verwende das Argument image, um ein Bild zu senden.

Verwende prompt für eine Anweisung, die für jede Anfrage gilt:

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

Chat Completions#

Wähle Chat Completions, wenn der Endpunkt dies erfordert, und lies das native Antwortformat aus:

from ultralytics import LLM

llm = LLM("gpt-6-luna", api="chat.completions")
response = llm("What is non-maximum suppression?")
print(response.choices[0].message.content)

Dieselbe Schnittstelle akzeptiert auch multimodale Eingaben:

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

Übergib native Nachrichtenobjekte, wenn du den Gesprächsverlauf benötigst. Sie werden unverändert weitergeleitet.

Streaming und asynchrone Aufrufe#

Anfrageargumente des SDK werden unverändert weitergereicht, einschließlich stream=True:

llm = LLM("gpt-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-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 API oder Chat Completions API bereitstellen, darunter DeepSeek, Kimi, Z.AI GLM und OpenRouter. Lege base_url des Anbieters, den Modellnamen und den API-Schlüssel fest:

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 unterscheiden sich je nach Anbieter. Sieh daher in der verlinkten Dokumentation nach.

YOLO mit einem LLM kombinieren#

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

from ultralytics import LLM, YOLO

yolo = YOLO("yolo26n.pt")
llm = LLM("gpt-6-luna")
image = "https://ultralytics.com/images/bus.jpg"

result = yolo(image)[0]
# Rufe das LLM nur auf, wenn YOLO eine Person erkennt.
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-6-luna"Modellkennung, die an den ausgewählten Endpunkt gesendet wird
api"responses"API-Format: "responses" oder "chat.completions"
base_urlNoneOptionaler OpenAI-kompatibler Endpunkt
api_keyNoneAPI-Schlüssel; andernfalls liest das SDK OPENAI_API_KEY aus
promptNoneAnweisung, die einfache Text- und Bildanfragen vorangestellt wird
**kwargsStandardmäßige Anfrageargumente des SDK; Argumente pro Aufruf überschreiben übereinstimmende Konstruktorwerte

source akzeptiert Text, eine native Nachrichtenliste oder ein Bildobjekt. image akzeptiert eine Bild-URL, Daten-URI, einen Pfad, ein NumPy-Array oder ein PIL-Bild. Wenn du llm() ohne Eingabe und mit konfiguriertem prompt aufrufst, wird nur der Prompt gesendet.

LLM dient ausschließlich der Inferenz und ist nicht über die yolo-CLI verfügbar. Es implementiert weder train noch val, export, track oder benchmark.

Häufig gestellte Fragen#

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

  • Du kannst OpenAI oder einen anderen Anbieter mit einer kompatiblen API verwenden, 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 über image einen lokalen Pfad, eine URL, eine Daten-URI, ein NumPy-Array oder ein PIL-Bild. Die Bildunterstützung hängt vom ausgewählten Modell und Anbieter ab.

  • Nein. LLM bietet nur synchrone und asynchrone Inferenz. Verwende Ultralytics YOLO für das Training, die Validierung, Vorhersagen, den Export, das Tracking und das Benchmarking von Computer-Vision-Modellen.

Kommentare