Interroger les modèles de vision
Dans cet article, vous apprendrez comment rédiger des requêtes query pour des modèles de fondation optimisés pour les tâches de vision, et servis par Unity AI Gateway.
Genie Code (mode Agent) peut le faire pour vous. Essayez cet exemple de prompt :
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.
Model Serving fournit une API unifiée pour comprendre et analyser des images à l'aide d'une variété de modèles de fondation, déverrouillant de puissantes capacités multimodales. Cette fonctionnalité est disponible via certains modèles hébergés par Databricks dans le cadre des API de modèles de fondation et des endpoints de service qui servent des modèles externes.
Exigences
- Consultez Exigences.
- Installez le package approprié sur votre cluster en fonction de l'option de client de requête que vous choisissez.
Exemples de query
Les exemples suivants sont basés sur Unity AI Gateway et les services de modèles. Si vous utilisez des Endpoint de diffusion de modèles au lieu de services de modèles, remplacez le nom du service de modèle par un nom d'Endpoint. Voir modèles de fondation hébergés par Databricks disponibles dans les API Foundation Model pour une liste des modèles de fondation disponibles ainsi que leurs noms de service de modèle et d'Endpoint.
- OpenAI client
- SQL
Pour utiliser le client OpenAI, spécifiez le nom du service de modèle comme entrée model.
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)
L'API Chat Completions prend en charge plusieurs entrées d'images, permettant au modèle d'analyser chaque image et de synthétiser les informations de toutes les entrées pour générer une réponse à l'invite.
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)
L'exemple suivant utilise la fonction SQL intégrée, ai_query. Cette fonction est en prévisualisation publique et la définition pourrait changer.
La requête suivante interroge un modèle de fondation pris en charge par les Databricks Foundation Model APIs pour l’entrée multimodale à l’aide de la fonction 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");
Modèles pris en charge
Voir les types de modèles de fondation pour les modèles de vision pris en charge.
Exigences relatives à l'image d'entrée
Modèle | Formats pris en charge | Plusieurs images par requête | Limitations de taille d'image | Recommandations de redimensionnement d'image | Considérations sur la qualité de l'image |
|---|---|---|---|---|---|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 500 entrées d'image individuelles par requête | Taille limite du fichier : jusqu'à 10 Mo de charge utile totale par requête | N/A |
|
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 50 images pour les requêtes API. Toutes les images fournies sont traitées dans une requête. | Limite de taille de fichier : 7 Mo par image | N/A | N/A |
|
| Jusqu'à 5 images pour les requêtes d'API
| Limite de taille de fichier : 10 Mo au total pour toutes les images par requête API | N/A | N/A |
|
| Jusqu'à 5 images pour les requêtes d'API
| Limite de taille de fichier : 10 Mo au total pour toutes les images par requête API | N/A | N/A |
|
|
|
| Pour des performances optimales, redimensionnez les images avant de les upload si elles sont trop volumineuses.
|
|
Conversion d'image en jeton
Cette section s'applique uniquement aux APIs de modèle de fondation. Pour les modèles externes, référez-vous à la documentation du fournisseur.
Chaque image dans une requête à un modèle de fondation s'ajoute à votre utilisation de jetons. Consultez le calculateur de tarifs pour estimer le prix des images en fonction de l'utilisation des jetons et du modèle que vous utilisez.
Limites de la compréhension d’images
Cette section s'applique uniquement aux APIs de modèle de fondation. Pour les modèles externes, référez-vous à la documentation du fournisseur.
Les limitations en matière de compréhension d'images pour les modèles de fondation pris en charge et hébergés par Databricks sont les suivantes :
Modèle | Limitations |
|---|---|
Les modèles Claude suivants sont pris en charge :
| Voici les limites des modèles Claude sur Databricks :
|