Ultralytics YOLO27:

Giao diện LLM của Ultralytics#

LLM là một giao diện nhỏ để gọi các model ngôn ngữ và thị giác thông qua API tương thích với OpenAI. Giao diện này chuẩn bị dữ liệu đầu vào dạng văn bản hoặc hình ảnh, chuyển tiếp các tham số yêu cầu đến OpenAI Python SDK chính thức và trả về đối tượng phản hồi gốc của SDK. Nhờ đó, bạn có thể dễ dàng thêm khả năng suy luận ngôn ngữ hoặc thị giác bên cạnh pipeline YOLO mà không cần bọc các kiểu phản hồi riêng của từng nhà cung cấp.

API mặc định là responses; sử dụng api="chat.completions" cho các nhà cung cấp chỉ triển khai Chat Completions.

Cài đặt#

Cài đặt Ultralytics cùng dependency LLM tùy chọn:

pip install "ultralytics[llm]"

Đối với OpenAI, đặt API key trong môi trường:

export OPENAI_API_KEY="your-api-key"

Responses API#

Responses API là API mặc định. Truyền prompt và đọc output_text:

from ultralytics import LLM

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

Dữ liệu đầu vào đa phương thức#

Truyền path, URL HTTP, data URI, mảng NumPy hoặc ảnh PIL qua 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)

Các file cục bộ và đối tượng ảnh được mã hóa thành data URI JPEG. Mảng NumPy sử dụng thứ tự kênh BGR của OpenCV. Một chuỗi được truyền dưới dạng source, chẳng hạn như llm("bus.jpg"), được xử lý như văn bản; sử dụng tham số image để gửi hình ảnh.

Sử dụng prompt cho một chỉ dẫn dùng chung cho mọi yêu cầu:

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

Chat Completions#

Chọn Chat Completions khi endpoint yêu cầu, rồi đọc cấu trúc phản hồi gốc của nó:

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)

Giao diện tương tự cũng hỗ trợ dữ liệu đầu vào đa phương thức:

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

Truyền các đối tượng message gốc khi cần lịch sử hội thoại. Chúng được chuyển tiếp nguyên trạng.

Streaming và các lệnh gọi bất đồng bộ#

Các tham số yêu cầu của SDK được chuyển tiếp nguyên trạng, bao gồm 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)

Sử dụng async_call cho các yêu cầu đồng thời:

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())

Các nhà cung cấp tương thích với OpenAI#

LLM hoạt động với các nhà cung cấp cung cấp API Responses hoặc Chat Completions tương thích với OpenAI, bao gồm DeepSeek, Kimi, Z.AI GLMOpenRouter. Đặt base_url, tên model và API key của nhà cung cấp:

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)

Cấu hình tương tự cũng hoạt động với các server cục bộ tương thích. Tên model, khả năng hỗ trợ hình ảnh, tham số yêu cầu và các API được hỗ trợ khác nhau tùy theo nhà cung cấp, vì vậy hãy xem tài liệu được liên kết của nhà cung cấp đó.

Kết hợp YOLO và LLM#

Chạy YOLO trước, sau đó chỉ gọi LLM khi phát hiện thấy một người:

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)

Tài liệu tham chiếu API#

Đối sốMặc địnhMô tả
model"gpt-5.6-luna"Định danh model được gửi đến endpoint đã chọn
api"responses"Định dạng API: "responses" hoặc "chat.completions"
base_urlNoneEndpoint tương thích với OpenAI tùy chọn
api_keyNoneAPI key; nếu không, SDK sẽ đọc OPENAI_API_KEY
promptNoneChỉ dẫn được thêm vào trước các yêu cầu văn bản thuần túy và hình ảnh
**kwargsCác tham số yêu cầu SDK mặc định; tham số trên mỗi lần gọi sẽ ghi đè các giá trị tương ứng được truyền vào constructor

source chấp nhận văn bản, danh sách message gốc hoặc đối tượng hình ảnh. image chấp nhận URL hình ảnh, data URI, path, mảng NumPy hoặc ảnh PIL. Việc gọi model() với prompt đã được cấu hình sẽ chỉ gửi prompt.

LLM chỉ dùng cho inference và không được cung cấp thông qua CLI yolo. Nó không triển khai train, val, export, track hoặc benchmark.

FAQ#

  • LLM sử dụng Responses API theo mặc định. Đặt api="chat.completions" cho các endpoint Chat Completions.

  • Bạn có thể sử dụng OpenAI hoặc một nhà cung cấp khác có API tương thích, chẳng hạn như DeepSeek, Kimi, Z.AI GLM hoặc OpenRouter. Sử dụng tên model, base URL và API key của nhà cung cấp.

  • Truyền prompt làm tham số đầu tiên và một path cục bộ, URL, data URI, mảng NumPy hoặc ảnh PIL qua image. Khả năng hỗ trợ hình ảnh phụ thuộc vào model và nhà cung cấp đã chọn.

  • Không. LLM chỉ cung cấp inference đồng bộ và bất đồng bộ. Sử dụng YOLO của Ultralytics cho việc train, validation, prediction, export, tracking và benchmarking thị giác máy tính.

Những người đóng góp

Bình luận