Ultralytics LLM インターフェイス#
LLM は、OpenAI 互換の API を通じて言語モデルやビジョンモデルを呼び出すためのシンプルなインターフェイスです。テキストや画像の入力を準備し、リクエスト引数を公式の OpenAI Python SDK に転送し、SDK のネイティブなレスポンスオブジェクトを返します。これにより、プロバイダー固有のレスポンス型をラップすることなく、YOLO パイプラインの近くに言語やビジョンの推論を簡単に追加できます。
デフォルトの API は responses です。Chat Completions のみを実装しているプロバイダーには api="chat.completions" を使用してください。
インストール#
LLM のオプション依存関係を指定して Ultralytics をインストールします。
pip install "ultralytics[llm]"OpenAI の場合、環境変数に API キーを設定します。
export OPENAI_API_KEY="your-api-key"Responses API#
Responses API がデフォルトです。プロンプトを渡して output_text を読み取ります。
from ultralytics import LLM
llm = LLM("gpt-5.6-luna")
response = llm("What is YOLO?")
print(response.output_text)マルチモーダル入力#
パス、HTTP URL、データ 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)ローカルファイルと画像オブジェクトは、JPEG データ URI としてエンコードされます。NumPy 配列は OpenCV の BGR チャンネル順を使用します。llm("bus.jpg") のように source として渡された文字列はテキストとして扱われます。画像を送信するには image 引数を使用してください。
すべてのリクエストで共有される指示には prompt を使用します。
llm = LLM("gpt-5.6-luna", prompt="Answer in one sentence.")
response = llm("Describe this image.", image="bus.jpg")Chat Completions#
エンドポイントで必要な場合は Chat Completions を選択し、そのネイティブなレスポンス形状を読み取ります。
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 を含め、SDK のリクエスト引数は変更されずに渡されます。
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 は、DeepSeek、Kimi、Z.AI GLM、OpenRouter をはじめとする、OpenAI 互換の Responses または Chat Completions API を公開しているプロバイダーと連携します。プロバイダーの base_url、モデル名、および API キーを設定します。
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)同じ設定が互換性のあるローカルサーバーでも機能します。モデル名、画像サポート、リクエスト引数、およびサポートされている API はプロバイダーによって異なるため、リンクされているドキュメントを確認してください。
YOLO と LLM の組み合わせ#
最初に YOLOを実行し、人物が検出された場合にのみ LLMを呼び出します。
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 リファレンス#
| 引数 | デフォルト | 説明 |
|---|---|---|
model | "gpt-5.6-luna" | 選択したエンドポイントに送信されるモデル識別子 |
api | "responses" | API 形式: "responses" または "chat.completions" |
base_url | None | オプションの OpenAI 互換エンドポイント |
api_key | None | API キー。指定しない場合、SDK は OPENAI_API_KEY を読み取ります。 |
prompt | None | プレーンテキストおよび画像のリクエストの先頭に追加される指示 |
**kwargs | デフォルトの SDK リクエスト引数。呼び出しごとの引数は、一致するコンストラクター値を上書きします。 |
source はテキスト、ネイティブメッセージリスト、または画像オブジェクトを受け付けます。image は画像 URL、データ URI、パス、NumPy 配列、または PIL 画像を受け付けます。設定された prompt を指定して model() を呼び出すと、プロンプトのみが送信されます。
LLM は推論専用であり、yolo CLI を通じて公開されません。train、val、export、track、または benchmark は実装されていません。
よくある質問 (FAQ)#
LLMはデフォルトで Responses API を使用します。Chat Completions エンドポイントを使用するにはapi="chat.completions"を設定してください。OpenAI や、DeepSeek、Kimi、Z.AI GLM、OpenRouter などの互換 API を備えた他のプロバイダーを使用できます。プロバイダーのモデル名、ベース URL、および API キーを使用してください。
最初の引数としてプロンプトを渡し、
imageを経由してローカルパス、URL、データ URI、NumPy 配列、または PIL 画像を渡します。画像サポートは、選択したモデルとプロバイダーによって異なります。いいえ。
LLMは同期および非同期の推論のみを提供します。コンピュータビジョンのトレーニング、検証、予測、エクスポート、トラッキング、およびベンチマークには、UltralyticsYOLOを使用してください。