Qwen2 7B Instruct
Qwen2-7B-Instruct to model tekstowy dostrojony do instrukcji, do wielojęzycznego dialogu, kodu, matematyki i rozumowania. Producent dokumentuje kontekst do 131 072 tokenów przy włączonej konfiguracji długiego kontekstu.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsqwen2-7b-instruct - Ailoot Ultra · Anthropic Messages
POST /v1/messagesqwen2-7b-instruct
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.
Qwen2-7B-Instruct to wydanie Qwen2 w rozmiarze 7B, dostrojone do instrukcji, przeznaczone do rozmowy i zadań wyrażanych w języku naturalnym. Jest modelem z wejściem i wyjściem tekstowym: odpowiedź może być wyjaśnieniem, tłumaczeniem, projektem dokumentu lub kodem programu. Producent wskazuje rozumienie języka, generowanie, pracę wielojęzyczną, kod, matematykę i rozumowanie jako główne obszary użycia.
Szczegóły modelu
Qwen2 obejmuje osobne wydania bazowe i dostrojone do instrukcji. Ta karta dotyczy wydania Instruct, a nie bazowego modelu Qwen2-7B lub wydania rodziny opartego na mieszaninie ekspertów. Tabela informacji o modelu producenta podaje 7,07 miliarda parametrów dla modelu w rozmiarze 7B. Jego Transformer dekodera wykorzystuje SwiGLU, bias QKV w mechanizmie uwagi i uwagę z grupowanymi zapytaniami, z tokenizerem przeznaczonym do języków naturalnych i kodu. To wybory architektury i reprezentacji, a nie dodatkowe modalności wejścia.
Ogłoszenie wydania opisuje trenowanie w angielskim i chińskim oraz 27 dodatkowych językach. Obejmują one rosyjski, czeski i polski; niemiecki, francuski i hiszpański; arabski, perski i turecki; japoński i koreański; oraz dalsze języki Azji Południowej i Południowo-Wschodniej. Wielojęzyczny asystent może więc otrzymać instrukcję i materiał źródłowy w różnych językach, lecz nadal powinien określić język, terminologię i odbiorców końcowego rezultatu.
Trenowanie i odrębność Instruct
Po pretreningu producent stosuje nadzorowane dostrajanie i bezpośrednią optymalizację preferencji. Wydanie dostrojone do instrukcji ma odpowiadać na prośbę w rozmowie, a wydanie bazowe pełni inną rolę jako podstawa modelu językowego. Zachowaj wyraźną nazwę wydania podczas wyboru modelu lub porównywania zachowania promptów. Trenowanie modelu do wykonywania instrukcji i podanie precyzyjnej instrukcji w czasie użycia są uzupełniającymi się częściami procesu.
Przygotowanie wejścia konwersacyjnego
Szybki start w karcie modelu oddziela instrukcję systemową od pytania użytkownika i stosuje właściwy szablon czatu przed generowaniem. Przy zadaniu na poziomie aplikacji to samo praktyczne rozróżnienie jest użyteczne: zdefiniuj rolę asystenta i zasady odpowiedzi oddzielnie od fragmentu źródłowego lub kodu, na którym ma pracować. Etykieta tekstowa wpisana w dokument nie zastępuje prawidłowo sformatowanych ról rozmowy w otaczającym interfejsie.
Zadanie wyjaśnienia technicznego może podać funkcję i jeden przykład wejścia, a następnie pytać, co robi każda gałąź i jakie warunki wpływają na wynik. Zadanie programistyczne może określić akceptowane wejście, oczekiwaną wartość zwracaną i ograniczenia zmiany istniejącego zachowania. Poproś o implementację, a po niej o przykłady dla przypadku normalnego i brzegowego. Są to zastosowania udokumentowanych możliwości językowych i programistycznych; generowanie kodu daje wynik tekstowy, a uruchamianie należy do środowiska aplikacji.
Przy wielojęzycznej redakcji podaj oryginalny fragment, odbiorców i krótką listę terminów. Poproś o zmianę zachowującą oryginalne nazwy i warunki, a następnie o krótkie wyjaśnienie zmian. Jest to konkretniejsze niż prośba o poprawę tekstu: określa, jakie znaczenie musi przetrwać i jaki użyteczny wynik należy zwrócić.
Przetwarzanie długich tekstów
Producent dokumentuje kontekst do 131 072 tokenów, ale instrukcje długiego kontekstu są ważne. Wejścia ponad 32 768 tokenów wymagają udokumentowanej konfiguracji rozszerzenia YaRN. Opublikowany przykład stosuje współczynnik skalowania 4,0 z pierwotną liczbą pozycji 32 768. Producent zaznacza, że statyczne rozszerzenie może wpływać na zachowanie przy krótszym tekście, i zaleca włączać je, gdy faktycznie potrzebne jest przetwarzanie długiego kontekstu.
Przygotuj zadanie na długim dokumencie z konkretnym pytaniem, nazwanymi sekcjami źródłowymi i jednoznaczną strukturą wyniku. Na przykład podaj kilka części specyfikacji technicznej i poproś o wymagania związane z konkretną zmianą, zachowując sekcję źródłową przy każdym ustaleniu. Duże okno wejścia przydaje się do utrzymania tych części razem; odpowiedź nadal może być kompaktową tabelą zamiast powtórzenia całego dokumentu.
Ważne granice
Wartość 131 072 tokenów oznacza obsługę rozszerzonego kontekstu, a nie pozwolenie na pominięcie konfiguracji długiego kontekstu. 512 wygenerowanych tokenów w przykładzie szybkiego startu to przykładowe ustawienie, a nie opublikowana maksymalna pojemność wyjścia. To wydanie Instruct jest modelem tekstowym i nie powinno dziedziczyć możliwości obrazów lub wideo z Qwen-VL ani specjalistycznego treningu matematycznego zintegrowanego z narzędziami z Qwen2.5-Math. Wybierz nazwane wydanie i przygotuj tekst do potrzebnego wyjaśnienia, kodu lub dokumentu.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen2-7b-instruct
qwen2-7b-instructStart
Qwen2-7B-Instruct to model tekstowy dostrojony do instrukcji, do wielojęzycznego dialogu, kodu, matematyki i rozumowania. Producent dokumentuje kontekst do 131 072 tokenów przy włączonej konfiguracji długiego kontekstu.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- Tekst
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Wejście
text- Wyjście
text- Format wyjściowy
- json lub SSE
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity qwen2-7b-instruct | Domyślnie— |
Polemessages | Typmessage[] | WymaganieWymagane | Wartości i limity Minimalna liczba elementów: 1 | Domyślnie— |
Polemessages[].role | Typstring | WymaganieWymagane | Wartości i limity Zależy od modelu | Domyślnie— |
Polemessages[].content | Typstring | WymaganieOpcjonalne | Wartości i limity Obowiązuje, gdy: Rozmowa tekstowa | Domyślnie— |
Polestream | Typboolean | WymaganieOpcjonalne | Wartości i limity | Domyślniefalse |
Kombinacje materiałów wejściowych
Tekst · tekst UTF8
messages[].content
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages |
Parametrmaterial_types | Kontrakttext |
Parametrmessages | Kontrakttablica wiadomości o strukturze role/content |
Parametrfile_material | Kontraktrzeczywisty dokument UTF-8 wstawiony jako dosłowny tekst; bez wywnioskowanego ID pliku |
Parametroptional_controls | Kontraktstream |
Parametrcontrol_scope | KontraktRozmowa tekstowa; stream jest wartością logiczną i domyślnie wynosi false. |
Parametroutput_modalities | Kontrakttext |
Parametrhosted_operations | Kontraktfalse |
Parametrmultimodal_input_binding | Kontraktnull |
Aliasy metody: /chat/completions
Cykl życia: synchronous_or_streamed
Wyślij dokładne ID modelu wraz z messages.
Długość kontekstu nie jest limitem wyjścia.
Plik tekstowy może dostarczyć dosłowny tekst; wejścia obrazowe/dźwiękowe/obiekty plików wymagają dokładnego powiązania.
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)
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.000286 / 1K tokenów Wyjście · Tokeny wyjściowe $0.00058 / 1K tokenów Wejście · Odczyt cache $0 / 1K tokenów Wejście · Zapis do cache $0 / 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 · OpenAI Chat
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"qwen2-7b-instruct","messages":[{"role":"user","content":"hello"}],"stream":false}')
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/chat/completions \
-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("choices",[]):
if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="qwen2-7b-instruct", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
save_result(result.to_dict(mode="json"))
Odbieranie i zapisywanie wyników
Ailoot Ultra · OpenAI Chat
json lub SSE
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj każdy wariant i jego treść/wywołania narzędzi/rozumowanie. W SSE składaj przyrosty według indeksu wariantu/narzędzia, zachowując końcowy powód zakończenia i dane użycia.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Polechoices[].index | Typinteger |
Polechoices[].message.content | Typstring|null |
Polechoices[].message.tool_calls | Typtool_call[] |
Polechoices[].message.reasoning_content | Typstring |
Polechoices[].message.reasoning_details | Typobject|array |
Polechoices[].finish_reason | Typstring|null |
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 qwen2-7b-instruct
Aliasy ścieżek metod
/chat/completions
Powiązane ID modeli
Ailoot Ultra · Anthropic Messages POST /v1/messages qwen2-7b-instruct
qwen2-7b-instructStart
Qwen2-7B-Instruct to model tekstowy dostrojony do instrukcji, do wielojęzycznego dialogu, kodu, matematyki i rozumowania. Producent dokumentuje kontekst do 131 072 tokenów przy włączonej konfiguracji długiego kontekstu.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- json · sse
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Wejście
text- Wyjście
json,sse- Format wyjściowy
- JSON lub SSE
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity qwen2-7b-instruct | Domyślnie— |
Polemessages | Typmessage[] | WymaganieWymagane | Wartości i limity | Domyślnie— |
Polemessages[].role | Typstring | WymaganieWymagane | Wartości i limity user, assistant | Domyślnie— |
Polemessages[].content | Typstring | WymaganieWymagane | Wartości i limity | Domyślnie— |
Polemax_tokens | Typinteger | WymaganieWymagane | Wartości i limity | Domyślnie— |
Polestream | Typboolean | WymaganieOpcjonalne | Wartości i limity | Domyślniefalse |
Kombinacje materiałów wejściowych
Tekst · tekst UTF-8
ciąg messages[].content
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages, max_tokens |
Parametroptional_controls | Kontraktstream |
Parametrmaterial_types | Kontrakttext |
Parametrtext_file_material | KontraktOdczytaj rzeczywisty dokument UTF-8 i umieść jego tekst we wskazanym polu input lub w ciągu treści wiadomości. |
Cykl życia: synchronous_or_streamed
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)
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.000286 / 1K tokenów Wyjście · Tokeny wyjściowe $0.00058 / 1K tokenów Wejście · Odczyt cache $0 / 1K tokenów Wejście · Zapis do cache $0 / 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 · Anthropic Messages
{
"model": "qwen2-7b-instruct",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen2-7b-instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
-H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen2-7b-instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError
api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
with urlopen(request, timeout=120) as response:
raw = response.read()
Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
Path('result.json').write_bytes(error.read())
Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
Odbieranie i zapisywanie wyników
Ailoot Ultra · Anthropic Messages
JSON lub SSE
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj wszystkie bloki treści, sygnatury myślenia i rzeczywiste ID użycia narzędzi. Złóż wszystkie przyrosty bloków SSE; pierwszy blok tekstowy nie jest pełnym wyjściem.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleid | Typstring |
Polemodel | Typstring |
Polecontent[] | Typtext|thinking|tool_use|other content block |
Polestop_reason | Typstring|null |
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 qwen2-7b-instruct
Aliasy ścieżek metod
/chat/completions
Powiązane ID modeli
FAQ · Pro/Qwen/Qwen2-7B-Instruct
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/chat/completions·qwen2-7b-instruct:text→textPOST /v1/messages·qwen2-7b-instruct:text→json,sse- Jakich pól używa żądanie?
POST /v1/chat/completions·qwen2-7b-instruct:model,messages,streamPOST /v1/messages·qwen2-7b-instruct:model,messages,max_tokens,stream- Jakie limity obowiązują?
POST /v1/chat/completions·qwen2-7b-instruct:messages.min_items:1