Mistral: Mistral Medium 3.1 (batch)
Mistral Medium 3.1 to model przyjmujący tekst i obrazy do odpowiedzi w rozmowie, pytań o dokumenty i uporządkowanej ekstrakcji. Kontekst producenta o wielkości 128 tys. tokenów oraz wymienione funkcje wywoływania funkcji, przewidywanych wyników i prefiksów wspierają wyjaśnienia oparte na źródłach i ukierunkowane przepływy edycyjne.
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.
Mistral Medium 3.1 to multimodalna edycja Mistral AI do rozumienia tekstu i materiałów wizualnych. Producent opisuje tę rewizję jako poprawiającą ton i skuteczność w linii Medium 3. Przyjmuje tekst i obrazy oraz generuje tekst: wyjaśnienie, odpowiedź o dokumencie, uporządkowany rekord lub proponowane wywołanie funkcji. Stały identyfikator tej edycji u producenta to mistral-medium-2508.
Kontekst i konkretna edycja
Strona modelu dokumentuje okno kontekstowe o wielkości 128 tys. tokenów. Wykorzystaj je, aby utrzymać razem powiązane fragmenty źródłowe, dowody obrazowe, rozmowę i zadanie użytkownika. Określ role dokumentów i pytanie do rozstrzygnięcia przed dostarczeniem dużego zbioru. Długi kontekst może wspierać ukierunkowane porównanie, podczas gdy końcowy artefakt pozostaje krótką tabelą lub zmienioną sekcją.
Medium 3.1 zachowuje własną specyfikację. Kontekstu o wielkości 256 tys. tokenów, gęstej architektury o 128 mld parametrów i konfigurowalnych trybów hybrydowego rozumowania opisanych dla Medium 3.5 nie należy przypisywać temu wpisowi. Strona 3.1 nie podaje liczby parametrów ani osobnej wartości maksymalnej długości odpowiedzi, którą można bezpiecznie zastąpić danymi późniejszego modelu.
Uporządkowane wyniki i funkcje
Producent wymienia uporządkowane wyniki, wywoływanie funkcji i przewidywane wyniki wśród funkcji tej edycji. Dla zadania uporządkowanej ekstrakcji zdefiniuj wymagane pola, oczekiwane typy i sposób traktowania informacji nieobecnych w źródle. Rekord może zawierać identyfikator dokumentu, wyodrębnione stwierdzenie, jego lokalizację źródłową i pytanie, które pozostaje. Poproś wyłącznie o rekord, gdy ma go parsować program, albo zachowaj osobne wyjaśnienie tekstowe, gdy ktoś musi sprawdzić interpretację.
Wspólna dokumentacja Mistral dotycząca uporządkowanych wyników rozróżnia tryb JSON i schemat niestandardowy. Tryb JSON wymaga wyraźnej instrukcji dotyczącej pożądanego formatu JSON, a ścieżka niestandardowa definiuje bardziej szczegółową strukturę. Jest to formatowanie wyniku tekstowego, a nie nowa modalność treści lub działanie zewnętrzne.
Dla funkcji aplikacja definiuje dostępną operację i argumenty, model wybiera odpowiednie wywołanie i przygotowuje wartości, a aplikacja je wykonuje. Jego wynik staje się następnie informacją dla kolejnej odpowiedzi. Asystent dokumentowy może użyć wyszukiwania, aby uzyskać brakujące dane referencyjne, ale tylko jeśli otaczająca aplikacja dostarcza takie wyszukiwanie i zwraca jego rzeczywisty wynik. Zachowuj powiązanie proponowanego wywołania i zwróconych danych.
Przewidywane zmiany i prefiksy odpowiedzi
Przewidywane wyniki są przydatne, gdy większość pożądanego rezultatu jest już znana, jak w przypadku dokumentu lub pliku kodu wymagającego ograniczonej zmiany. Dostarcz istniejącą treść i precyzyjnie opisz zmianę, w tym to, co musi pozostać niezmienione. Żądanie może aktualizować terminologię jednej sekcji lub zastępować jeden szczegół implementacji przy zachowaniu reszty dokumentu. Predykcja zawiera oczekiwaną treść wyjściową, a nie ukończoną zmianę zastosowaną w pliku.
Strona modelu wymienia też kontynuację prefiksu odpowiedzi. W dokumentacji czatu producenta prefiks dostarcza znany początek odpowiedzi asystenta, po którym generowanie jest kontynuowane. Znany początek i przewidywana treść rozwiązują różne problemy przygotowania. Przetwarzanie wsadowe i interfejsy agenta/rozmowy są podobnie funkcjami przepływu pracy, a nie osobnymi edycjami obrazowymi, dźwiękowymi lub rozumowania Medium 3.1.
Pytania o dokumenty i materiały wizualne
Wymieniony przepływ document-QnA łączy tekst, strukturę i formatowanie przygotowane przez OCR z analizą modelu językowego. Pytaj o konkretny warunek, fragment lub relację wymagane w zadaniu. Porównanie może wskazywać dokumenty źródłowe i żądać wspólnych stwierdzeń, konfliktów i nierozstrzygniętych szczegółów, zachowując lokalizację źródłową obok każdego ustalenia.
Przewodnik wizji producenta wyraźnie obejmuje Medium 3.1. Bezpośrednie pytanie wizualne może dostarczać czytelny wykres, obraz dokumentu lub zrzut ekranu i pytać, jakie widoczne dowody potwierdzają wniosek. Zachowaj osie, jednostki, etykiety i kontekst wokół przyciętego pola. Jeśli dostarczono kilka obrazów, wskaż ich kolejność i rolę, zamiast pozostawiać modelowi wywnioskowanie, który jest oryginałem, rewizją lub odniesieniem.
Na przykład połącz pisemne wymaganie procesu ze zrzutem ekranu i poproś o tabelę widocznych zgodności, różnic i pytań wymagających dodatkowych informacji. Inne zadanie może dostarczać dwie wersje dokumentu i prosić o zmieniony fragment, który zachowuje ich wspólne warunki, rozwiązując nazwaną niespójność. Są to proponowane zastosowania udokumentowanych możliwości wizualnych, dokumentowych i edycyjnych, z wymaganym wynikiem zdefiniowanym z góry.
Przygotowanie końcowego artefaktu
Nadaj asystentowi jasną rolę, materiał źródłowy do wykorzystania i postać odpowiedzi. Odróżniaj trwałe reguły odpowiedzi od badanego dokumentu i określ język końcowy oraz terminologię. Przydatna odpowiedź może rozdzielać wyodrębniony fakt, jego źródło i interpretację, ułatwiając sprawdzenie w porównaniu z jednym scalonym podsumowaniem.
Udokumentowany wynik pozostaje tekstem. Narzędzia zewnętrzne, zmiany plików i dalsze przetwarzanie dokumentów należą do aplikacji połączonej z rozmową. Zachowaj wskazaną edycję Medium 3.1 i jej kontekst o wielkości 128 tys. tokenów oraz żądaj wyjaśnienia, uporządkowanego rekordu lub ukierunkowanej rewizji rzeczywiście potrzebnych w kolejnym kroku.
Ailoot Ultra · Batch POST /v1/batches mistralai/mistral-medium-3.1:batch
mistralai/mistral-medium-3.1:batch
mistralai/mistral-medium-3.1:batchStart
Mistral Medium 3.1 to model przyjmujący tekst i obrazy do odpowiedzi w rozmowie, pytań o dokumenty i uporządkowanej ekstrakcji. Kontekst producenta o wielkości 128 tys. tokenów oraz wymienione funkcje wywoływania funkcji, przewidywanych wyników i prefiksów wspierają wyjaśnienia oparte na źródłach i ukierunkowane przepływy edycyjne.
- 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 mistralai/mistral-medium-3.1: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 mistralai/mistral-medium-3.1:batch, mistralai/mistral-medium-3.1 | Domyślnie— |
Poleprovider.only | Typstring[] | WymaganieOpcjonalne | Wartości i limity mistral | 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.0004 / 1K tokenów Wyjście · Tokeny wyjściowe $0.002 / 1K tokenów Wejście · Odczyt cache $0.00004 / 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.0004 / 1K tokenów Wyjście · Tokeny wyjściowe $0.002 / 1K tokenów Wejście · Odczyt cache $0.00004 / 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":"mistralai/mistral-medium-3.1: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 ['mistralai/mistral-medium-3.1:batch', 'mistralai/mistral-medium-3.1']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"mistralai/mistral-medium-3.1: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 mistralai/mistral-medium-3.1:batch
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · Mistral: Mistral Medium 3.1 (batch)
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/batches·mistralai/mistral-medium-3.1:batch:text→text- Jakich pól używa żądanie?
POST /v1/batches·mistralai/mistral-medium-3.1:batch:endpoint,model,requests,completion_window,provider- Jakie limity obowiązują?
POST /v1/batches·mistralai/mistral-medium-3.1:batch:requests.min_items:1