OpenAI: GPT-4o-mini (batch)
GPT-4o Mini wykonuje ściśle określone zadania tekstowe i obrazowe, w tym wyodrębnianie danych z dokumentów, zwięzłe odpowiedzi i wywołania narzędzi aplikacji. Kontekst 128 000 tokenów i Structured Outputs wspierają powtarzalne procesy z jasno określonym wynikiem.
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.
GPT-4o Mini to mały model OpenAI z rodziny GPT-4o do ściśle określonych zadań. Przyjmuje tekst i obrazy, a generuje tekst, w tym Structured Outputs. Przydaje się, gdy aplikacja potrzebuje zwięzłej odpowiedzi na precyzyjnie opisane żądanie: wyodrębnienia pól, opracowania odpowiedzi na podstawie dostarczonych materiałów referencyjnych lub wykonania ograniczonego kroku większego procesu.
Aby przygotować odpowiedź działu wsparcia, podaj otrzymaną wiadomość, właściwe fragmenty zasad i fakty już ustalone w rozmowie. Poproś o krótką propozycję odpowiedzi i wskaż informacje nadal potrzebne od nadawcy. Przy wyodrębnianiu danych z dokumentów zdefiniuj pola, wyjaśnij sposób obsługi brakujących wartości i zachowaj etykietę łączącą każdy wynik ze źródłem. Takie samo podejście może dać klasyfikację, zredagowany fragment lub objaśnienie małej zmiany w kodzie, bez traktowania modelu jako zamiennika otaczającej logiki aplikacji.
Producent podaje okno kontekstu 128 000 tokenów, maksymalny wynik 16 384 tokenów i datę graniczną wiedzy 1 października 2023 roku. Materiał źródłowy, rozmowa i wygenerowany wynik zajmują ten kontekst wspólnie. Zachowaj widoczne istotne wcześniejsze fakty i określ wymagany końcowy materiał. GPT-4o Mini jest osobnym małym modelem, a nie trybem długości odpowiedzi pełnego GPT-4o; jego własna tożsamość i możliwości powinny wyznaczać zadanie, nawet gdy oba modele mają wspólne parametry specyfikacji.
Obrazy mogą dostarczyć zrzut ekranu, stronę dokumentu, fotografię lub diagram. Proces analizy obrazu OpenAI przyjmuje PNG, JPEG, WebP i nieanimowany GIF, z poziomem szczegółowości low, high lub auto dla tej rodziny. Wyższa szczegółowość korzysta z opisanego przez producenta przetwarzania obrazu w kafelkach. Zadbaj o czytelność ważnych etykiet i prawidłową orientację tekstu oraz wyjaśnij, która część obrazu powinna wpłynąć na odpowiedź. Drobne relacje przestrzenne, dokładne liczby obiektów, nietypowe odwzorowania obrazu i część tekstów w pismach innych niż łacińskie są udokumentowanymi trudnościami. Precyzyjne pytanie ułatwia porównanie odpowiedzi dotyczącej obrazu z oryginalnym materiałem dowodowym. W udokumentowanym procesie analizy obrazu OpenAI łączny rozmiar danych żądania jest ograniczony do 512 MB, a jedno żądanie może zawierać do 1 500 obrazów; obrazy i tekst muszą również zmieścić się w kontekście modelu.
Proces pracy z plikami producenta przekazuje modelom analizującym obraz wyodrębniony tekst i obrazy stron z plików PDF. Inne pliki biurowe i tekstowe dostarczają wyodrębniony tekst, dlatego ich osadzone obrazy i wykresy wymagają reprezentacji PDF, gdy te elementy wizualne są istotne. Uzupełnianie danych z arkuszy wykorzystuje do pierwszych 1 000 wierszy każdego arkusza. Każdy plik musi mieć mniej niż 50 MB, a łączny limit żądania wynosi 50 MB. Chat Completions przyjmuje części plikowe PDF; udokumentowany proces Responses obsługuje szerszy zbiór formatów plików. Zachowaj identyfikatory stron, wierszy lub sekcji w materiale używanym do wyodrębniania danych.
Strumieniowanie zwraca tekst przyrostowo. Structured Outputs ogranicza ukończoną odpowiedź do obsługiwanego podzbioru JSON Schema, natomiast żądanie trybu JSON zapewnia tylko poprawność formatu JSON. Nazwij wymagane pola i dopuszczalne wartości, w tym jawny sposób reprezentowania braku dowodów. Aplikacje muszą osobno obsługiwać odmowy i niekompletne odpowiedzi. Schemat może dopasować materiał do następnego etapu, ale wartości nadal muszą odzwierciedlać rzeczywiste źródło, zamiast wymyśloną treścią wypełniać puste pole.
GPT-4o Mini obsługuje wywoływanie funkcji oraz procesy producenta wykorzystujące narzędzia wyszukiwania w sieci, wyszukiwania w plikach, wykonywania kodu i połączeń MCP. Opisz dostępną funkcję, pozwól aplikacji wykonać żądaną operację i zwrócić obserwację, zanim model opracuje kolejną odpowiedź. OpenAI obsługuje też osobne narzędzie generowania obrazów w skonfigurowanym procesie Responses. Obrazy wytworzone przez to narzędzie są osobnymi materiałami; natywny udokumentowany wynik modelu pozostaje tekstem. Wyszukiwanie i użycie narzędzi są skonfigurowanymi czynnościami, a nie dowodem, że każda odpowiedź odwołuje się do aktualnych informacji.
Predicted Outputs umożliwia ponowne wygenerowanie w dużej mierze znanego dokumentu lub pliku kodu z niewielką zmianą. Podaj poprzednią treść i precyzyjną poprawkę, a następnie porównaj wynik z tym żądaniem. Ścieżka przewidywania obsługuje tylko tekst i nie łączy się z wywoływaniem funkcji; wykluczone są również logprobs, max_completion_tokens i kilka innych ustawień. Zwykłe żądanie korzystające z narzędzi jest inną ścieżką, gdy odpowiedź zależy od nowego wyszukania lub obliczenia.
OpenAI dokumentuje dostrajanie tego modelu i opisuje wykorzystanie wyników większego modelu do nauczenia mniejszego GPT-4o Mini wyspecjalizowanego zadania. Ten proces destylacji tworzy model dostosowany do zadania; nie zmienia tożsamości zwykłej odpowiedzi Mini. Przy zwykłym żądaniu ustal zadanie i format wyniku za pomocą jasnych przykładów, a potem precyzyjnym kolejnym poleceniem popraw ten sam wynik. Przydatny końcowy materiał pozostaje powiązany z faktami źródłowymi, docelowym czytelnikiem i etapem aplikacji, który go wykorzystuje.
Ailoot Ultra · Batch POST /v1/batches openai/gpt-4o-mini:batch
openai/gpt-4o-mini:batchStart
GPT-4o Mini wykonuje ściśle określone zadania tekstowe i obrazowe, w tym wyodrębnianie danych z dokumentów, zwięzłe odpowiedzi i wywołania narzędzi aplikacji. Kontekst 128 000 tokenów i Structured Outputs wspierają powtarzalne procesy z jasno określonym wynikiem.
- 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 openai/gpt-4o-mini: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 openai/gpt-4o-mini:batch, openai/gpt-4o-mini | Domyślnie— |
Poleprovider.only | Typstring[] | WymaganieOpcjonalne | Wartości i limity openai | 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.00015 / 1K tokenów Wyjście · Tokeny wyjściowe $0.0006 / 1K tokenów Wejście · Odczyt cache $0.000075 / 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.00015 / 1K tokenów Wyjście · Tokeny wyjściowe $0.0006 / 1K tokenów Wejście · Odczyt cache $0.000075 / 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":"openai/gpt-4o-mini: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 ['openai/gpt-4o-mini:batch', 'openai/gpt-4o-mini']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4o-mini: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 openai/gpt-4o-mini:batch
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · OpenAI: GPT-4o-mini (batch)
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/batches·openai/gpt-4o-mini:batch:text→text- Jakich pól używa żądanie?
POST /v1/batches·openai/gpt-4o-mini:batch:endpoint,model,requests,completion_window,provider- Jakie limity obowiązują?
POST /v1/batches·openai/gpt-4o-mini:batch:requests.min_items:1