Modelos de visão para consulta

Importante

Uma nova experiência Unity AI Gateway está disponível em versão Beta. O novo Unity AI Gateway é o plano de controlo empresarial para gerir endpoints LLM e agentes de codificação com funcionalidades melhoradas. Veja a governação da IA com o Unity AI Gateway.

Neste artigo, aprende a escrever pedidos de consulta para modelos de fundação otimizados para tarefas de visão e servidos pelo Unity AI Gateway.

Tip

O Código Génio (modo Agente) pode fazer isto por ti. Experimente este prompt de exemplo:

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.

O Model Serving fornece uma API unificada para compreender e analisar imagens usando uma variedade de modelos de fundação, desbloqueando poderosas capacidades multimodais. Essa funcionalidade está disponível por meio de modelos hospedados em Databricks selecionados como parte das APIs do Modelo de Base e servindo pontos de extremidade que atendem modelos externos.

Requerimentos

Exemplos de consulta

Note

Os exemplos seguintes baseiam-se no Unity AI Gateway e nos serviços de modelo. Se utilizar endpoints de disponibilização de modelos em vez de serviços de modelo, substitua o nome do serviço de modelo pelo nome de um endpoint. Consulte os modelos fundacionais alojados pela Databricks disponíveis nas APIs de Modelos Fundacionais para obter uma lista dos modelos fundacionais disponíveis e os nomes do serviço de modelo e do endpoint.

Cliente OpenAI

Para usar o cliente OpenAI, especifique o nome do serviço modelo como model entrada.


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)

A API de conclusão de bate-papo suporta várias entradas de imagem, permitindo que o modelo analise cada imagem e sintetize informações de todas as entradas para gerar uma resposta ao prompt.


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

Importante

O exemplo a seguir usa a função SQL interna, ai_query. Esta função está em Pré-visualização Pública e a definição pode mudar.

O seguinte consulta um modelo fundacional suportado pelas APIs do Databricks Foundation Model para entrada multimodal usando a função AI 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");

Modelos suportados

Consulte Tipos de modelos de base sobre os modelos de visão suportados.

Requisitos de imagem de entrada

Modelo(s) Formatos suportados Várias imagens por solicitação Limitações de tamanho de imagem Recomendações de redimensionamento de imagem Considerações sobre a qualidade da imagem
databricks-gpt-5
  • JPEG
  • PNG
  • WebP
  • GIF (Não animado GIF)
Até 500 entradas de imagem individuais por solicitação Limite de tamanho do ficheiro: até 10 MB de tamanho total da carga útil por pedido N/A
  • Sem marcas d'água ou logotipos
  • Suficientemente claro para um ser humano compreender
databricks-gpt-5-mini
  • JPEG
  • PNG
  • WebP
  • GIF (Não animado GIF)
Até 500 entradas de imagem individuais por solicitação Limite de tamanho do ficheiro: até 10 MB de tamanho total da carga útil por pedido N/A
  • Sem marcas d'água ou logotipos
  • Suficientemente claro para um ser humano compreender
databricks-gpt-5-nano
  • JPEG
  • PNG
  • WebP
  • GIF (Não animado GIF)
Até 500 entradas de imagem individuais por solicitação Limite de tamanho do ficheiro: até 10 MB de tamanho total da carga útil por pedido N/A
  • Sem marcas d'água ou logotipos
  • Suficientemente claro para um ser humano compreender
databricks-gemma-3-12b
  • JPEG
  • PNG
  • WebP
  • GIF
Até 5 imagens para solicitações de API
  • Todas as imagens fornecidas são processadas num pedido.
Limite de tamanho de arquivo: 10 MB no total em todas as imagens por solicitação de API N/A N/A
databricks-llama-4-maverick
  • JPEG
  • PNG
  • WebP
  • GIF
Até 5 imagens para solicitações de API
  • Todas as imagens fornecidas são processadas num pedido.
Limite de tamanho de arquivo: 10 MB no total em todas as imagens por solicitação de 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
  • Até 20 imagens para Claude.ai
  • Até 100 imagens para solicitações de API
  • Todas as imagens fornecidas são processadas em um pedido, o que é útil para compará-las ou contrastá-las.
  • Imagens maiores que 8000x8000 px são rejeitadas.
  • Se mais de 20 imagens forem enviadas em uma solicitação de API, o tamanho máximo permitido por imagem é de 2000 x 2000 px.
Para um desempenho ideal, redimensione as imagens antes de as carregar se forem demasiado grandes.
  • Se a borda longa de uma imagem exceder 1568 pixels ou seu tamanho exceder ~1.600 tokens, ela será reduzida automaticamente , preservando a proporção.
  • Imagens muito pequenas (menos de 200 pixels em qualquer borda) podem prejudicar o desempenho.
  • Para reduzir a latência, mantenha as imagens dentro de 1,15 megapixels e no máximo 1568 pixels em ambas as dimensões.
  • Clareza: evite imagens desfocadas ou pixelizadas.
  • Texto em imagens:
    • Certifique-se de que o texto está legível e não muito pequeno.
    • Evite cortar o contexto visual chave apenas para ampliar o texto.

Conversão de imagem em token

Esta seção se aplica somente às APIs do Modelo de Base. Para modelos externos, consulte a documentação do provedor.

Cada imagem em uma solicitação para um modelo de fundação aumenta o uso do token. Consulte a calculadora de preços para estimar o preço da imagem com base no uso do token e no modelo que você está usando.

Limitações da compreensão da imagem

Esta seção se aplica somente às APIs do Modelo de Base. Para modelos externos, consulte a documentação do provedor.

A seguir estão as limitações de compreensão de imagem para os modelos de fundação suportados e hospedados pelo Databricks.

Modelo Limitações
Os seguintes modelos Claude são suportados:
  • databricks-claude-sonnet-5
  • databricks-claude-sonnet-4-6
  • databricks-claude-sonnet-4-5
  • databricks-claude-opus-4-1
  • databricks-claude-sonnet-4
A seguir estão os limites para modelos Claude em Databricks:
  • Evite usar Claude para tarefas que exigem precisão perfeita ou análise sensível sem supervisão humana.
  • Identificação de pessoas: Não é possível identificar ou nomear pessoas em imagens.
  • Precisão: Pode interpretar mal imagens de baixa qualidade, giradas ou muito pequenas (200 px).
  • Raciocínio espacial: Dificuldades em interpretar layouts espaciais precisos, como a leitura de relógios analógicos ou posições de xadrez.
  • Contagem: Fornece contagens aproximadas, mas pode ser imprecisa para muitos objetos pequenos.
  • Imagens geradas por IA: Não é possível detetar imagens sintéticas ou falsas de forma confiável.
  • Conteúdo impróprio: bloqueia imagens explícitas ou que violam a política.
  • Cuidados de saúde: Não é adequado para exames médicos complexos (por exemplo, TCs e ressonâncias magnéticas). Não é uma ferramenta de diagnóstico.

Recursos adicionais