Google: Gemini Embedding 2
Gemini Embedding 2 odwzorowuje tekst, obrazy, dźwięk, wideo i PDF we wspólnej przestrzeni liczbowej. Jego wektory wspierają wyszukiwanie między modalnościami, wyszukiwanie materiałów źródłowych, klasyfikację i grupowanie w klastry, z elastyczną liczbą wymiarów i limitem wejścia 8192 tokenów.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
Gemini Embedding 2 to multimodalny model osadzeń Google do liczbowej reprezentacji tekstu, obrazów, wideo, dźwięku i PDF. Odwzorowuje różne typy mediów we wspólnej przestrzeni, dzięki czemu aplikacja może porównywać ich znaczenie. Wynikiem jest wektor liczb przydatny do wyszukiwania semantycznego, wyszukiwania dokumentów, rekomendacji, klasyfikacji lub grupowania w klastry; nie jest to pisemna odpowiedź ani wygenerowany plik multimedialny. Google dokumentuje pokrycie semantyczne ponad 100 języków.
Dla bazy wiedzy utwórz wektory fragmentów źródłowych, porównaj z nimi zapytanie użytkownika i znajdź odpowiedni materiał. Osobny model tekstowy może następnie ułożyć odpowiedź z wykorzystaniem tych źródeł. W kolekcji mediów opis tekstowy może wyszukiwać powiązane obrazy lub wideo; obraz także może stanowić zapytanie. Zachowaj powiązanie każdego wektora z oryginalną treścią, w tym odwołanie do strony lub klipu, aby znaleziony wynik można było sprawdzić i pokazać w pierwotnym kontekście.
Łączny limit wejścia wynosi 8192 tokeny. Przewodnik po stabilnym modelu dopuszcza do sześciu obrazów PNG lub JPEG, do 180 sekund dźwięku MP3 lub WAV oraz do 120 sekund wideo MP4 lub MOV. Udokumentowane kodeki wideo to H264, H265, AV1 i VP9. Przetwarzanie wideo wykorzystuje najwyżej 32 klatki: klipy do 32 sekund są próbkowane z częstotliwością jednej klatki na sekundę, a dłuższe klipy są próbkowane równomiernie do 32 klatek. Ścieżka dźwiękowa filmu nie jest przetwarzana w tym wejściu wideo; utwórz osadzenie dźwięku osobno, gdy ma on znaczenie dla wyszukiwania.
Wejście PDF przyjmuje jeden plik o najwyżej sześciu stronach. Google zaleca jedną stronę na plik PDF dla najlepszej jakości. Dziel większe źródło na znaczące strony lub sekcje i zachowuj ich relację z oryginalnym dokumentem. Wybierz fragment reprezentujący to, co powinno dać się znaleźć, zamiast łączyć niepowiązane materiały tylko dlatego, że mieszczą się w limicie. Wspólna granica tokenów nadal dotyczy żądania z różnymi mediami. Każda strona PDF zużywa 258 tokenów wizualnych oprócz tokenów wyodrębnionego tekstu. W udokumentowanym procesie Google treść przekraczająca wspólny limit 8192 tokenów jest obcinana bez błędu.
Liczba wymiarów wyjścia jest elastyczna, od 128 do 3072, przy domyślnej wartości 3072 i zalecanych rozmiarach 768, 1536 i 3072. Model używa Matryoshka Representation Learning, więc początkowe części wektora pozostają użyteczne przy mniejszej liczbie wymiarów. Przewodnik dokumentuje automatyczną normalizację zarówno domyślnych, jak i skróconych wektorów. Wybierz spójną liczbę wymiarów dla rekordów i zapytań porównywanych przez aplikację; żądany rozmiar zmienia reprezentację liczbową, a nie samą treść źródłową.
W zadaniach wyłącznie tekstowych uwzględniaj cel w tekście, zamiast używać starszego pola task_type. Google rozróżnia wyszukiwanie asymetryczne i porównywanie symetryczne. Zapytanie wyszukiwania używa „task: search result | query: {content}”, a dokument źródłowy – „title: {title} | text: {content}”; użyj „title: none”, jeśli nie ma tytułu. Zadania odpowiadania na pytania, sprawdzania faktów i wyszukiwania kodu mają własne prefiksy zapytań. Dla klasyfikacji, grupowania w klastry lub oceny podobieństwa zdań stosuj konsekwentnie ten sam format zadania po obu stronach. Przewodnik zasadniczo odradza dodawanie prefiksu zadania do części tekstowej łącznej reprezentacji multimodalnej.
Struktura wejścia decyduje, czy wynik reprezentuje jeden połączony obiekt, czy osobne elementy. Wiele części podanych razem tworzy zagregowane osadzenie; osobne obiekty Content tworzą osobne osadzenia dla każdego wpisu. W poście zawierającym tekst i obraz łączna reprezentacja może uchwycić ich relację. Rekordy przeznaczone do niezależnego wyszukiwania zachowaj osobno. Ten wybór wpływa na szczegółowość wyszukiwania: jeden wektor całego posta różni się od jednego wektora dla każdego fragmentu lub obrazu.
Przewodnik podaje, że wektory z Gemini Embedding 001 i Gemini Embedding 2 zajmują niezgodne przestrzenie i nie można ich bezpośrednio porównywać. Kolekcja migrowana ze starszego modelu wymaga ponownego utworzenia osadzeń w nowej przestrzeni. Utrzymuj spójny wybór modelu i liczby wymiarów dla porównywanych wektorów oraz przechowuj oryginalny tekst i media osobno od indeksu liczbowego. Podobieństwo osadzeń jest sygnałem do wyszukiwania, a nie rzeczowym wyjaśnieniem, dlaczego dokument odpowiada na pytanie użytkownika.
W praktycznym katalogu twórz osadzenie fotografii produktu wraz z zatwierdzonym opisem, gdy para ma być wyszukiwana jako jeden obiekt. W kolekcji dokumentów twórz osadzenia fragmentów dotyczących konkretnych zagadnień i porównuj je z zapytaniem sformatowanym według celu, a następnie prezentuj fragmenty źródłowe obok wyniku wyszukiwania. Dla dźwięku lub wideo wybierz fragment opisujący wyszukiwane zdarzenie i zachowaj jego pierwotny przedział czasowy. Użytecznym rezultatem jest reprezentacja liczbowa powiązana z materiałem źródłowym, wspierająca kolejny krok wyszukiwania lub analizy w aplikacji.
Ailoot Ultra · Reprezentacje wektorowe POST /v1/embeddings google/gemini-embedding-2
google/gemini-embedding-2Start
Gemini Embedding 2 odwzorowuje tekst, obrazy, dźwięk, wideo i PDF we wspólnej przestrzeni liczbowej. Jego wektory wspierają wyszukiwanie między modalnościami, wyszukiwanie materiałów źródłowych, klasyfikację i grupowanie w klastry, z elastyczną liczbą wymiarów i limitem wejścia 8192 tokenów.
- Akceptowane dane wejściowe
- Tekst · token_ids
- Wyniki
- embedding
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Reprezentacje wektorowe POST /v1/embeddings
- Wejście
text,token_ids- Wyjście
embedding- Kontekst
- 8192 tokens
- Format wyjściowy
- json
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity google/gemini-embedding-2 | Domyślnie— |
Poleinput | Typstring|string[]|integer[]|integer[][] | WymaganieWymagane | Wartości i limity Minimalna liczba elementów: 1 Warunki: Niepusta, jednorodna partia danych. Identyfikatory tokenów są nieujemnymi liczbami całkowitymi. Budżet wejścia: Maksimum: 8192 · Jednostka tekstu: bajty UTF8 · Jednostka tokenów: elementy tablicy tokenów | Domyślnie— |
Poleencoding_format | Typstring | WymaganieOpcjonalne | Wartości i limity float | Domyślniefloat |
Poledimensions | Typinteger | WymaganieNieobsługiwane | Wartości i limity Minimum: 1 | Domyślnie— |
Poleuser | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Polesession_id | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Poletrace | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Poleprovider | Typobject | WymaganieOpcjonalne | Wartości i limity Warunki: Odrzucono provider.options | Domyślnie— |
Kombinacje materiałów wejściowych
text_to_embedding
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, input |
Parametrinput_shapes | Kontraktstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Parametrencoding_format | Kontraktfloat |
Parametrdimensions_override | Kontraktfalse |
Parametrmax_input_budget_units | Kontrakt8192 |
Parametrmultimodal_objects | Kontraktfalse |
Parametrmaterial_types | Kontrakttext, token_ids |
Cykl życia: synchronous_json
Zachowaj indeks i liczbę wymiarów każdego wektora.
Nawet jeśli nazwa modelu wskazuje na multimodalność, ta konkretna ścieżka nie obsługuje obiektów obrazów.
Cennik
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Stawka standardowa Gdy wybrany jest tryb szybki
- Tryb flex
- Stawka standardowa Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Stawki Ailoot
Ceny według konfiguracji
| Konfiguracja | Tabela stawek | Opłata |
|---|---|---|
| KonfiguracjaPodstawowe stawki za tokeny | Tabela stawekStawka podstawowa | Opłata Wejście · Tokeny wejściowe $0.0004 / 1K tokenów Wyjście · Tokeny wyjściowe $0 / 1K tokenów Wejście · Odczyt cache — / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Reprezentacje wektorowe
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/gemini-embedding-2", "input": ["First document", "Second document"]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='google/gemini-embedding-2',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
Odbieranie i zapisywanie wyników
Ailoot Ultra · Reprezentacje wektorowe
json
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj każdy wektor wraz z jego indeksem. Liczba wektorów musi być równa liczbie elementów wejściowych; wszystkie wektory muszą mieć tę samą liczbę wymiarów.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Nie wprowadzono endpointu zadań generowania osadzeń.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleobject | Typstring |
Polemodel | Typstring |
Poledata[].index | Typinteger |
Poledata[].embedding | Typfinite float[] |
Poleusage | Typobject |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |
Aliasy
Aliasy modelu
Ailoot Ultra google/gemini-embedding-2
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · Google: Gemini Embedding 2
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/embeddings·google/gemini-embedding-2:text,token_ids→embedding- Jakich pól używa żądanie?
POST /v1/embeddings·google/gemini-embedding-2:model,input,encoding_format,provider- Jakie limity obowiązują?
POST /v1/embeddings·google/gemini-embedding-2:ctx:8192;input.budget.maximum:8192(bajty UTF8);input.min_items:1