Qwen2 7B Instruct
Qwen2-7B-Instruct é um modelo textual ajustado para seguir instruções, para diálogo multilingue, programação, matemática e raciocínio. O fabricante documenta contexto até 131 072 tokens quando a configuração de contexto longo está ativada.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsqwen2-7b-instruct - Ailoot Ultra · Anthropic Messages
POST /v1/messagesqwen2-7b-instruct
Sobre o modelo
Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.
Qwen2-7B-Instruct é a edição de dimensão 7B de Qwen2, ajustada para seguir instruções, para conversação e tarefas expressas em linguagem natural. É um modelo com entrada e saída de texto: a resposta pode ser uma explicação, uma tradução, um rascunho de documento ou código de programa. O fabricante identifica compreensão de linguagem, geração, trabalho multilingue, programação, matemática e raciocínio como as principais áreas de utilização.
Detalhes do modelo
Qwen2 inclui versões base e ajustadas para seguir instruções separadas. Esta ficha diz respeito à edição Instruct, e não ao modelo base Qwen2-7B ou à versão de mistura de especialistas da família. A tabela de informação do modelo do fabricante indica 7,07 mil milhões de parâmetros para o modelo de dimensão 7B. O seu Transformer descodificador usa SwiGLU, bias QKV da atenção e atenção com consultas agrupadas, com um tokenizador concebido para linguagens naturais e código. São escolhas de arquitetura e representação, e não modalidades de entrada adicionais.
O anúncio de lançamento descreve treino em inglês e chinês, mais 27 idiomas adicionais. Incluem russo, checo e polaco; alemão, francês e espanhol; árabe, persa e turco; japonês e coreano; e outros idiomas do Sul e Sudeste Asiático. Um assistente multilingue pode, por isso, receber uma instrução e material de origem em idiomas diferentes, mas deve ainda especificar o idioma, a terminologia e o público do resultado final.
Treino e distinção Instruct
Após o pré-treino, o fabricante usa fine-tuning supervisionado e otimização direta de preferências. A edição ajustada para seguir instruções destina-se a responder a um pedido numa conversa, enquanto a edição base tem um papel diferente como fundamento de um modelo de linguagem. Mantenha o nome da edição explícito ao selecionar um modelo ou comparar o comportamento dos prompts. Treinar um modelo para seguir instruções e fornecer uma instrução precisa no momento da utilização são partes complementares desse fluxo de trabalho.
Preparação de uma entrada conversacional
O guia de início rápido da ficha do modelo separa uma instrução de sistema da pergunta do utilizador e aplica o template de conversação correspondente antes da geração. A mesma distinção prática é útil numa tarefa ao nível da aplicação: defina o papel do assistente e as regras da resposta separadamente da passagem ou do código com que deve trabalhar. Uma etiqueta textual escrita dentro de um documento não substitui papéis de conversação corretamente formatados na interface que envolve o modelo.
Uma tarefa de explicação técnica pode fornecer uma função e um exemplo de entrada e perguntar depois o que faz cada ramo e quais as condições que afetam o resultado. Uma tarefa de programação pode especificar a entrada aceite, o valor de retorno esperado e as restrições à alteração do comportamento existente. Peça a implementação seguida de exemplos para um caso normal e um caso limite. São aplicações das capacidades documentadas de linguagem e programação; gerar código é um resultado textual, enquanto executá-lo pertence ao ambiente da aplicação.
Para edição multilingue, forneça a passagem original, o público de destino e uma pequena lista de terminologia. Peça uma revisão que preserve os nomes e as condições originais, seguida de uma breve explicação das alterações. É mais específico do que pedir para melhorar o texto: define o significado que deve permanecer e a saída utilizável que deve ser devolvida.
Processamento de textos longos
O fabricante documenta suporte para contexto até 131 072 tokens, mas as instruções para contexto longo são relevantes. Entradas que ultrapassem 32 768 tokens requerem a configuração de extensão YaRN documentada. O exemplo publicado usa um fator de escalonamento de 4,0 com uma definição original de posições de 32 768. O fabricante nota que a configuração de extensão estática pode afetar o comportamento em textos mais curtos e recomenda ativá-la quando for realmente necessário processamento com contexto longo.
Prepare uma tarefa com documentos longos usando uma pergunta focada, secções de origem com nomes e uma estrutura de saída explícita. Por exemplo, forneça várias partes de uma especificação técnica e peça os requisitos relevantes para uma alteração específica, mantendo a secção de origem junto de cada conclusão. Uma janela de entrada grande é útil para conservar essas partes em conjunto; a resposta pode continuar a ser uma tabela compacta, em vez de uma reconstituição de todo o documento.
Limites importantes
O valor de 131 072 tokens indica suporte para contexto alargado, e não autorização para ignorar a configuração de contexto longo. Os 512 tokens gerados no exemplo de início rápido são uma definição de exemplo, e não uma capacidade máxima de saída publicada. Esta versão Instruct é um modelo textual e não deve herdar capacidades de imagem ou vídeo de Qwen-VL, nem o treino matemático especializado com ferramentas integradas de Qwen2.5-Math. Escolha a edição identificada pelo nome e prepare o texto para a explicação, o código ou o documento específicos de que precisa.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen2-7b-instruct
qwen2-7b-instructIntrodução
Qwen2-7B-Instruct é um modelo textual ajustado para seguir instruções, para diálogo multilingue, programação, matemática e raciocínio. O fabricante documenta contexto até 131 072 tokens quando a configuração de contexto longo está ativada.
- Entradas aceites
- Texto
- Resultados
- Texto
Disponível no Ailoot · entradas e métodos
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Entrada
text- Saída
text- Formato de saída
- json ou SSE
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites qwen2-7b-instruct | Predefinição— |
Campomessages | Tipomessage[] | RequisitoObrigatório | Valores e limites Número mínimo de elementos: 1 | Predefinição— |
Campomessages[].role | Tipostring | RequisitoObrigatório | Valores e limites Depende do modelo | Predefinição— |
Campomessages[].content | Tipostring | RequisitoOpcional | Valores e limites Aplica-se quando: Conversação textual | Predefinição— |
Campostream | Tipoboolean | RequisitoOpcional | Valores e limites | Predefiniçãofalse |
Combinações de materiais de entrada
Texto · Texto UTF8
messages[].content
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, messages |
Parâmetromaterial_types | Contratotext |
Parâmetromessages | ContratoLista de mensagens com estrutura role/content |
Parâmetrofile_material | ContratoDocumento UTF-8 real inserido como texto literal; nenhum ID de ficheiro inferido |
Parâmetrooptional_controls | Contratostream |
Parâmetrocontrol_scope | ContratoConversação textual; stream é um booleano e tem false como predefinição. |
Parâmetrooutput_modalities | Contratotext |
Parâmetrohosted_operations | Contratofalse |
Parâmetromultimodal_input_binding | Contratonull |
Aliases do método: /chat/completions
Ciclo de vida: synchronous_or_streamed
Envie o ID exato do modelo com messages.
O comprimento do contexto não é um limite de saída.
Um ficheiro de texto pode fornecer texto literal; as entradas de imagem/áudio/objeto de ficheiro exigem uma associação exata.
Tarifários
As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.
- Modo rápido
- Não especificado Quando o modo rápido está selecionado
- Modo flex
- Não especificado Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)
Tarifas Ailoot
Preços por configuração
| Configuração | Tabela de tarifas | Custo |
|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Custo Entrada · Tokens de entrada $0.000286 / 1K tokens Saída · Tokens de saída $0.00058 / 1K tokens Entrada · Leitura da cache $0 / 1K tokens Entrada · Escrita na cache $0 / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →
Exemplos de pedidos
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"))
Receber e guardar os resultados
Ailoot Ultra · OpenAI Chat
json ou SSE
Guardar todos os resultados concluídos
Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.
Conserve cada opção com o conteúdo, as chamadas de ferramentas e o raciocínio. Em SSE, junte os deltas por índice de opção e ferramenta e mantenha o motivo final de conclusão e os dados de utilização.
Se for necessário verificar a resposta original
Conserve os ID e cabeçalhos de pedido/resposta. Não é fornecido um URL genérico para obter uma tarefa textual.
Campos da resposta
| Campo | Tipo |
|---|---|
Campochoices[].index | Tipointeger |
Campochoices[].message.content | Tipostring|null |
Campochoices[].message.tool_calls | Tipotool_call[] |
Campochoices[].message.reasoning_content | Tipostring |
Campochoices[].message.reasoning_details | Tipoobject|array |
Campochoices[].finish_reason | Tipostring|null |
Campousage | Tipoobject |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |
Aliases
Aliases do modelo
Ailoot Ultra qwen2-7b-instruct
Aliases dos caminhos dos métodos
/chat/completions
IDs de chamada relacionados
Ailoot Ultra · Anthropic Messages POST /v1/messages qwen2-7b-instruct
qwen2-7b-instructIntrodução
Qwen2-7B-Instruct é um modelo textual ajustado para seguir instruções, para diálogo multilingue, programação, matemática e raciocínio. O fabricante documenta contexto até 131 072 tokens quando a configuração de contexto longo está ativada.
- Entradas aceites
- Texto
- Resultados
- json · sse
Disponível no Ailoot · entradas e métodos
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Entrada
text- Saída
json,sse- Formato de saída
- JSON ou SSE
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites qwen2-7b-instruct | Predefinição— |
Campomessages | Tipomessage[] | RequisitoObrigatório | Valores e limites | Predefinição— |
Campomessages[].role | Tipostring | RequisitoObrigatório | Valores e limites user, assistant | Predefinição— |
Campomessages[].content | Tipostring | RequisitoObrigatório | Valores e limites | Predefinição— |
Campomax_tokens | Tipointeger | RequisitoObrigatório | Valores e limites | Predefinição— |
Campostream | Tipoboolean | RequisitoOpcional | Valores e limites | Predefiniçãofalse |
Combinações de materiais de entrada
Texto · Texto UTF-8
Cadeia de caracteres messages[].content
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, messages, max_tokens |
Parâmetrooptional_controls | Contratostream |
Parâmetromaterial_types | Contratotext |
Parâmetrotext_file_material | ContratoLeia o documento UTF-8 real e coloque o texto na entrada indicada ou na cadeia de conteúdo da mensagem. |
Ciclo de vida: synchronous_or_streamed
Tarifários
As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.
- Modo rápido
- Não especificado Quando o modo rápido está selecionado
- Modo flex
- Não especificado Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)
Tarifas Ailoot
Preços por configuração
| Configuração | Tabela de tarifas | Custo |
|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Custo Entrada · Tokens de entrada $0.000286 / 1K tokens Saída · Tokens de saída $0.00058 / 1K tokens Entrada · Leitura da cache $0 / 1K tokens Entrada · Escrita na cache $0 / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →
Exemplos de pedidos
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))
Receber e guardar os resultados
Ailoot Ultra · Anthropic Messages
JSON ou SSE
Guardar todos os resultados concluídos
Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.
Conserve todos os blocos de conteúdo, as assinaturas de raciocínio e os ID reais de utilização de ferramentas. Junte todos os deltas de blocos SSE; o primeiro bloco de texto não é a saída completa.
Se for necessário verificar a resposta original
Conserve os ID e cabeçalhos de pedido/resposta. Não é fornecido um URL genérico para obter uma tarefa textual.
Campos da resposta
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campomodel | Tipostring |
Campocontent[] | Tipotext|thinking|tool_use|other content block |
Campostop_reason | Tipostring|null |
Campousage | Tipoobject |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |
Aliases
Aliases do modelo
Ailoot Ultra qwen2-7b-instruct
Aliases dos caminhos dos métodos
/chat/completions
IDs de chamada relacionados
FAQ · Pro/Qwen/Qwen2-7B-Instruct
- Que entradas e resultados estão disponíveis?
POST /v1/chat/completions·qwen2-7b-instruct:text→textPOST /v1/messages·qwen2-7b-instruct:text→json,sse- Que campos utiliza o pedido?
POST /v1/chat/completions·qwen2-7b-instruct:model,messages,streamPOST /v1/messages·qwen2-7b-instruct:model,messages,max_tokens,stream- Que limites se aplicam?
POST /v1/chat/completions·qwen2-7b-instruct:messages.min_items:1