Google: Gemini 3.1 Flash Lite (batch)
Gemini 3.1 Flash-Lite to stabilny multimodalny model Google do tłumaczenia, transkrypcji, klasyfikacji i prostej ekstrakcji na dużą skalę. Przyjmuje tekst, obrazy, audio, wideo i PDF, a zwraca tekst, z myśleniem, narzędziami i wyjściem strukturalnym. Dokładne limity wejścia/wyjścia wynoszą 1,048,576/65,536 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 3.1 Flash-Lite to stabilny, lekki multimodalny model tekstowy Google do częstych, dobrze zdefiniowanych zadań. Opiera się na Gemini 3 Pro. Tłumaczenie i klasyfikacja są głównymi zastosowaniami; inne przydatne zadania obejmują transkrypcję, podsumowania dokumentów, ekstrakcję encji i klasyfikację do wyboru modelu. Tekst, obrazy, audio, wideo i PDF mogą dostarczać materiału źródłowego, a wynikiem jest tekst. Przydatny opis wymaga jednej operacji i jednej postaci końcowej, takiej jak przetłumaczona wiadomość lub rekord pól znalezionych w dokumencie.
Dla tłumaczenia podaj tekst źródłowy, język docelowy, odbiorców i terminologię, która powinna pozostać nienaruszona. Przykład Google używa instrukcji zwracających wyłącznie tłumaczenie. Przy tłumaczeniu wiadomości do pomocy technicznej zachowaj nazwy produktów i odwołania do zamówień, tłumacząc resztę naturalnie. Określ sposób traktowania niejednoznaczności, aby wynik nie dodawał daty, obietnicy lub szczegółu nieobecnego w źródle. Dostosuj żądaną formę do miejsca przeznaczenia, na przykład krótkiej odpowiedzi lub oznaczonego rekordu tłumaczenia.
Dla transkrypcji dostarcz nagranie i określ, czy odpowiedź ma zawierać wypowiedziane słowa, czytelny zredagowany transkrypt czy podsumowanie. Są to różne wyniki. Wskaż odpowiedni przedział, gdy długie nagranie zawiera tylko jeden fragment potrzebny do zadania. Przykład deweloperski producenta przekazuje audio bezpośrednio i prosi o transkrypt tekstowy. Sprawdzaj nazwy, liczby i niejasne fragmenty względem nagrania, zachowując oryginalne źródło do kontroli. Ten ogólny multimodalny profil tekstowy sam w sobie nie oznacza wyjścia audio ani dedykowanego wyniku diaryzacji mówców.
Dla klasyfikacji lub ekstrakcji zdefiniuj kategorie, schemat i regułę brakujących wartości. Przewodnik deweloperski pokazuje strukturalny JSON do analizy opinii klienta, z potwierdzającym cytatem i zdefiniowanymi polami. Rekord strukturalny może zawierać wspomniany produkt, kategorię problemu i zdanie uzasadniające wybór. Uwzględnij reprezentatywny przypadek, który powinien pozostać nieznany zamiast zostać na siłę przypisany do kategorii. Poprawny składniowo rekord nadal wymaga porównania z rzeczywistym tekstem źródłowym.
Przetwarzanie dokumentów może zamienić PDF w zwięzłe podsumowanie lub rekord pól. Określ pytanie i zachowaj odwołania do stron lub sekcji, gdy ustalenie wymaga sprawdzenia. Przegląd tabeli powinien określać istotne kolumny i regułę; zadanie wizualne powinno wskazywać etykietę lub obszar potrzebny do odpowiedzi. Routing modeli jest kolejnym udokumentowanym zastosowaniem: model klasyfikuje złożoność żądania i zwraca dozwolony wybór. Połączona aplikacja, a nie sam tekst klasyfikacji, decyduje, co uruchomić dalej.
Myślenie jest obsługiwane, a producent pokazuje wyższy wysiłek dla zadań korzystających z większej analizy. Dokładna stabilna strona wymienia także wywoływanie funkcji, wykonywanie kodu, wyszukiwanie plików, ugruntowanie przez wyszukiwanie, ugruntowanie Maps, kontekst URL i wyjście strukturalne. Computer Use nie jest obsługiwane w tym stabilnym profilu 3.1; późniejszy profil 3.5 Flash-Lite ma inną tabelę możliwości. Jasno określ cele i parametry narzędzi, a następnie kontynuuj na podstawie rzeczywiście zwróconych wyników. Sugestia funkcji nie potwierdza wykonania operacji.
Natywna karta modelu podaje kontekst do 1M i wyjście tekstowe 64K; stabilna tabela API określa 1,048,576 tokenów wejściowych i 65,536 tokenów wyjściowych. Uwzględnij instrukcje, rozmowę i media źródłowe w przygotowaniu wejścia oraz poproś o wyjście o wielkości odpowiedniej dla zamierzonego rezultatu. Dla tego profilu producenta udokumentowano buforowanie, przetwarzanie wsadowe, Flex i Priority. Przy powtarzalnych niezależnych pozycjach przenoś identyfikator wejścia do wyniku i zachowuj spójny schemat, aby można było wykryć brakującą odpowiedź.
Ten stabilny identyfikator modelu jest odrębny od Gemini 3.1 Flash-Lite Preview i późniejszych edycji Flash-Lite. Przy przygotowaniu powtarzalnego przetwarzania zachowuj dokładną edycję, zamiast traktować znajomą nazwę rodziny jako gwarancję stałej rewizji. Sprawdzaj tłumaczenia pod kątem zachowanego znaczenia i terminów, transkrypty względem audio, a wyodrębnione pola względem dokumentu. Praktyczną rolą profilu jest multimodalne przetwarzanie tekstu o jasno określonym zakresie i wyniku, z pozostawieniem rozumowania szerszego zadania lub działań zewnętrznych odpowiedniemu kolejnemu etapowi.
Ailoot Ultra · Batch POST /v1/batches google/gemini-3.1-flash-lite:batch
google/gemini-3.1-flash-lite:batch
google/gemini-3.1-flash-lite:batchStart
Gemini 3.1 Flash-Lite to stabilny multimodalny model Google do tłumaczenia, transkrypcji, klasyfikacji i prostej ekstrakcji na dużą skalę. Przyjmuje tekst, obrazy, audio, wideo i PDF, a zwraca tekst, z myśleniem, narzędziami i wyjściem strukturalnym. Dokładne limity wejścia/wyjścia wynoszą 1,048,576/65,536 tokenów.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- Tekst
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Batch POST /v1/batches
- Wejście
text- Wyjście
text- Format wyjściowy
- JSON bezpośrednio w results[].response.body
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Poleendpoint | Typstring | WymaganieWymagane | Wartości i limity /v1/chat/completions | Domyślnie— |
Polemodel | Typstring | WymaganieWymagane | Wartości i limity google/gemini-3.1-flash-lite:batch | Domyślnie— |
Polerequests | Typbatch_item[] | WymaganieWymagane | Wartości i limity Minimalna liczba elementów: 1 | Domyślnie— |
Polerequests[].custom_id | Typstring | WymaganieWymagane | Wartości i limity | Domyślnie— |
Polerequests[].body.messages | Typmessage[] | WymaganieWymagane | Wartości i limity | Domyślnie— |
Polecompletion_window | Typstring | WymaganieOpcjonalne | Wartości i limity 24h | Domyślnie— |
Poleprovider | Typobject|null | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
Polerequests[].body.model | Typstring | WymaganieOpcjonalne | Wartości i limity google/gemini-3.1-flash-lite:batch, google/gemini-3.1-flash-lite | Domyślnie— |
Poleprovider.only | Typstring[] | WymaganieOpcjonalne | Wartości i limity google-vertex/global | Domyślnie— |
Poleprovider.allow_fallbacks | Typboolean|null | WymaganieOpcjonalne | Wartości i limity false, null | Domyślnie— |
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktendpoint, model, requests |
Parametrmaterial_types | Kontrakttext |
Parametrrepresentation | Kontraktrequests[] bezpośrednio w żądaniu; każdy element zawiera custom_id i body |
Parametrrequest_endpoint_profile | Kontrakt/v1/chat/completions |
Parametrfile_material | KontraktWywołujący może lokalnie wczytać rzeczywisty plik JSONL w kodowaniu UTF-8 do requests[]. Nie używa się przeznaczenia przesyłanego pliku, input_file_id ani odwołania do pliku. Brak materiałów klienta lub ich pusta zawartość zatrzymują przygotowanie przed POST. |
Parametrserialization_order | Kontraktendpoint, model, provider (jeśli podano), completion_window (jeśli podano), requests na końcu |
Parametroptional_controls | Kontraktprovider.only, provider.allow_fallbacks, completion_window |
Parametrschema_scope | KontraktTreści żądań tekstowych Chat Completions w udokumentowanej strukturze Batch z danymi bezpośrednio w żądaniu. |
Cykl życia: asynchronous
GET /v1/batches/{operation_id} · Rzeczywista wartość response.id zwrócona przy pierwotnym utworzeniu; ten sam użytkownik, klucz i grupa
Cennik
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Nie określono Gdy wybrany jest tryb szybki
- Tryb flex
- Nie określono Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
- Wycena jawnej pamięci podręcznej
- Niewłączone Gdy zażądano jawnej pamięci podręcznej
Stawki Ailoot
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Tokeny kontekstu, więcej niż | Tokeny kontekstu, do podanej wartości włącznie | Opłata |
|---|---|---|---|---|
| KonfiguracjaPodstawowe stawki za tokeny | Tabela stawekStawka podstawowa | Tokeny kontekstu, więcej niż— | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe $0.00025 / 1K tokenów Wyjście · Tokeny wyjściowe $0.0015 / 1K tokenów Wejście · Odczyt cache $0.000025 / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
| KonfiguracjaPrzedział długości żądania 1 | Tabela stawek— | Tokeny kontekstu, więcej niż0 | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe $0.00025 / 1K tokenów Wyjście · Tokeny wyjściowe $0.0015 / 1K tokenów Wejście · Odczyt cache $0.000025 / 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 · Batch
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"google/gemini-3.1-flash-lite:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['google/gemini-3.1-flash-lite:batch', 'google/gemini-3.1-flash-lite']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"google/gemini-3.1-flash-lite:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
Odbieranie i zapisywanie wyników
Ailoot Ultra · Batch
JSON bezpośrednio w results[].response.body
GET /v1/batches/{operation_id}
Sprawdź status zadania
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj pełny pierwotny JSON stanu, każdy wynik i custom_id oraz pełną treść odpowiedzi lub błędu. Zapisz ukończone wyniki z results[] jako JSONL bez filtrowania.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj pierwotny identyfikator operacji. Odpowiedź 503 result_pending_check zawiera X-Should-Retry:false; nigdy nie wysyłaj ponownie pierwotnego żądania Batch, którego wynik jest nieznany.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleresults[].custom_id | Typstring |
Poleresults[].response.body.choices[].message.content | Typstring|null |
Poleresults[].error | Typobject|null |
Poleusage | Typobject|null |
Poleid | Typstring |
Polemodel | Typstring |
Poleendpoint | Typstring |
Polestatus | Typstring |
Polerequest_counts | Typobject |
Poleresults[].id | Typstring |
Poleresults[].response.status_code | Typinteger |
Poleresults[].response.request_id | Typstring |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowa udokumentowana struktura z danymi bezpośrednio w żądaniu, zduplikowane klucze, problem z tożsamością elementu lub konflikt ze skonfigurowanymi możliwościami modelu. | Następny krokPopraw wskazane pola przed wysłaniem jakiegokolwiek nowego żądania. |
Odpowiedź401 · authentication_error | WarunekNieprawidłowy klucz API. | Następny krokUżyj autoryzowanego klucza Ailoot. |
Odpowiedź403 · permission_error | WarunekGrupa Batch jest niedostępna. | Następny krokSprawdź uprawnienia klucza i grupy. |
Odpowiedź422 · invalid_request_error | WarunekBatch korzysta z rozliczania z salda; utworzenie w ramach subskrypcji jest odrzucane. | Następny krokUżyj autoryzowanej grupy rozliczanej z salda. |
Odpowiedź422 · price_unavailable | WarunekNie można wycenić danych wejściowych Batch. | Następny krokZachowaj odpowiedź; użyj danych wejściowych udokumentowanych dla tej rodziny API. |
Odpowiedź402 · billing_error | WarunekRezerwa dla Batch jest niedostępna. | Następny krokRozwiąż problem dopuszczenia żądania przed wysłaniem nowego. |
Odpowiedź503 · price_unavailable | WarunekCena metody Batch lub stawki natywne są niedostępne. | Następny krokZachowaj odpowiedź; nie zastępuj cen innymi. |
Odpowiedź503 · api_error | WarunekDokładna trasa dostawcy jest niedostępna. | Następny krokZachowaj odpowiedź na potrzeby naprawy trasy. |
Odpowiedź503 · result_pending_check | WarunekPierwotny wynik wymaga sprawdzenia; X-Should-Retry:false. | Następny krokZachowaj pierwotny operation_id/id i odczytuj stan operacji; nigdy nie powtarzaj pierwotnego POST. |
Odpowiedź404 · not_found | WarunekOperacja sprawdzania stanu Batch nie istnieje lub należy do innej tożsamości. | Następny krokUżyj dokładnego pierwotnego id oraz tego samego użytkownika, klucza i grupy. |
Aliasy
Aliasy modelu
Ailoot Ultra google/gemini-3.1-flash-lite:batch
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · Google: Gemini 3.1 Flash Lite (batch)
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/batches·google/gemini-3.1-flash-lite:batch:text→text- Jakich pól używa żądanie?
POST /v1/batches·google/gemini-3.1-flash-lite:batch:endpoint,model,requests,completion_window,provider- Jakie limity obowiązują?
POST /v1/batches·google/gemini-3.1-flash-lite:batch:requests.min_items:1