Mistral: Mistral Medium 3.5 (batch)
Mistral Medium 3.5 łączy wykonywanie instrukcji, rozumowanie i programowanie w gęstym modelu przyjmującym tekst i obrazy, o 128 mld parametrów. Oferuje kontekst producenta o wielkości 256 tys. tokenów, ustawienia rozumowania dla każdego żądania, natywne wywoływanie funkcji i uporządkowane wyniki do pracy z dokumentami i agentami.
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.5 to gęsty model firmy Mistral AI o 128 mld parametrów, łączący wykonywanie instrukcji, rozumowanie i programowanie w jednym zestawie wag. Otrzymuje tekst i obrazy oraz zwraca tekst. Producent pozycjonuje go do zadań agentowych i programistycznych, przy czym ten sam checkpoint może udzielić bezpośredniej odpowiedzi w rozmowie albo użyć udokumentowanego trybu rozumowania do bardziej złożonego zadania.
Ujednolicony model i możliwości wizualne
Opublikowana karta podaje 128 mld parametrów w architekturze gęstej i okno kontekstowe o wielkości 256 tys. tokenów. Jego enkoder wizyjny jest trenowany do obsługi różnych rozmiarów i proporcji obrazów. Obrazy mogą dostarczać dowodów do zadania programistycznego lub dokumentowego: zrzut ekranu interfejsu, diagram towarzyszący wymaganiu albo strona zawierająca informacje, które model musi zinterpretować. Wynikiem może być pisemne wyjaśnienie, kod lub uporządkowane pola, a nie wygenerowany obraz.
Producent opisuje obsługę kilkudziesięciu języków, w tym angielskiego, francuskiego, hiszpańskiego, niemieckiego, włoskiego, portugalskiego, niderlandzkiego, chińskiego, japońskiego, koreańskiego i arabskiego. Podkreśla również przestrzeganie promptu systemowego oraz natywne wywoływanie funkcji z wynikiem JSON. Ustal odbiorców, język i reguły odpowiedzi oddzielnie od badanego materiału, aby brzmienie dokumentu źródłowego pozostało dowodem w zadaniu.
Ustawienia rozumowania
Karta dokumentuje dwie wartości intensywności rozumowania dla każdego żądania. Wartość none daje odpowiedź w stylu instrukcyjnym bez trybu rozumowania; high włącza rozumowanie i jest zalecana do złożonych promptów oraz programowania z użyciem agentów. Jest to wybór trybu w obrębie tego samego checkpointu Medium 3.5, a nie inna tożsamość modelu.
Dla wysokiej intensywności rozumowania producent zaleca temperaturę 0.7 i top-p 0.95. Dla none dokumentuje temperatury między 0.0 a 0.7 zależnie od zadania i pozostawienie top-p bez ustawienia lub na 1.0. Są to zalecenia dla tego wydania. Najpierw wybierz cel wyniku: zwięzłą ekstrakcję pól, zmianę kodu z wyjaśnieniem albo porównanie wymagające kilku uzasadnionych decyzji.
Praktyczne zadanie z rozumowaniem może dostarczać wymaganie, implementację i dane wejściowe ujawniające niezgodność. Poproś model o rozpoznanie właściwej ścieżki, wyjaśnienie rozbieżności i zaproponowanie najmniejszej zmiany zachowującej publiczny interfejs. Zażądaj zmienionego kodu oddzielnie od założeń i przykładów. Model generuje propozycję; kompilowanie, uruchamianie i zastosowanie wymagają środowiska programistycznego połączonego z agentem.
Narzędzia, dokumenty i przewidywalne zmiany
Karta usługi producenta wymienia też uporządkowane wyniki, przewidywane wyniki, pytania o dokumenty, prefiksy odpowiedzi, przetwarzanie wsadowe i rozmowy agentowe. Dla ekstrakcji zdefiniuj nazwy pól, typy i sposób traktowania brakujących wartości. Tryb JSON zapewnia uporządkowaną reprezentację, a schemat niestandardowy określa bardziej szczegółową strukturę w połączonym interfejsie. Poproś tylko o rekord, gdy ma go parsować program, i o osobne wyjaśnienie, gdy interpretację ma sprawdzić człowiek.
Odpowiadanie na pytania o dokumenty łączy tekst i strukturę przygotowane przez OCR z rozumieniem modelu językowego. Przy porównaniu wskaż dokumenty i warunek do oceny, a następnie zażądaj każdego ustalenia wraz z jego lokalizacją źródłową. Przydatny wynik może rozdzielać wspólne wymagania, rozbieżności i otwarte pytania. Bezpośrednie pytania o obrazy mogą dotyczyć etykiety wykresu lub elementu interfejsu; zachowanie nagłówków, jednostek i ról obrazów pomaga utrzymać związek odpowiedzi z dostarczonym materiałem.
Przewidywane wyniki są udokumentowane dla zadań, w których znaczna część pożądanej odpowiedzi jest już znana, takich jak ponowne generowanie pliku kodu lub dokumentu z ograniczonymi zmianami. Dostarcz istniejącą treść i wskaż konkretną zmianę, zachowując części, które powinny pozostać. Różni się to od prośby o całkowicie nowy artefakt lub kontynuację od znanego prefiksu odpowiedzi. Funkcje usługi opisują opcje przesyłania i formatowania; nie zmieniają tekstowo-obrazowego wejścia modelu ani jego tekstowego wyjścia.
W przepływie wspomaganym narzędziami aplikacja dostarcza opisy funkcji i parametry, model wybiera funkcję i przygotowuje argumenty, a aplikacja ją wykonuje i zwraca wynik. Narzędzie obliczeniowe może otrzymać wartości odczytane z dostarczonego obrazu, a narzędzie wyszukiwania może dostarczyć brakujące informacje dla kolejnej odpowiedzi. Zachowuj powiązanie wyniku narzędzia z operacją, która go wytworzyła. Rozumowanie agentowe opiera się na tym środowisku; samo generowanie tekstu nie wykonuje działań zewnętrznych.
Przygotowanie długich sesji
Wykorzystuj kontekst o wielkości 256 tys. tokenów na powiązany kod źródłowy, dokumenty i historię rozmowy, jasno utrzymując właściwy cel. Sesja programistyczna może zachować moduł, jego wywołującego i wymagania, jednocześnie żądając jednej zdefiniowanej zmiany. Sesja dokumentowa może utrzymać istotne sekcje razem, zwracając krótką tabelę lub zmieniony fragment. Pojemność kontekstu nie określa osobnej maksymalnej długości odpowiedzi; przykład generowania 1024 tokenów w karcie jest ilustracją, a nie takim limitem.
Producent zaznacza, że starsza opublikowana konfiguracja zawierała błąd długiego kontekstu i że został on poprawiony, także w odniesieniu do pochodnych checkpointów. Przy korzystaniu z wag do długich sesji zachowaj poprawioną konfigurację wydania. Hybrydowych trybów i architektury o 128 mld parametrów Medium 3.5 nie należy przypisywać Medium 3.1 ani osobno nazwanemu checkpointowi draft-head tylko dlatego, że ich nazwy należą do tej samej rodziny.
Ailoot Ultra · Batch POST /v1/batches mistralai/mistral-medium-3-5:batch
mistralai/mistral-medium-3-5:batch
mistralai/mistral-medium-3-5:batchStart
Mistral Medium 3.5 łączy wykonywanie instrukcji, rozumowanie i programowanie w gęstym modelu przyjmującym tekst i obrazy, o 128 mld parametrów. Oferuje kontekst producenta o wielkości 256 tys. tokenów, ustawienia rozumowania dla każdego żądania, natywne wywoływanie funkcji i uporządkowane wyniki do pracy z dokumentami i agentami.
- 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-5: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-5:batch, mistralai/mistral-medium-3-5 | 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.0015 / 1K tokenów Wyjście · Tokeny wyjściowe $0.0075 / 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 |
| 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.0015 / 1K tokenów Wyjście · Tokeny wyjściowe $0.0075 / 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 · 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-5: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-5:batch', 'mistralai/mistral-medium-3-5']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"mistralai/mistral-medium-3-5: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-5:batch
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · Mistral: Mistral Medium 3.5 (batch)
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/batches·mistralai/mistral-medium-3-5:batch:text→text- Jakich pól używa żądanie?
POST /v1/batches·mistralai/mistral-medium-3-5:batch:endpoint,model,requests,completion_window,provider- Jakie limity obowiązują?
POST /v1/batches·mistralai/mistral-medium-3-5:batch:requests.min_items:1