Bildverständnis

Gemini-Modelle können Bilder verarbeiten und ermöglichen so viele neue Anwendungsfälle für Entwickler, für die bisher domänenspezifische Modelle erforderlich waren. Zu den Funktionen von Gemini gehören:

  • Untertitel hinzufügen und Fragen zu Bildern beantworten
  • PDFs transkribieren und mit bis zu 2 Millionen Tokens begründen
  • Objekte in einem Bild erkennen und Begrenzungsrahmenkoordinaten für sie zurückgeben
  • Objekte in einem Bild segmentieren

Gemini wurde von Grund auf als multimodales Modell entwickelt und wir erweitern ständig die Grenzen des Möglichen. In diesem Leitfaden erfahren Sie, wie Sie mit der Gemini API Textantworten auf der Grundlage von Bildinputs generieren und gängige Aufgaben zum Erfassen von Bildern ausführen.

Hinweis

Bevor Sie die Gemini API aufrufen, müssen Sie das von Ihnen ausgewählte SDK installiert und einen Gemini API-Schlüssel konfiguriert und einsatzbereit haben.

Bildeingabe

Sie können Bilder auf folgende Arten als Eingabe für Gemini bereitstellen:

  • Lade eine Bilddatei mit der File API hoch, bevor du eine Anfrage an generateContent sendest. Verwenden Sie diese Methode für Dateien, die größer als 20 MB sind, oder wenn Sie die Datei für mehrere Anfragen wiederverwenden möchten.
  • Übergeben Sie Inline-Bilddaten mit der Anfrage an generateContent. Verwenden Sie diese Methode für kleinere Dateien (Anfragegröße insgesamt unter 20 MB) oder Bilder, die direkt über URLs abgerufen werden.

Bilddatei hochladen

Sie können die Files API verwenden, um eine Bilddatei hochzuladen. Verwenden Sie immer die Files API, wenn die Gesamtgröße der Anfrage (einschließlich Datei, Textprompt, Systemanweisungen usw.) größer als 20 MB ist oder Sie dasselbe Bild in mehreren Prompts verwenden möchten.

Im folgenden Code wird eine Bilddatei hochgeladen und dann in einem Aufruf von generateContent verwendet.

from google import genai

client = genai.Client(api_key="GOOGLE_API_KEY")

myfile = client.files.upload(file="path/to/sample.jpg")

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=[myfile, "Caption this image."])

print(response.text)
import {
  GoogleGenAI,
  createUserContent,
  createPartFromUri,
} from "@google/genai";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  const myfile = await ai.files.upload({
    file: "path/to/sample.jpg",
    config: { mimeType: "image/jpeg" },
  });

  const response = await ai.models.generateContent({
    model: "gemini-2.0-flash",
    contents: createUserContent([
      createPartFromUri(myfile.uri, myfile.mimeType),
      "Caption this image.",
    ]),
  });
  console.log(response.text);
}

await main();
file, err := client.UploadFileFromPath(ctx, "path/to/sample.jpg", nil)
if err != nil {
    log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

model := client.GenerativeModel("gemini-2.0-flash")
resp, err := model.GenerateContent(ctx,
    genai.FileData{URI: file.URI},
    genai.Text("Caption this image."))
if err != nil {
    log.Fatal(err)
}

printResponse(resp)
IMAGE_PATH="path/to/sample.jpg"
MIME_TYPE=$(file -b --mime-type "${IMAGE_PATH}")
NUM_BYTES=$(wc -c < "${IMAGE_PATH}")
DISPLAY_NAME=IMAGE

tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "https://generativelanguage.googleapis.com/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
  -D upload-header.tmp \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${IMAGE_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"file_data":{"mime_type": "${MIME_TYPE}", "file_uri": '$file_uri'}},
          {"text": "Caption this image."}]
        }]
      }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

Weitere Informationen zur Arbeit mit Mediendateien findest du in der Files API.

Bilddaten inline übergeben

Anstatt eine Bilddatei hochzuladen, können Sie Inline-Bilddaten in der Anfrage an generateContent übergeben. Dies eignet sich für kleinere Bilder (Gesamtanfragegröße unter 20 MB) oder Bilder, die direkt über URLs abgerufen werden.

Sie können Bilddaten als Base64-codierte Strings oder durch direktes Lesen lokaler Dateien bereitstellen (je nach SDK).

Lokale Bilddatei:

  from google.genai import types

  with open('path/to/small-sample.jpg', 'rb') as f:
      img_bytes = f.read()

  response = client.models.generate_content(
    model='gemini-2.0-flash',
    contents=[
      types.Part.from_bytes(
        data=img_bytes,
        mime_type='image/jpeg',
      ),
      'Caption this image.'
    ]
  )

  print(response.text)
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const base64ImageFile = fs.readFileSync("path/to/small-sample.jpg", {
  encoding: "base64",
});

const contents = [
  {
    inlineData: {
      mimeType: "image/jpeg",
      data: base64ImageFile,
    },
  },
  { text: "Caption this image." },
];

const response = await ai.models.generateContent({
  model: "gemini-2.0-flash",
  contents: contents,
});
console.log(response.text);
model := client.GenerativeModel("gemini-2.0-flash")

bytes, err := os.ReadFile("path/to/small-sample.jpg")
if err != nil {
  log.Fatal(err)
}

prompt := []genai.Part{
  genai.Blob{MIMEType: "image/jpeg", Data: bytes},
  genai.Text("Caption this image."),
}

resp, err := model.GenerateContent(ctx, prompt...)
if err != nil {
  log.Fatal(err)
}

for _, c := range resp.Candidates {
  if c.Content != nil {
    fmt.Println(*c.Content)
  }
}
IMG_PATH=/path/to/your/image1.jpg

if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
  B64FLAGS="--input"
else
  B64FLAGS="-w0"
fi

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
            {
              "inline_data": {
                "mime_type":"image/jpeg",
                "data": "'\$(base64 \$B64FLAGS \$IMG_PATH)'"
              }
            },
            {"text": "Caption this image."},
        ]
      }]
    }' 2> /dev/null

Bild von einer URL:

from google import genai
from google.genai import types

import requests

image_path = "https://goo.gle/instrument-img"
image = requests.get(image_path)

client = genai.Client(api_key="GOOGLE_API_KEY")
response = client.models.generate_content(
    model="gemini-2.0-flash-exp",
    contents=["What is this image?",
              types.Part.from_bytes(data=image.content, mime_type="image/jpeg")])

print(response.text)
import { GoogleGenAI } from "@google/genai";

async function main() {
  const ai = new GoogleGenAI({ apiKey: process.env.GOOGLE_API_KEY });

  const imageUrl = "https://goo.gle/instrument-img";

  const response = await fetch(imageUrl);
  const imageArrayBuffer = await response.arrayBuffer();
  const base64ImageData = Buffer.from(imageArrayBuffer).toString('base64');

  const result = await ai.models.generateContent({
    model: "gemini-2.0-flash",
    contents: [
    {
      inlineData: {
        mimeType: 'image/jpeg',
        data: base64ImageData,
      },
    },
    { text: "Caption this image." }
  ],
  });
  console.log(result.text);
}

main();
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GOOGLE_API_KEY")))
if err != nil {
  log.Fatal(err)
}
defer client.Close()

model := client.GenerativeModel("gemini-2.0-flash")

// Download the image.
imageResp, err := http.Get("https://goo.gle/instrument-img")
if err != nil {
  panic(err)
}
defer imageResp.Body.Close()

imageBytes, err := io.ReadAll(imageResp.Body)
if err != nil {
  panic(err)
}

// Create the request.
req := []genai.Part{
  genai.ImageData("jpeg", imageBytes),

  genai.Text("Caption this image."),
}

// Generate content.
resp, err := model.GenerateContent(ctx, req...)
if err != nil {
  panic(err)
}

// Handle the response of generated text.
for _, c := range resp.Candidates {
  if c.Content != nil {
    fmt.Println(*c.Content)
  }
}

}
IMG_URL="https://goo.gle/instrument-img"

MIME_TYPE=$(curl -sIL "$IMG_URL" | grep -i '^content-type:' | awk -F ': ' '{print $2}' | sed 's/\r$//' | head -n 1)
if [[ -z "$MIME_TYPE" || ! "$MIME_TYPE" == image/* ]]; then
  MIME_TYPE="image/jpeg"
fi

if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
  B64FLAGS="--input"
else
  B64FLAGS="-w0"
fi

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
            {
              "inline_data": {
                "mime_type":"'"$MIME_TYPE"'",
                "data": "'$(curl -sL "$IMG_URL" | base64 $B64FLAGS)'"
              }
            },
            {"text": "Caption this image."}
        ]
      }]
    }' 2> /dev/null

Hinweise zu Inline-Bilddaten:

  • Die maximale Gesamtgröße einer Anfrage beträgt 20 MB. Dazu gehören Textprompts, Systemanweisungen und alle inline bereitgestellten Dateien. Wenn die Größe Ihrer Datei die Gesamtgröße der Anfrage auf über 20 MB ansteigen lässt, können Sie mit der Files API eine Bilddatei hochladen, die dann in der Anfrage verwendet wird.
  • Wenn Sie ein Bildbeispiel mehrmals verwenden, ist es effizienter, eine Bilddatei mit der File API hochzuladen.

Prompts mit mehreren Bildern

Sie können mehrere Bilder in einem einzigen Prompt angeben, indem Sie mehrere BildPart-Objekte in das contents-Array aufnehmen. Das können Inline-Daten (lokale Dateien oder URLs) und File API-Referenzen sein.

from google import genai
from google.genai import types

client = genai.Client(api_key="GOOGLE_API_KEY")

# Upload the first image
image1_path = "path/to/image1.jpg"
uploaded_file = client.files.upload(file=image1_path)

# Prepare the second image as inline data
image2_path = "path/to/image2.png"
with open(image2_path, 'rb') as f:
    img2_bytes = f.read()

# Create the prompt with text and multiple images
response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=[
        "What is different between these two images?",
        uploaded_file,  # Use the uploaded file reference
        types.Part.from_bytes(
            data=img2_bytes,
            mime_type='image/png'
        )
    ]
)

print(response.text)
import {
  GoogleGenAI,
  createUserContent,
  createPartFromUri,
} from "@google/genai";
import * as fs from "node:fs";

const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });

async function main() {
  // Upload the first image
  const image1_path = "path/to/image1.jpg";
  const uploadedFile = await ai.files.upload({
    file: image1_path,
    config: { mimeType: "image/jpeg" },
  });

  // Prepare the second image as inline data
  const image2_path = "path/to/image2.png";
  const base64Image2File = fs.readFileSync(image2_path, {
    encoding: "base64",
  });

  // Create the prompt with text and multiple images
  const response = await ai.models.generateContent({
    model: "gemini-2.0-flash",
    contents: createUserContent([
      "What is different between these two images?",
      createPartFromUri(uploadedFile.uri, uploadedFile.mimeType),
      {
        inlineData: {
          mimeType: "image/png",
          data: base64Image2File,
        },
      },
    ]),
  });
  console.log(response.text);
}

await main();
+    // Upload the first image
image1Path := "path/to/image1.jpg"
uploadedFile, err := client.UploadFileFromPath(ctx, image1Path, nil)
if err != nil {
    log.Fatal(err)
}
defer client.DeleteFile(ctx, uploadedFile.Name)

// Prepare the second image as inline data
image2Path := "path/to/image2.png"
img2Bytes, err := os.ReadFile(image2Path)
if err != nil {
  log.Fatal(err)
}

// Create the prompt with text and multiple images
model := client.GenerativeModel("gemini-2.0-flash")
prompt := []genai.Part{
  genai.Text("What is different between these two images?"),
  genai.FileData{URI: uploadedFile.URI},
  genai.Blob{MIMEType: "image/png", Data: img2Bytes},
}

resp, err := model.GenerateContent(ctx, prompt...)
if err != nil {
  log.Fatal(err)
}

printResponse(resp)
# Upload the first image
IMAGE1_PATH="path/to/image1.jpg"
MIME1_TYPE=$(file -b --mime-type "${IMAGE1_PATH}")
NUM1_BYTES=$(wc -c < "${IMAGE1_PATH}")
DISPLAY_NAME1=IMAGE1

tmp_header_file1=upload-header1.tmp

curl "https://generativelanguage.googleapis.com/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
  -D upload-header1.tmp \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM1_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME1_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME1}'}}" 2> /dev/null

upload_url1=$(grep -i "x-goog-upload-url: " "${tmp_header_file1}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file1}"

curl "${upload_url1}" \
  -H "Content-Length: ${NUM1_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${IMAGE1_PATH}" 2> /dev/null > file_info1.json

file1_uri=$(jq ".file.uri" file_info1.json)
echo file1_uri=$file1_uri

# Prepare the second image (inline)
IMAGE2_PATH="path/to/image2.png"
MIME2_TYPE=$(file -b --mime-type "${IMAGE2_PATH}")

if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
  B64FLAGS="--input"
else
  B64FLAGS="-w0"
fi
IMAGE2_BASE64=$(base64 $B64FLAGS $IMAGE2_PATH)

# Now generate content using both images
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "What is different between these two images?"},
          {"file_data":{"mime_type": "'"${MIME1_TYPE}"'", "file_uri": '$file1_uri'}},
          {
            "inline_data": {
              "mime_type":"'"${MIME2_TYPE}"'",
              "data": "'"$IMAGE2_BASE64"'"
            }
          }
        ]
      }]
    }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

Begrenzungsrahmen für ein Objekt abrufen

Gemini-Modelle werden trainiert, um Objekte in einem Bild zu erkennen und die Koordinaten ihrer Begrenzungsrahmen anzugeben. Die Koordinaten werden relativ zu den Bildabmessungen zurückgegeben und auf [0, 1000] skaliert. Sie müssen diese Koordinaten entsprechend der Größe des Originalbilds skalieren.

prompt = "Detect the all of the prominent items in the image. The box_2d should be [ymin, xmin, ymax, xmax] normalized to 0-1000."
const prompt = "Detect the all of the prominent items in the image. The box_2d should be [ymin, xmin, ymax, xmax] normalized to 0-1000.";
prompt := []genai.Part{
    genai.FileData{URI: sampleImage.URI},
    genai.Text("Detect the all of the prominent items in the image. The box_2d should be [ymin, xmin, ymax, xmax] normalized to 0-1000."),
}
PROMPT="Detect the all of the prominent items in the image. The box_2d should be [ymin, xmin, ymax, xmax] normalized to 0-1000."

Sie können Begrenzungsrahmen für die Objekterkennung und -lokalisierung in Bildern und Videos verwenden. Wenn Sie Objekte mit Begrenzungsrahmen genau identifizieren und abgrenzen, können Sie eine Vielzahl von Anwendungen nutzen und die Intelligenz Ihrer Projekte verbessern.

Hauptvorteile

  • Einfach:Sie können Funktionen zur Objekterkennung ganz einfach in Ihre Anwendungen einbinden, unabhängig von Ihren Kenntnissen im Bereich maschinelles Sehen.
  • Anpassbar:Sie können Begrenzungsrahmen anhand benutzerdefinierter Anweisungen erstellen (z.B. „Ich möchte Begrenzungsrahmen für alle grünen Objekte in diesem Bild sehen“), ohne ein benutzerdefiniertes Modell trainieren zu müssen.

Technische Details

  • Eingabe:Ihr Prompt und die zugehörigen Bilder oder Videoframes.
  • Ausgabe:Begrenzungsrahmen im [y_min, x_min, y_max, x_max]-Format Die linke obere Ecke ist der Ursprung. Die x- und y-Achse verlaufen horizontal bzw. vertikal. Die Koordinatenwerte werden für jedes Bild auf 0–1.000 normalisiert.
  • Visualisierung:AI Studio-Nutzer sehen Begrenzungsboxen, die in der Benutzeroberfläche dargestellt werden.

Python-Entwickler können das Notebook zum 2D-räumlichen Verständnis oder das experimentelle Notebook zum 3D-Zeigen ausprobieren.

Koordinaten normalisieren

Das Modell gibt Begrenzungsrahmenkoordinaten im Format [y_min, x_min, y_max, x_max] zurück. So wandeln Sie diese normalisierten Koordinaten in die Pixelkoordinaten des Originalbilds um:

  1. Dividieren Sie jede Ausgabekoordinate durch 1.000.
  2. Multiplizieren Sie die X-Koordinaten mit der Breite des Originalbilds.
  3. Multiplizieren Sie die y-Koordinaten mit der Höhe des Originalbilds.

Ausführlichere Beispiele zum Generieren von Begrenzungsrahmenkoordinaten und zum Visualisieren in Bildern finden Sie im Beispiel aus dem Kochbuch zur Objekterkennung.

Bildsegmentierung

Ab den Gemini 2.5-Modellen werden Gemini-Modelle nicht nur darauf trainiert, Gegenstände zu erkennen, sondern auch zu segmentieren und eine Maske ihrer Konturen bereitzustellen.

Das Modell prognostiziert eine JSON-Liste, wobei jedes Element eine Segmentierungsmaske darstellt. Jeder Artikel hat einen Begrenzungsrahmen („box_2d“) im Format [y0, x0, y1, x1] mit normalisierten Koordinaten zwischen 0 und 1.000, ein Label („label“), das das Objekt identifiziert, und schließlich die Segmentierungsmaske innerhalb des Begrenzungsrahmens als Base64-codierte PNG-Datei, die eine Wahrscheinlichkeitskarte mit Werten zwischen 0 und 255 ist. Die Maske muss so angepasst werden, dass sie den Abmessungen des Begrenzungsrahmens entspricht. Anschließend muss sie mit dem von Ihnen festgelegten Konfidenzgrenzwert binär codiert werden (127 für die Mitte).

prompt = """
  Give the segmentation masks for the wooden and glass items.
  Output a JSON list of segmentation masks where each entry contains the 2D
  bounding box in the key "box_2d", the segmentation mask in key "mask", and
  the text label in the key "label". Use descriptive labels.
"""
const prompt = `
  Give the segmentation masks for the wooden and glass items.
  Output a JSON list of segmentation masks where each entry contains the 2D
  bounding box in the key "box_2d", the segmentation mask in key "mask", and
  the text label in the key "label". Use descriptive labels.
`;    
prompt := []genai.Part{
    genai.FileData{URI: sampleImage.URI},
    genai.Text(`
      Give the segmentation masks for the wooden and glass items.
      Output a JSON list of segmentation masks where each entry contains the 2D
      bounding box in the key "box_2d", the segmentation mask in key "mask", and
      the text label in the key "label". Use descriptive labels.
    `),
}
PROMPT='''
  Give the segmentation masks for the wooden and glass items.
  Output a JSON list of segmentation masks where each entry contains the 2D
  bounding box in the key "box_2d", the segmentation mask in key "mask", and
  the text label in the key "label". Use descriptive labels.
'''
Ein Tisch mit Cupcakes, auf dem die Holz- und Glasobjekte hervorgehoben sind
Maske der Holz- und Glasobjekte auf dem Bild

Ein detaillierteres Beispiel finden Sie im Leitfaden im Segmentierungsbeispiel.

Unterstützte Bildformate

Gemini unterstützt die folgenden MIME-Typen für Bildformate:

  • PNG - image/png
  • JPEG - image/jpeg
  • WEBP – image/webp
  • HEIC – image/heic
  • HEIF – image/heif

Technische Details zu Bildern

  • Dateieinschränkung: Gemini 2.5 Pro, 2.0 Flash, 1.5 Pro und 1.5 Flash unterstützen maximal 3.600 Bilddateien pro Anfrage.
  • Tokenberechnung:
    • Gemini 1.5 Flash und Gemini 1.5 Pro: 258 Tokens, wenn beide Abmessungen <= 384 Pixel sind. Größere Bilder werden in Kacheln unterteilt (min. 256 × 256 Pixel, max. 768 × 768 Pixel, Größe wird auf 768 × 768 Pixel geändert). Jede Kachel kostet 258 Tokens.
    • Gemini 2.0 Flash: 258 Tokens, wenn beide Abmessungen <= 384 Pixel sind. Größere Bilder werden in Kacheln mit einer Größe von 768 × 768 Pixeln unterteilt, die jeweils 258 Tokens kosten.
  • Best Practices:
    • Achten Sie darauf, dass die Bilder richtig gedreht sind.
    • Verwenden Sie klare, nicht unscharfe Bilder.
    • Wenn Sie ein einzelnes Bild mit Text verwenden, platzieren Sie den Textprompt nach dem Bildteil im contents-Array.

Nächste Schritte

In dieser Anleitung wird gezeigt, wie Sie Bilddateien hochladen und Textausgaben aus Bildinputs generieren. Weitere Informationen finden Sie in den folgenden Ressourcen:

  • Systemanweisungen: Mit Systemanweisungen können Sie das Verhalten des Modells entsprechend Ihren spezifischen Anforderungen und Anwendungsfällen steuern.
  • Videoauffassung: Hier erfahren Sie, wie Sie mit Videoinputs arbeiten.
  • Files API: Hier finden Sie weitere Informationen zum Hochladen und Verwalten von Dateien für die Verwendung mit Gemini.
  • Strategien für Prompts aus Dateien: Die Gemini API unterstützt Prompts mit Text-, Bild-, Audio- und Videodaten, auch als multimodale Prompts bezeichnet.
  • Sicherheitshinweise: Manchmal liefern generative KI-Modelle unerwartete Ergebnisse, z. B. ungenaue, voreingenommene oder anstößige Ergebnisse. Eine Nachbearbeitung und eine menschliche Bewertung sind unerlässlich, um das Risiko von Schäden durch solche Ausgaben zu begrenzen.