Aller au contenu principal

Interroger des modèles audio et vidéo

Cette page décrit comment envoyer des entrées audio et vidéo aux modèles de fondation Gemini servis par Unity Gateway sur Databricks. Vous pouvez fournir des médias sous forme d'URL ou de données en ligne encodées en base64 en utilisant l'API Chat Completions ou l'Google Gemini API.

Exigences​

Méthodes d'entrée​

Vous pouvez fournir des entrées audio et vidéo en utilisant deux méthodes :

  • **URL** : Transmettez une URL accessible publiquement au fichier média. Pour la vidéo, les URL YouTube sont également prises en charge.
  • Données inline Base64 : encodez le fichier sous forme de chaîne base64 et transmettez-le en tant qu’URI de données (par exemple, data:video/mp4;base64,<encoded_data>).
remarque

Les exemples suivants sont basés sur Unity Gateway et les services de modèle. Si vous utilisez des endpoints de déploiement de modèles au lieu de services de modèle, remplacez le nom du service de modèle par un nom d’endpoint. Voir Liste détaillée des modèles pris en charge par les API de modèle de fondation Databricks pour obtenir la liste des modèles de fondation disponibles ainsi que leurs noms de services de modèle et d’Endpoint.

API Achèvements de discussion​

L'API de complétion de chat vous permet de transmettre des entrées vidéo et audio. Utilisez les types de contenu video_url et audio_url dans le tableau messages pour transmettre des entrées multimédia. Chaque élément de contenu comprend un champ url qui accepte une URL web ou un URI de données base64.

Entrée vidéo​

Python
import os
import base64
from openai import OpenAI

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
DATABRICKS_BASE_URL = os.environ.get('DATABRICKS_BASE_URL')

client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=DATABRICKS_BASE_URL
)

# Encode a local video file as base64
with open("video.mp4", "rb") as f:
video_b64 = base64.standard_b64encode(f.read()).decode("utf-8")

response = client.chat.completions.create(
model="system.ai.gemini-3-1-pro",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Summarize what happens in these videos."},
{
"type": "video_url",
"video_url": {"url": "https://example.com/sample-video.mp4"}
},
{
"type": "video_url",
"video_url": {"url": f"data:video/mp4;base64,{video_b64}"}
},
]
}],
max_tokens=1024
)

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

Entrée audio​

Python
import os
import base64
from openai import OpenAI

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
DATABRICKS_BASE_URL = os.environ.get('DATABRICKS_BASE_URL')

client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=DATABRICKS_BASE_URL
)

# Encode a local audio file as base64
with open("audio.mp3", "rb") as f:
audio_b64 = base64.standard_b64encode(f.read()).decode("utf-8")

response = client.chat.completions.create(
model="system.ai.gemini-3-1-pro",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe this audio and summarize the key points."},
{
"type": "audio_url",
"audio_url": {"url": "https://example.com/sample-audio.mp3"}
},
{
"type": "audio_url",
"audio_url": {"url": f"data:audio/mp3;base64,{audio_b64}"}
},
]
}],
max_tokens=1024
)

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

Google Gemini API​

Utilisez l'Gemini API de Google pour transmettre des médias sous forme de inlineData (encodé en base64) ou fileData (référence URL) au sein du tableau parts.

Entrée vidéo​

Python
from google import genai
from google.genai import types
import base64
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = genai.Client(
api_key="databricks",
http_options=types.HttpOptions(
base_url="https://example.staging.cloud.databricks.com/serving-endpoints/gemini",
headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
},
),
)

# Encode a local video file as base64
with open("video.mp4", "rb") as f:
video_b64 = base64.standard_b64encode(f.read()).decode("utf-8")

response = client.models.generate_content(
model="databricks-gemini-3-1-pro",
contents=[
types.Content(
role="user",
parts=[
types.Part(text="Summarize what happens in these videos."),
types.Part(
file_data=types.FileData(
mime_type="video/mp4",
file_uri="https://example.com/sample-video.mp4",
)
),
types.Part(
inline_data=types.Blob(
mime_type="video/mp4",
data=video_b64,
)
),
],
),
],
config=types.GenerateContentConfig(
max_output_tokens=1024,
),
)

print(response.text)

Entrée audio​

Python
from google import genai
from google.genai import types
import base64
import os

DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')

client = genai.Client(
api_key="databricks",
http_options=types.HttpOptions(
base_url="https://example.staging.cloud.databricks.com/serving-endpoints/gemini",
headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
},
),
)

# Encode a local audio file as base64
with open("audio.mp3", "rb") as f:
audio_b64 = base64.standard_b64encode(f.read()).decode("utf-8")

response = client.models.generate_content(
model="databricks-gemini-3-1-pro",
contents=[
types.Content(
role="user",
parts=[
types.Part(text="Transcribe this audio and summarize the key points."),
types.Part(
file_data=types.FileData(
mime_type="audio/mp3",
file_uri="https://example.com/sample-audio.mp3",
)
),
types.Part(
inline_data=types.Blob(
mime_type="audio/mp3",
data=audio_b64,
)
),
],
),
],
config=types.GenerateContentConfig(
max_output_tokens=1024,
),
)

print(response.text)

Modèles pris en charge​

Les entrées audio et vidéo sont prises en charge sur les modèles de fondation pay-per-token Gemini suivants. Consultez la liste détaillée des modèles pris en charge par les API du modèle de fondation Databricks pour connaître la disponibilité par région.

  • databricks-gemini-3-1-pro
  • databricks-gemini-3-1-flash-lite
  • databricks-gemini-3-flash

Limitations​

  • Les entrées audio et vidéo sont uniquement disponibles sur les modèles de fondation Gemini payants à la consommation (par jeton). Les Endpoint de throughput provisionné ne sont pas pris en charge.
  • Plusieurs entrées audio ou vidéo peuvent être incluses dans une seule requête, mais les fichiers volumineux augmentent la latence et l'utilisation des jetons.

Ressources supplémentaires​