Doubao-1.5-Thinking-Vision-Pro-0428
Doubao 1.5 Thinking Vision Pro 250428 é o lançamento de visão e linguagem identificado como Seed1.5-VL para imagens, vídeo e perguntas escritas. O fabricante descreve OCR, interpretação de diagramas, localização de referências visuais, compreensão espacial e raciocínio com base em evidências visuais.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsdoubao-1-5-thinking-vision-pro-250428 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesdoubao-1-5-thinking-vision-pro-250428
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.
Doubao 1.5 Thinking Vision Pro 250428 é a identidade alojada exata indicada pela ByteDance para Seed1.5-VL. É um modelo de visão e linguagem para compreensão multimodal geral e raciocínio. As capacidades descritas pelo fabricante incluem OCR, compreensão de diagramas, localização de referências visuais, compreensão espacial 3D, compreensão de vídeo e raciocínio visual. Estas tarefas devolvem interpretações e decisões baseadas em material visual e numa pergunta escrita.
Leia e interprete a fonte visual
Forneça a imagem e identifique a informação a extrair ou explicar. Para uma imagem de documento, indique o texto ou os campos importantes. Para um diagrama, pergunte por rótulos e relações específicas. Para um problema visual, apresente a pergunta e peça uma conclusão sustentada pelas pistas pertinentes.
Mantenha claro o resultado pedido: texto transcrito, uma descrição de uma relação ou a explicação de uma resposta. Se a imagem contiver letras pouco claras ou pormenores ocultos, peça que a resposta identifique a incerteza. Guarde a imagem original juntamente com o resultado para poder verificar as palavras extraídas e as relações interpretadas.
Relacione uma pergunta com os objetos e o espaço
A localização de referências visuais liga uma referência escrita ao objeto ou à região pertinente numa imagem. Uma tarefa útil pode indicar o objeto, explicar o que o distingue dos objetos próximos e pedir a informação de localização esperada pela aplicação. O formato de saída da aplicação deve definir a forma de representar essa localização.
Para compreensão espacial, descreva quais as relações importantes: posição relativa, orientação ou disposição dos objetos na cena. Peça as evidências visíveis antes da interpretação final. Mantenha uma distinção entre as características observáveis da imagem e uma relação tridimensional inferida.
Trabalhe com vídeo e tarefas interativas
O fabricante também enumera a compreensão de vídeo e disponibiliza um guia prático dedicado a vídeo. Uma pergunta sobre vídeo deve identificar o evento, o objeto ou a sequência de interesse e o resultado a produzir. Utilize referências temporais na pergunta e guarde o excerto de origem juntamente com a resposta ao verificar uma sequência de eventos.
As suas demonstrações interativas incluem controlo de interfaces gráficas e jogos. Numa aplicação de utilização do computador, a compreensão visual do modelo apoia uma decisão sobre o ecrã, enquanto a aplicação que o integra executa ações e fornece a observação seguinte. Descrever um controlo ou decidir uma ação seguinte não demonstra, por si só, que um ficheiro foi guardado ou que uma operação no ecrã foi concluída.
Preserve o lançamento e as definições da interface
A ByteDance identifica o modelo como tendo um codificador de visão com 532M parâmetros e um modelo de linguagem de mistura de especialistas com 20B parâmetros ativos. O seu guia prático apresenta separadamente os controlos de cadeias de raciocínio longas, a localização de referências visuais, a compreensão espacial e os exemplos de vídeo e interfaces gráficas. Utilize o contrato exato da interface para as entradas e a representação da saída exigidas por uma tarefa.
Esta entrada preserva o lançamento 250428 indicado no repositório do fabricante. O perfil anterior Thinking Pro Vision 250415 é uma identidade separada. Guarde o modelo pedido, as fontes visuais e as definições da tarefa com cada resultado, para que uma revisão posterior possa ser comparada com o mesmo lançamento e as mesmas evidências.
Tarefa prática
Tarefa prática
Exemplo técnico em inglês
Reason from a diagram transcript
Use this textual transcription of a process diagram: Start → Inspect; Inspect(pass) → Pack; Inspect(fail) → Rework; Rework → Inspect. Explain whether a failed item can reach Pack without another inspection. Give the path that justifies your answer and suggest one label that would make the reinspection loop clearer. Do not invent unseen diagram details.Resultado esperado
A yes/no conclusion, the relevant node sequence and one proposed label clarification.Verificar o resultado
The path includes Rework → Inspect before Pack and uses only the supplied transcription.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions doubao-1-5-thinking-vision-pro-250428
doubao-1-5-thinking-vision-pro-250428
doubao-1-5-thinking-vision-pro-250428Introdução
Doubao 1.5 Thinking Vision Pro 250428 é o lançamento de visão e linguagem identificado como Seed1.5-VL para imagens, vídeo e perguntas escritas. O fabricante descreve OCR, interpretação de diagramas, localização de referências visuais, compreensão espacial e raciocínio com base em evidências visuais.
- 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 doubao-1-5-thinking-vision-pro-250428 | 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 Exemplos: system, user, assistant, tool, function Condições: Estes papéis são representados explicitamente pelos tipos de compatibilidade do código-fonte; o conjunto exato de papéis continua específico do modelo. Depende do modelo | Predefinição— |
Campomessages[].content | Tipostring|content_part[]|null | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].tool_calls | Tipotool_call[] | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].tool_call_id | Tipostring | RequisitoOpcional | Valores e limites Aplica-se quando: role=tool; use o ID realmente devolvido | Predefinição— |
Campomessages[].name | Tipostring | RequisitoOpcional | Valores e limites | Predefinição— |
Campomessages[].reasoning_content | Tipostring | RequisitoOpcional | Valores e limites Aplica-se quando: Reintroduza o raciocínio realmente devolvido quando este modelo o utiliza | Predefinição— |
Campomessages[].reasoning_details | Tipoobject|array | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campomax_tokens | Tipointeger | RequisitoOpcional | Valores e limites Mínimo: 1 Depende do modelo | Predefinição— |
Campomax_completion_tokens | Tipointeger | RequisitoOpcional | Valores e limites Mínimo: 1 Depende do modelo | Predefinição— |
Campostream | Tipoboolean | RequisitoOpcional | Valores e limites | Predefiniçãofalse |
Campostream_options.include_usage | Tipoboolean | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotemperature | Tiponumber | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotop_p | Tiponumber | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campostop | Tipostring|string[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotools | Tipofunction_tool[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campotools[].type | Tipostring | RequisitoOpcional | Valores e limites function Depende do modelo | Predefinição— |
Campotools[].function.name | Tipostring | RequisitoObrigatório | Valores e limites Aplica-se quando: Função fornecida como ferramenta | Predefinição— |
Campotools[].function.description | Tipostring | RequisitoOpcional | Valores e limites | Predefinição— |
Campotools[].function.parameters | TipoJSON_schema | RequisitoOpcional | Valores e limites | Predefinição— |
Campotool_choice | Tipostring|object | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoparallel_tool_calls | Tipoboolean | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporesponse_format | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporeasoning_effort | Tipostring | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camporeasoning | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Camposervice_tier | Tipostring | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoinstructions | Tipostring | RequisitoOpcional | Valores e limites Campo de compatibilidade | Predefinição— |
Campofunctions | Tipofunction[] | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campofunction_call | Tipostring|object | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campoprompt_cache_options | Tipoobject | RequisitoOpcional | Valores e limites Depende do modelo | Predefinição— |
Campomodalities | Tipostring[] | RequisitoOpcional | Valores e limites text | Predefinição— |
Campoprovider | Tipoobject | RequisitoOpcional | Valores e limites Condições: provider.options é rejeitado nesta rota textual Ultra | Predefinição— |
Campocache_control.ttl | Tipostring | RequisitoOpcional | Valores e limites Condições: 1h é rejeitado nos locais efetivos da cache de prompts | Predefinição— |
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, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parâmetrocontrol_scope | ContratoEspecífico do modelo; as ferramentas de funções do utilizador diferem das ferramentas alojadas |
Parâmetrooutput_modalities | Contratotext |
Parâmetrohosted_operations | Contratofalse |
Parâmetromultimodal_input_binding | Contratonull |
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.0011 / 1K tokens Saída · Tokens de saída $0.00286 / 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": "doubao-1-5-thinking-vision-pro-250428", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')
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='doubao-1-5-thinking-vision-pro-250428',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
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"))
from openai import OpenAI
import os
from pathlib import Path
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)
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))
with client.chat.completions.stream(model='doubao-1-5-thinking-vision-pro-250428',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
for event in stream:
payload=event.to_dict(mode="json")
log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
print(json.dumps(payload,ensure_ascii=False))
final=stream.get_final_completion()
save_result(final.to_dict(mode="json"),"stream-result")
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 doubao-1-5-thinking-vision-pro-250428
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
Ailoot Ultra · Anthropic Messages POST /v1/messages doubao-1-5-thinking-vision-pro-250428
doubao-1-5-thinking-vision-pro-250428
doubao-1-5-thinking-vision-pro-250428Introdução
Doubao 1.5 Thinking Vision Pro 250428 é o lançamento de visão e linguagem identificado como Seed1.5-VL para imagens, vídeo e perguntas escritas. O fabricante descreve OCR, interpretação de diagramas, localização de referências visuais, compreensão espacial e raciocínio com base em evidências visuais.
- 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 doubao-1-5-thinking-vision-pro-250428 | 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.0011 / 1K tokens Saída · Tokens de saída $0.00286 / 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": "doubao-1-5-thinking-vision-pro-250428",
"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': 'doubao-1-5-thinking-vision-pro-250428', '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': 'doubao-1-5-thinking-vision-pro-250428', '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 doubao-1-5-thinking-vision-pro-250428
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · Doubao-1.5-Thinking-Vision-Pro-0428
- Que entradas e resultados estão disponíveis?
POST /v1/chat/completions·doubao-1-5-thinking-vision-pro-250428:text→textPOST /v1/messages·doubao-1-5-thinking-vision-pro-250428:text→json,sse- Que campos utiliza o pedido?
POST /v1/chat/completions·doubao-1-5-thinking-vision-pro-250428:model,messages,stream,modalities,providerPOST /v1/messages·doubao-1-5-thinking-vision-pro-250428:model,messages,max_tokens,stream- Que limites se aplicam?
POST /v1/chat/completions·doubao-1-5-thinking-vision-pro-250428:messages.min_items:1