Mit der Gemini API können Sie Mediendateien separat vom Prompt-Eingabe hochladen. So können Ihre Medien in mehreren Anfragen und mehreren Prompts wiederverwendet werden. Weitere Informationen finden Sie im Leitfaden Prompts mit Media.
Methode: media.upload
Lädt Daten in einen „ragStore“ hoch, verarbeitet sie vor und teilt sie in Chunks auf, bevor sie in einem „RagStore“-Dokument gespeichert werden.
Endpunkt
- Upload-URI für Media-Uploadanfragen:
https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
>
- Metadaten-URI für reine Metadatenanfragen:
https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
>
Pfadparameter
ragStoreName
string
Erforderlich. Nicht veränderbar. Der Name des RagStore
, in den die Datei hochgeladen werden soll. Beispiel: ragStores/my-rag-store-123
Sie nimmt die Form ragStores/{ragstore}
an.
Anfragetext
Der Anfragetext enthält Daten mit folgender Struktur:
displayName
string
Optional. Der Anzeigename des erstellten Dokuments.
customMetadata[]
object (CustomMetadata
)
Benutzerdefinierte Metadaten, die den Daten zugeordnet werden sollen.
chunkingConfig
object (ChunkingConfig
)
Optional. Konfiguration, die dem Dienst mitteilt, wie die Daten in Chunks aufgeteilt werden sollen. Wenn nicht angegeben, verwendet der Dienst Standardparameter.
mimeType
string
Optional. MIME-Typ der Daten. Wenn sie nicht angegeben wird, wird sie aus den hochgeladenen Inhalten abgeleitet.
Antworttext
Dies ist eine Kopie von google.longrunning.Operation. Wir müssen es kopieren, da wir für die Interaktion mit Scotty ein Scotty-spezifisches Feld hinzufügen müssen, das nicht im Operation-Proto auf oberster Ebene hinzugefügt werden kann.
Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:
name
string
Der vom Server zugewiesene Name, der nur innerhalb des Dienstes eindeutig ist, der ihn ursprünglich zurückgibt. Wenn Sie die Standard-HTTP-Zuordnung verwenden, sollte name
ein Ressourcenname sein, der auf operations/{unique_id}
endet.
metadata
object
Dienstspezifische Metadaten, die mit dem Vorgang verknüpft sind. Typischerweise enthalten sie Informationen zum Verlauf und gemeinsame Metadaten wie den Erstellungszeitpunkt. Solche Metadaten werden nicht von allen Diensten bereitgestellt. Jede Methode, die einen Vorgang mit langer Ausführungszeit zurückgibt, muss gegebenenfalls den Metadatentyp dokumentieren.
Ein Objekt, das Felder eines beliebigen Typs enthält. Ein zusätzliches Feld "@type"
enthält einen URI zur Identifizierung des Typs. Beispiel: { "id": 1234, "@type": "types.example.com/standard/id" }
done
boolean
Ist der Wert false
, bedeutet das, dass der Vorgang noch läuft. Ist der Wert hingegen true
, ist der Vorgang abgeschlossen und entweder error
oder response
ist verfügbar.
result
Union type
error
oder eine gültige response
sein. Wenn done
= false
ist, wird weder error
noch response
festgelegt. Wenn done
= true
ist, kann genau ein error
oder eine response
festgelegt werden. Einige Dienste stellen das Ergebnis möglicherweise nicht bereit. Für result
ist nur einer der folgenden Werte zulässig:error
object (Status
)
Das Fehlerergebnis des Vorgangs im Fall eines Fehlers oder Abbruchs.
response
object
Die normale, erfolgreiche Antwort des Vorgangs. Wenn die ursprüngliche Methode im Erfolgsfall keine Daten zurückgibt, wie bei Delete
, lautet die Antwort google.protobuf.Empty
. Ist die ursprüngliche Methode standardmäßig Get
/Create
/Update
, sollte die Antwort die Ressource sein. Bei anderen Methoden sollte die Antwort vom Typ XxxResponse
sein, wobei Xxx
der Name der ursprünglichen Methode ist. Wenn zum Beispiel der Name der ursprünglichen Methode TakeSnapshot()
ist, ist der gefolgerte Antworttyp TakeSnapshotResponse
.
Ein Objekt, das Felder eines beliebigen Typs enthält. Ein zusätzliches Feld "@type"
enthält einen URI zur Identifizierung des Typs. Beispiel: { "id": 1234, "@type": "types.example.com/standard/id" }
JSON-Darstellung |
---|
{
"name": string,
"metadata": {
"@type": string,
field1: ...,
...
},
"done": boolean,
// result
"error": {
object ( |
ChunkingConfig
Parameter, die dem Dienst mitteilen, wie die Datei in Chunks aufgeteilt werden soll. Inspiriert von google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto
config
Union type
config
ist nur einer der folgenden Werte zulässig:whiteSpaceConfig
object (WhiteSpaceConfig
)
Konfiguration für die Aufteilung in Blöcke mit Leerraum.
JSON-Darstellung |
---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
Konfiguration für einen Algorithmus zum Aufteilen von Textblöcken in einzelne Wörter [durch Leerzeichen getrennt].
maxTokensPerChunk
integer
Maximale Anzahl von Tokens pro Chunk. Für diesen Chunking-Algorithmus werden Tokens als Wörter definiert. Hinweis: Wir definieren Tokens als Wörter, die durch Leerzeichen getrennt sind, und nicht als Ausgabe eines Tokenizers. Das Kontextfenster des neuesten Gemini-Einbettungsmodells beträgt derzeit 8.192 Tokens (Stand: 17.04.2025). Wir gehen davon aus, dass ein durchschnittliches Wort fünf Zeichen hat. Daher legen wir die Obergrenze auf 2**9 fest, was 512 Wörtern oder 2.560 Tokens entspricht, wobei im schlimmsten Fall ein Zeichen pro Token angenommen wird. Dies ist eine konservative Schätzung, die einen Überlauf des Kontextfensters verhindern soll.
maxOverlapTokens
integer
Maximale Anzahl von überlappenden Tokens zwischen zwei benachbarten Blöcken.
JSON-Darstellung |
---|
{ "maxTokensPerChunk": integer, "maxOverlapTokens": integer } |
Methode: files.get
Ruft die Metadaten für die angegebene File
ab.
Endpunkt
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
>
>
Pfadparameter
name
string
Erforderlich. Der Name des abzurufenden File
. Beispiel: files/abc-123
Sie nimmt die Form files/{file}
an.
Anfragetext
Der Anfragetext muss leer sein.
Beispielanfrage
Python
Node.js
Ok
Muschel
Antworttext
Wenn der Vorgang erfolgreich abgeschlossen wurde, enthält der Antworttext eine Instanz von File
.
Methode: files.list
Listet die Metadaten für File
auf, die dem anfragenden Projekt gehören.
Endpunkt
gethttps: / /generativelanguage.googleapis.com /v1beta /files
>
>
Abfrageparameter
pageSize
integer
Optional. Maximale Anzahl von File
s, die pro Seite zurückgegeben werden sollen. Wenn nicht angegeben, wird standardmäßig 10 verwendet. Der Höchstwert für pageSize
beträgt 100.
pageToken
string
Optional. Ein Seitentoken aus einem vorherigen files.list
-Aufruf.
Anfragetext
Der Anfragetext muss leer sein.
Beispielanfrage
Python
Node.js
Ok
Muschel
Antworttext
Antwort für files.list
.
Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:
files[]
object (File
)
Die Liste der File
s.
nextPageToken
string
Ein Token, das als pageToken
in einem nachfolgenden files.list
-Aufruf gesendet werden kann.
JSON-Darstellung |
---|
{
"files": [
{
object ( |
Methode: files.delete
Löscht die File
.
Endpunkt
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
Pfadparameter
name
string
Erforderlich. Der Name der zu löschenden File
. Beispiel: files/abc-123
Sie nimmt die Form files/{file}
an.
Anfragetext
Der Anfragetext muss leer sein.
Beispielanfrage
Python
Node.js
Ok
Muschel
Antworttext
Wenn der Vorgang erfolgreich abgeschlossen wurde, ist der Antworttext ein leeres JSON-Objekt.
REST-Ressource: files
Ressource: Datei
Eine in die API hochgeladene Datei. Nächste ID: 15
name
string
Nicht veränderbar. ID. Der Name der File
-Ressource. Die ID (Name ohne das Präfix „files/“) darf bis zu 40 Zeichen enthalten, die alphanumerisch in Kleinschreibung oder Bindestriche (-) sein dürfen. Die ID darf nicht mit einem Bindestrich beginnen oder enden. Wenn der Name beim Erstellen leer ist, wird ein eindeutiger Name generiert. Beispiel: files/123-456
displayName
string
Optional. Der für Menschen lesbare Anzeigename für File
. Der Anzeigename darf maximal 512 Zeichen lang sein, einschließlich Leerzeichen. Beispiel: „Welcome Image“
mimeType
string
Nur Ausgabe. MIME-Typ der Datei.
sizeBytes
string (int64 format)
Nur Ausgabe. Größe der Datei in Byte.
createTime
string (Timestamp
format)
Nur Ausgabe. Der Zeitstempel für die Erstellung des File
.
Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
oder "2014-10-02T15:01:23+05:30"
.
updateTime
string (Timestamp
format)
Nur Ausgabe. Der Zeitstempel, der angibt, wann File
zuletzt aktualisiert wurde.
Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
oder "2014-10-02T15:01:23+05:30"
.
expirationTime
string (Timestamp
format)
Nur Ausgabe. Der Zeitstempel, der angibt, wann die File
gelöscht wird. Nur festgelegt, wenn das File
ablaufen soll.
Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
oder "2014-10-02T15:01:23+05:30"
.
sha256Hash
string (bytes format)
Nur Ausgabe. SHA-256-Hash der hochgeladenen Bytes.
Ein base64-codierter String.
uri
string
Nur Ausgabe. Der URI der File
.
downloadUri
string
Nur Ausgabe. Der Download-URI der File
.
state
enum (State
)
Nur Ausgabe. Verarbeitungsstatus der Datei.
source
enum (Source
)
Quelle der Datei.
error
object (Status
)
Nur Ausgabe. Fehlerstatus, wenn die Dateiverarbeitung fehlgeschlagen ist.
metadata
Union type
metadata
ist nur einer der folgenden Werte zulässig:videoMetadata
object (VideoFileMetadata
)
Nur Ausgabe. Metadaten für ein Video.
JSON-Darstellung |
---|
{ "name": string, "displayName": string, "mimeType": string, "sizeBytes": string, "createTime": string, "updateTime": string, "expirationTime": string, "sha256Hash": string, "uri": string, "downloadUri": string, "state": enum ( |
VideoFileMetadata
Metadaten für ein Video File
videoDuration
string (Duration
format)
Dauer des Videos.
Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit "s
". Beispiel: "3.5s"
.
JSON-Darstellung |
---|
{ "videoDuration": string } |
Bundesland
Zustände für den Lebenszyklus einer Datei.
Enums | |
---|---|
STATE_UNSPECIFIED |
Der Standardwert. Dieser Wert wird verwendet, wenn der Bundesstaat weggelassen wird. |
PROCESSING |
Die Datei wird gerade verarbeitet und kann noch nicht für die Inferenz verwendet werden. |
ACTIVE |
Die Datei wurde verarbeitet und ist für die Inferenz verfügbar. |
FAILED |
Die Verarbeitung der Datei ist fehlgeschlagen. |
Quelle
Enums | |
---|---|
SOURCE_UNSPECIFIED |
Wird verwendet, wenn keine Quelle angegeben ist. |
UPLOADED |
Gibt an, dass die Datei vom Nutzer hochgeladen wurde. |
GENERATED |
Gibt an, dass die Datei von Google generiert wurde. |
REGISTERED |
Gibt an, dass die Datei registriert ist, d.h. eine Google Cloud Storage-Datei ist. |
Status
Mit dem Typ Status
wird ein logisches Fehlermodell definiert, das für verschiedene Programmierumgebungen wie REST APIs und RPC APIs geeignet ist. Dieses Modell wird von gRPC verwendet. Jede Status
-Meldung enthält die folgenden drei Datenelemente: Fehlercode, Fehlermeldung und Fehlerdetails.
Weitere Informationen zu diesem Fehlermodell und zur Arbeit damit finden Sie in der API-Designanleitung.
code
integer
Der Statuscode, der idealerweise ein ENUM-Wert von google.rpc.Code
ist.
message
string
Eine an Entwickler gerichtete Fehlermeldung, die englischsprachig sein sollte. Jede Fehlermeldung an den Nutzer sollte lokalisiert und im Feld google.rpc.Status.details
gesendet werden. Sie kann auch clientseitig lokalisiert werden.
details[]
object
Eine Auflistung aller Meldungen, die die Fehlerdetails enthalten. Es gibt einen gemeinsamen Satz von Nachrichtentypen, die APIs verwenden können.
Ein Objekt, das Felder eines beliebigen Typs enthält. Ein zusätzliches Feld "@type"
enthält einen URI zur Identifizierung des Typs. Beispiel: { "id": 1234, "@type": "types.example.com/standard/id" }
JSON-Darstellung |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |