Dotazování na modely zpracování vizuálních dat

V tomto článku se dozvíte, jak psát požadavky na dotazy na základní modely optimalizované pro úlohy zpracování obrazu a obsluhovat unity AI Gateway.

Tip

Genie Code (režim agenta) to může udělat za vás. Vyzkoušejte tento příklad výzvy:

Query the databricks-claude-sonnet-4-5 model using the OpenAI client, sending a base64-encoded image from a URL alongside a text question, and print the response.

Obsluha modelů poskytuje jednotné rozhraní API pro pochopení a analýzu obrázků pomocí různých základních modelů a odemykání výkonných multimodálních funkcí. Tato funkce je dostupná prostřednictvím výběru modelů hostovaných službou Databricks jako součást rozhraní API pro základní modely a obsluhou koncových bodů, které obsluhují externí modely.

Požadavky

Příklady dotazů

Note

Následující příklady jsou založené na službě Unity AI Gateway a modelových službách. Pokud místo služeb modelu používáte koncové body obsluhující modely, nahraďte název služby modelu názvem koncového bodu. Viz Základní modely hostované Databricks dostupné v rozhraních API Foundation Model, kde najdete seznam dostupných základních modelů a názvů služeb modelů a koncových bodů.

Klient OpenAI

Pokud chcete použít klienta OpenAI, zadejte jako model vstup název služby modelu.


from openai import OpenAI
import base64
import requests

# Get the workspace API URL and token from the notebook context
API_ROOT = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiUrl().get()
API_TOKEN = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()

client = OpenAI(
    api_key=API_TOKEN,
    base_url=f"{API_ROOT}/ai-gateway/mlflow/v1",
)

# Download and encode image
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
resp = requests.get(image_url)
resp.raise_for_status()
image_data = base64.b64encode(resp.content).decode("utf-8")

# OpenAI request
completion = client.chat.completions.create(
    model="system.ai.claude-sonnet-4-5",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "what's in this image?"},
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/jpeg;base64,{image_data}"},
                },
            ],
        }
    ],
)

print(completion.choices[0].message.content)

Rozhraní API pro dokončování chatu podporuje více vstupů obrázků, což modelu umožňuje analyzovat každý obrázek a syntetizovat informace ze všech vstupů a generovat odpověď na výzvu.


from openai import OpenAI
import base64
import requests

# Get the workspace API URL and token from the notebook context
API_ROOT = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiUrl().get()
API_TOKEN = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()

client = OpenAI(
    api_key=API_TOKEN,
    base_url=f"{API_ROOT}/ai-gateway/mlflow/v1",
)

# Download and encode multiple images
image1_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
resp1 = requests.get(image1_url)
resp1.raise_for_status()
image1_data = base64.b64encode(resp1.content).decode("utf-8")

image2_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
resp2 = requests.get(image2_url)
resp2.raise_for_status()
image2_data = base64.b64encode(resp2.content).decode("utf-8")

# OpenAI request
completion = client.chat.completions.create(
    model="system.ai.claude-sonnet-4-5",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What are in these images? Is there any difference between them?"},
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/jpeg;base64,{image1_data}"},
                },
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/jpeg;base64,{image2_data}"},
                },
            ],
        }
    ],
)

print(completion.choices[0].message.content)

SQL

Důležité

Následující příklad používá integrovanou funkci SQL ai_query. Tato funkce je ve verzi Public Preview a definice se může změnit.

Následující dotaz na základní model podporovaný rozhraními API Databricks Foundation Model pro multimodální vstup pomocí AI funkce ai_query().


> SELECT *, ai_query(
  'system.ai.llama-4-maverick',
 'what is this image about?', files => content)
as output FROM READ_FILES("/Volumes/main/multimodal/unstructured/image.jpeg");

Podporované modely

Viz typy základních modelů pro podporované modely zpracování obrazu.

Požadavky na vstupní obrázek

Modely Podporované formáty Více obrázků na žádost Omezení velikosti obrázku Doporučení pro změnu velikosti obrázků Důležité informace o kvalitě obrázků
databricks-gpt-5
  • JPEG
  • PNG
  • WebP
  • GIF (neanimované GIF)
Až 500 jednotlivých obrazových vstupů na jednu žádost Omezení velikosti souboru: Celková velikost datové části až 10 MB na požadavek N/A
  • Žádné vodoznaky ani loga
  • Dostatečně jasné, aby člověk rozuměl
databricks-gpt-5-mini
  • JPEG
  • PNG
  • WebP
  • GIF (neanimované GIF)
Až 500 jednotlivých obrazových vstupů na jednu žádost Omezení velikosti souboru: Celková velikost datové části až 10 MB na požadavek N/A
  • Žádné vodoznaky ani loga
  • Dostatečně jasné, aby člověk rozuměl
databricks-gpt-5-nano
  • JPEG
  • PNG
  • WebP
  • GIF (neanimované GIF)
Až 500 jednotlivých obrazových vstupů na jednu žádost Omezení velikosti souboru: Celková velikost datové části až 10 MB na požadavek N/A
  • Žádné vodoznaky ani loga
  • Dostatečně jasné, aby člověk rozuměl
databricks-gemma-3-12b
  • JPEG
  • PNG
  • WebP
  • GIF
Až 5 imagí pro požadavky rozhraní API
  • Všechny poskytnuté obrázky se zpracovávají v požadavku.
Limit velikosti souboru: celkem 10 MB ve všech obrázcích na každou žádost rozhraní API N/A N/A
databricks-llama-4-maverick
  • JPEG
  • PNG
  • WebP
  • GIF
Až 5 imagí pro požadavky rozhraní API
  • Všechny poskytnuté obrázky se zpracovávají v požadavku.
Limit velikosti souboru: celkem 10 MB ve všech obrázcích na každou žádost rozhraní API N/A N/A
  • databricks-claude-sonnet-5
  • databricks-claude-sonnet-4-6
  • databricks-claude-sonnet-4-5
  • databricks-claude-haiku-4-5
  • databricks-claude-opus-4-8
  • databricks-claude-opus-4-7
  • databricks-claude-opus-4-6
  • databricks-claude-opus-4-5
  • databricks-claude-opus-4-1
  • databricks-claude-sonnet-4
  • JPEG
  • PNG
  • GIF
  • WebP
  • Až 20 obrázků pro Claude.ai
  • Až 100 imagí pro požadavky rozhraní API
  • Všechny poskytnuté obrázky se zpracovávají v rámci požadavku, což je užitečné při porovnávání nebo pro jejich odlišení.
  • Obrázky větší než 8000x8000 px jsou odmítnuty.
  • Pokud je v jednom požadavku rozhraní API odesláno více než 20 obrázků, maximální povolená velikost na obrázek je 2000 × 2000 pixelů.
Pokud chcete dosáhnout optimálního výkonu, změňte velikost obrázků před nahráním, pokud jsou příliš velké.
  • Pokud dlouhá hrana obrázku přesahuje 1568 pixelů nebo jeho velikost přesáhne ~1 600 tokenů, je automaticky zmenšen a zachovává poměr stran.
  • Velmi malé obrázky (pod 200 pixelů na libovolném okraji) můžou snížit výkon.
  • Pokud chcete snížit latenci, udržujte obrázky v rámci 1,15 pixelů a maximálně 1568 pixelů v obou rozměrech.
  • Srozumitelnost: Vyhněte se rozmazaným nebo pixelovaným obrázkům.
  • Text v obrázcích:
    • Ujistěte se, že text je čitelný a není příliš malý.
    • Vyhněte se oříznutí klíčového vizuálního kontextu jen pro zvětšení textu.

Převod image na token

Tato část se vztahuje pouze na rozhraní API základního modelu. Informace o externích modelech najdete v dokumentaci poskytovatele.

Každý obrázek v požadavku na základový model se přidá k využití tokenů. V cenové kalkulačce můžete odhadnout ceny obrázků na základě využití tokenu a modelu, který používáte.

Omezení porozumění obrázkům

Tato část se vztahuje pouze na rozhraní API základního modelu. Informace o externích modelech najdete v dokumentaci poskytovatele.

Níže jsou uvedena omezení porozumění obrazu pro podporované základní modely hostované službou Databricks.

Model Omezení
Podporují se následující modely Claude:
  • databricks-claude-sonnet-5
  • databricks-claude-sonnet-4-6
  • databricks-claude-sonnet-4-5
  • databricks-claude-opus-4-1
  • databricks-claude-sonnet-4
Pro modely Claude v Databricks platí následující omezení:
  • Nepoužívejte Clauda pro úkoly vyžadující dokonalou přesnost nebo citlivou analýzu bez lidského dohledu.
  • Identifikace osob: Nelze identifikovat nebo pojmenovat osoby na obrázcích.
  • Přesnost: Může chybně interpretovat nízké kvality, otočené nebo velmi malé obrázky (200 px).
  • Prostorové uvažování: Zápasy s přesnými rozloženími, jako je čtení analogových hodin nebo šachových pozic.
  • Počítání: Poskytuje přibližné počty, ale může být nepřesné pro mnoho malých objektů.
  • Obrázky generované umělou inteligencí: Nelze spolehlivě rozpoznat syntetické nebo falešné obrázky.
  • Nevhodný obsah: Blokuje explicitní nebo zásady porušující obrázky.
  • Zdravotní péče: Nehodí se pro komplexní lékařské kontroly (například CT a MRI). Nejedná se o diagnostický nástroj.

Dodatečné zdroje