Interfejs Gemini API obsługuje przesyłanie plików multimedialnych oddzielnie od danych wejściowych prompta, co umożliwia ponowne wykorzystanie multimediów w wielu żądaniach i promptach. Więcej informacji znajdziesz w przewodniku Promptowanie z użyciem multimediów.
Metoda: media.upload
Przesyła dane do ragStore, wstępnie je przetwarza i dzieli na fragmenty przed zapisaniem w dokumencie RagStore.
Punkt końcowy
- Identyfikator URI przesyłania w przypadku żądań przesyłania multimediów:
https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
- Identyfikator URI metadanych w przypadku żądań dotyczących tylko metadanych:
https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
Parametry ścieżki
ragStoreName
string
Wymagane. Niezmienne. Nazwa RagStore
, do której chcesz przesłać plik. Przykład: ragStores/my-rag-store-123
Przyjmuje postać ragStores/{ragstore}
.
Treść żądania
Treść żądania zawiera dane o następującej strukturze:
displayName
string
Opcjonalnie: Wyświetlana nazwa utworzonego dokumentu.
customMetadata[]
object (CustomMetadata
)
Niestandardowe metadane, które mają być powiązane z danymi.
chunkingConfig
object (ChunkingConfig
)
Opcjonalnie: Konfiguracja określająca, jak usługa ma dzielić dane na części. Jeśli nie zostaną podane, usługa użyje parametrów domyślnych.
mimeType
string
Opcjonalnie: Typ MIME danych. Jeśli nie podasz tej wartości, zostanie ona wywnioskowana na podstawie przesłanych treści.
Treść odpowiedzi
Jest to kopia google.longrunning.Operation. Musimy go skopiować, ponieważ do interakcji z usługą Scotty musimy dodać pole specyficzne dla tej usługi, którego nie można dodać w protokole Operation najwyższego poziomu.
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
name
string
Nazwa przypisana przez serwer, która jest unikalna tylko w ramach tej samej usługi, która ją pierwotnie zwraca. Jeśli używasz domyślnego mapowania HTTP, name
powinna być nazwą zasobu kończącą się na operations/{unique_id}
.
metadata
object
Metadane specyficzne dla usługi powiązane z operacją. Zwykle zawiera informacje o postępach i typowe metadane, takie jak czas utworzenia. Niektóre usługi mogą nie udostępniać takich metadanych. Każda metoda, która zwraca operację długotrwałą, powinna zawierać dokumentację typu metadanych (jeśli występuje).
Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type"
zawiera identyfikator URI określający typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }
done
boolean
Jeśli wartość to false
, oznacza to, że operacja jest w toku. Jeśli true
, operacja została ukończona i dostępne są wartości error
lub response
.
result
Union type
error
lub prawidłową wartością response
. Jeśli done
== false
, nie ustawiono ani error
, ani response
. Jeśli done
== true
, można ustawić tylko jedną z wartości error
lub response
. Niektóre usługi mogą nie zwracać wyniku. result
może mieć tylko jedną z tych wartości:error
object (Status
)
Wynik błędu operacji w przypadku niepowodzenia lub anulowania.
response
object
Normalna odpowiedź operacji w przypadku powodzenia. Jeśli oryginalna metoda nie zwraca danych w przypadku powodzenia, np. Delete
, odpowiedź to google.protobuf.Empty
. Jeśli oryginalna metoda to standardowa metoda Get
/Create
/Update
, odpowiedź powinna być zasobem. W przypadku innych metod odpowiedź powinna mieć typ XxxResponse
, gdzie Xxx
to oryginalna nazwa metody. Jeśli np. oryginalna nazwa metody to TakeSnapshot()
, wywnioskowany typ odpowiedzi to TakeSnapshotResponse
.
Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type"
zawiera identyfikator URI określający typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }
Zapis JSON |
---|
{
"name": string,
"metadata": {
"@type": string,
field1: ...,
...
},
"done": boolean,
// result
"error": {
object ( |
ChunkingConfig
Parametry określające, jak usługa ma dzielić plik na części. Zainspirowane przez google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto
config
Union type
config
może mieć tylko jedną z tych wartości:whiteSpaceConfig
object (WhiteSpaceConfig
)
Konfiguracja dzielenia na części zawierające białe znaki.
Zapis JSON |
---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
Konfiguracja algorytmu dzielenia na fragmenty na podstawie białych znaków [rozdzielone białymi znakami].
maxTokensPerChunk
integer
Maksymalna liczba tokenów w bloku. W przypadku tego algorytmu dzielenia na części tokeny są definiowane jako słowa. Uwaga: tokeny definiujemy jako słowa rozdzielone białymi znakami, a nie jako wynik działania tokenizatora. Okno kontekstu najnowszego modelu osadzania Gemini z 17 kwietnia 2025 r. ma obecnie 8192 tokeny. Zakładamy, że średnia długość słowa to 5 znaków. Dlatego ustawiliśmy górny limit na 2**9, czyli 512 słów lub 2560 tokenów, zakładając w najgorszym przypadku 1 znak na token. Jest to ostrożne oszacowanie, które ma zapobiec przepełnieniu okna kontekstu.
maxOverlapTokens
integer
Maksymalna liczba nakładających się tokenów między 2 sąsiednimi fragmentami.
Zapis JSON |
---|
{ "maxTokensPerChunk": integer, "maxOverlapTokens": integer } |
Metoda: files.get
Pobiera metadane dla podanego File
.
Punkt końcowy
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
Parametry ścieżki
name
string
Wymagane. Nazwa File
do pobrania. Przykład: files/abc-123
Przyjmuje postać files/{file}
.
Treść żądania
Treść żądania musi być pusta.
Przykładowe żądanie
Python
Node.js
Przeczytaj
Muszla
Treść odpowiedzi
W przypadku powodzenia treść odpowiedzi obejmuje wystąpienie elementu File
.
Metoda: files.list
Wyświetla metadane File
należących do projektu, który wysłał żądanie.
Punkt końcowy
gethttps: / /generativelanguage.googleapis.com /v1beta /files
Parametry zapytania
pageSize
integer
Opcjonalnie: Maksymalna liczba File
do zwrócenia na stronie. Jeśli nie określisz tu żadnej wartości, zostanie użyte ustawienie domyślne (10). Maksymalna wartość pageSize
to 100.
pageToken
string
Opcjonalnie: Token strony z poprzedniego wywołania files.list
.
Treść żądania
Treść żądania musi być pusta.
Przykładowe żądanie
Python
Node.js
Przeczytaj
Muszla
Treść odpowiedzi
Odpowiedź dla files.list
.
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
files[]
object (File
)
Lista File
.
nextPageToken
string
Token, który można wysłać jako pageToken
w kolejnym wywołaniu files.list
.
Zapis JSON |
---|
{
"files": [
{
object ( |
Metoda: files.delete
Usuwa File
.
Punkt końcowy
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
Parametry ścieżki
name
string
Wymagane. Nazwa File
do usunięcia. Przykład: files/abc-123
Przyjmuje postać files/{file}
.
Treść żądania
Treść żądania musi być pusta.
Przykładowe żądanie
Python
Node.js
Przeczytaj
Muszla
Treść odpowiedzi
Jeśli operacja się uda, treść odpowiedzi będzie pustym obiektem JSON.
Zasób REST: files
Zasób: File
Plik przesłany do interfejsu API. Następny identyfikator: 15
name
string
Niezmienne. Identyfikator. Nazwa zasobu File
. Identyfikator (nazwa bez prefiksu „files/”) może zawierać maksymalnie 40 znaków, które są małymi literami, cyframi lub myślnikami (-). Identyfikator nie może zaczynać się ani kończyć myślnikiem. Jeśli podczas tworzenia nazwa jest pusta, zostanie wygenerowana unikalna nazwa. Przykład: files/123-456
displayName
string
Opcjonalnie: Czytelna nazwa wyświetlana dla File
. Wyświetlana nazwa nie może mieć więcej niż 512 znaków, w tym spacji. Przykład: „Obraz powitalny”
mimeType
string
Tylko dane wyjściowe. Typ MIME pliku.
sizeBytes
string (int64 format)
Tylko dane wyjściowe. Rozmiar pliku w bajtach.
createTime
string (Timestamp
format)
Tylko dane wyjściowe. Sygnatura czasowa utworzenia File
.
Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
lub "2014-10-02T15:01:23+05:30"
.
updateTime
string (Timestamp
format)
Tylko dane wyjściowe. Sygnatura czasowa ostatniej aktualizacji File
.
Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
lub "2014-10-02T15:01:23+05:30"
.
expirationTime
string (Timestamp
format)
Tylko dane wyjściowe. Sygnatura czasowa usunięcia File
. Ustawiane tylko wtedy, gdy File
ma wygasnąć.
Korzysta ze standardu RFC 3339, w którym wygenerowane dane wyjściowe są zawsze znormalizowane do formatu Z i zawierają 0, 3, 6 lub 9 cyfr po przecinku. Akceptowane są też przesunięcia inne niż „Z”. Przykłady: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
lub "2014-10-02T15:01:23+05:30"
.
sha256Hash
string (bytes format)
Tylko dane wyjściowe. Skrót SHA-256 przesłanych bajtów.
Ciąg znaków zakodowany w formacie Base64.
uri
string
Tylko dane wyjściowe. Identyfikator URI elementu File
.
downloadUri
string
Tylko dane wyjściowe. Identyfikator URI pobierania pliku File
.
state
enum (State
)
Tylko dane wyjściowe. Stan przetwarzania pliku.
source
enum (Source
)
Źródło pliku.
error
object (Status
)
Tylko dane wyjściowe. Stan błędu, jeśli przetwarzanie pliku nie powiodło się.
metadata
Union type
metadata
może mieć tylko jedną z tych wartości:videoMetadata
object (VideoFileMetadata
)
Tylko dane wyjściowe. Metadane filmu.
Zapis JSON |
---|
{ "name": string, "displayName": string, "mimeType": string, "sizeBytes": string, "createTime": string, "updateTime": string, "expirationTime": string, "sha256Hash": string, "uri": string, "downloadUri": string, "state": enum ( |
VideoFileMetadata
Metadane filmu File
.
videoDuration
string (Duration
format)
Czas trwania filmu.
Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „s
”. Przykład: "3.5s"
.
Zapis JSON |
---|
{ "videoDuration": string } |
Stan
Stany cyklu życia pliku.
Wartości w polu enum | |
---|---|
STATE_UNSPECIFIED |
Wartość domyślna. Ta wartość jest używana, jeśli stan jest pominięty. |
PROCESSING |
Plik jest przetwarzany i nie można go jeszcze użyć do wnioskowania. |
ACTIVE |
Plik jest przetwarzany i dostępny do wnioskowania. |
FAILED |
Nie udało się przetworzyć pliku. |
Źródło
Wartości w polu enum | |
---|---|
SOURCE_UNSPECIFIED |
Używane, jeśli nie określono źródła. |
UPLOADED |
Wskazuje, że plik został przesłany przez użytkownika. |
GENERATED |
Oznacza, że plik został wygenerowany przez Google. |
REGISTERED |
Wskazuje, że plik jest zarejestrowany, czyli jest to plik Google Cloud Storage. |
Stan
Typ Status
definiuje model błędu logicznego, który jest odpowiedni dla różnych środowisk programistycznych, w tym interfejsów API typu REST i RPC. Jest używany przez gRPC. Każdy komunikat Status
zawiera 3 rodzaje danych: kod błędu, komunikat o błędzie i szczegóły błędu.
Więcej informacji o tym modelu błędów i sposobie pracy z nim znajdziesz w przewodniku API Design Guide.
code
integer
Kod stanu, który powinien być wartością wyliczeniową google.rpc.Code
.
message
string
Komunikat o błędzie widoczny dla programisty, który powinien być w języku angielskim. Wszelkie komunikaty o błędach dla użytkowników powinny być zlokalizowane i wysyłane w polu google.rpc.Status.details
lub zlokalizowane przez klienta.
details[]
object
Lista wiadomości zawierających szczegóły błędu. Na potrzeby interfejsów API dostępny jest wspólny zestaw typów wiadomości.
Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type"
zawiera identyfikator URI określający typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }
Zapis JSON |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |