QwenCloudBRASIL
Tradução de apoio para consulta. Código e identificadores técnicos preservados. Consultar referência original ↗

Busca de imagens

Encontre imagens através de respostas

A API Responses fornece duas ferramentas de busca de imagens integradas: ** pesquisa de texto para imagem** encontra imagens correspondentes a uma descrição de texto, e ** pesquisa de imagem para imagem** encontra imagens visualmente semelhantes de uma imagem de entrada. Ambas as ferramentas retornam uma série de resultados da JSON e uma análise gerada por modelos.

Essas ferramentas só estão disponíveis através da API Responses.

Procure na internet imagens que combinem com uma descrição de texto, e deixe o modelo descrever e raciocinar sobre elas. Passo. {"type": "web_search_image"} na tools parâmetro - o modelo decide quando procurar baseado na entrada.

Exemplo

import os
import json
from openai import OpenAI

client = OpenAI(
  api_key=os.getenv("DASHSCOPE_API_KEY"),
  base_url="https://maas.qwencloudapi.com/compatible-mode/v1"
)

response = client.responses.create(
  model="qwen3.8-max",
  input="Find a tech-themed background image suitable for a PowerPoint cover",
  tools=[
    {
      "type": "web_search_image"
    }
  ]
)

for item in response.output:
  if item.type == "web_search_image_call":
    print(f"[Tool call] Text-to-image search (status: {item.status})")
    if item.output:
      images = json.loads(item.output)
      print(f"  Found {len(images)} images:")
      for img in images[:5]:
        print(f"  [{img['index']}] {img['title']}")
        print(f"      {img['url']}")
      if len(images) > 5:
        print(f"  ... Total {len(images)} images")
  elif item.type == "message":
    print(f"\n[Model response]")
    print(response.output_text)

print(f"\n[Token usage] Input: {response.usage.input_tokens}, Output: {response.usage.output_tokens}, Total: {response.usage.total_tokens}")
import OpenAI from "openai";
import process from 'process';

const openai = new OpenAI({
  apiKey: process.env.DASHSCOPE_API_KEY,
  baseURL: "https://maas.qwencloudapi.com/compatible-mode/v1"
});

async function main() {
  const response = await openai.responses.create({
    model: "qwen3.8-max",
    input: "Find a tech-themed background image suitable for a PowerPoint cover",
    tools: [
      { type: "web_search_image" }
    ]
  });

  for (const item of response.output) {
    if (item.type === "web_search_image_call") {
      console.log(`[Tool call] Text-to-image search (status: ${item.status})`);
      if (item.output) {
        const images = JSON.parse(item.output);
        console.log(`  Found ${images.length} images:`);
        images.slice(0, 5).forEach(img => {
          console.log(`  [${img.index}] ${img.title}`);
          console.log(`      ${img.url}`);
        });
        if (images.length > 5) {
          console.log(`  ... Total ${images.length} images`);
        }
      }
    } else if (item.type === "message") {
      console.log(`\n[Model response]`);
      console.log(response.output_text);
    }
  }

  console.log(`\n[Token usage] Input: ${response.usage.input_tokens}, Output: ${response.usage.output_tokens}, Total: ${response.usage.total_tokens}`);
}

main();
curl -X POST https://maas.qwencloudapi.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen3.8-max",
  "input": "Find a tech-themed background image suitable for a PowerPoint cover",
  "tools": [
    {"type": "web_search_image"}
  ]
}'

Saída da amostra:

[Tool call] Text-to-image search (status: completed)
  Found 30 images:
  [1] Best Free Information Technology Background S Google Slides Themes ...
      https://image.slidesdocs.com/responsive-images/slides/0-technology-line-network-information-training-courseware-powerpoint-background_17825ea41f__960_540.jpg
  [2] Data Technology Blue Abstract Business Glow Powerpoint Background ...
      https://image.slidesdocs.com/responsive-images/background/data-technology-blue-abstract-business-glow-powerpoint-background_e667bfafcb__960_540.jpg
  ...

[Model response]
Here are several tech-themed background images perfect for your PowerPoint cover...

[Token usage] Input: 4326, Output: 645, Total: 4971

Formato de resposta

A resposta output Array contém dois tipos de itens:

Tipo de item Descrição
web_search_image_call Os resultados brutos da busca como uma matriz JSON. Cada objeto incluiindex,title, eurl.
message Análise e recomendações do modelo baseadas nos resultados da busca.

Contagem

Busca de texto para imagem incorre em dois tipos de acusações:

Os preços listados abaixo são os preços de lista. Para promoções atuais e preços com desconto, visite o [Modelo Marketplace] (https://www.qwencloud.com/models).

Tipo de carga. Detalhes
- Taxas de chamadas de modelos. Os resultados da busca de imagens são adicionados ao prompt, o que aumenta a contagem de fichas de entrada. Taxas padrão de modelos se aplicam. Veja.-Preços.para detalhes.
- Taxas de chamada de ferramentas. US$ 8 per 1,000 calls.

Encontre imagens visualmente semelhantes na internet de uma imagem de entrada, e deixe o modelo analisar os resultados. Passo. {"type": "image_search"} na tools E dar a imagem usando o input_image Tipo de conteúdo. Opcionalmente, incluir um input_text Mensagem para fornecer contexto de busca adicional.

Exemplo

Substituir image_url no código de exemplo com uma URL de imagem acessível publicamente (o OpenAI SDK não suporta caminhos de arquivos locais).

import os
import json
from openai import OpenAI

client = OpenAI(
  api_key=os.getenv("DASHSCOPE_API_KEY"),
  base_url="https://maas.qwencloudapi.com/compatible-mode/v1"
)

input_content = [
  {"type": "input_text", "text": "Find landscape images with a similar style to this one"},
  {"type": "input_image", "image_url": "https://img.alicdn.com/imgextra/i4/O1CN01YbrnSS1qtmsAkw0Ud_!!6000000005554-2-tps-788-450.png"}
]

response = client.responses.create(
  model="qwen3.8-max",
  input=[{"role": "user", "content": input_content}],
  tools=[{"type": "image_search"}]
)

for item in response.output:
  if item.type == "image_search_call":
    print(f"[Tool call] Image-to-image search (status: {item.status})")
    if item.output:
      images = json.loads(item.output)
      print(f"  Found {len(images)} images:")
      for img in images[:5]:
        print(f"  [{img['index']}] {img['title']}")
        print(f"      {img['url']}")
      if len(images) > 5:
        print(f"  ... Total {len(images)} images")
  elif item.type == "message":
    print(f"\n[Model response]")
    print(response.output_text)

print(f"\n[Token usage] Input: {response.usage.input_tokens}, Output: {response.usage.output_tokens}, Total: {response.usage.total_tokens}")
import OpenAI from "openai";
import process from 'process';

const openai = new OpenAI({
  apiKey: process.env.DASHSCOPE_API_KEY,
  baseURL: "https://maas.qwencloudapi.com/compatible-mode/v1"
});

async function main() {
  const response = await openai.responses.create({
    model: "qwen3.8-max",
    input: [
      {
        role: "user",
        content: [
          { type: "input_text", text: "Find landscape images with a similar style to this one" },
          { type: "input_image", image_url: "https://img.alicdn.com/imgextra/i4/O1CN01YbrnSS1qtmsAkw0Ud_!!6000000005554-2-tps-788-450.png" }
        ]
      }
    ],
    tools: [{ type: "image_search" }]
  });

  for (const item of response.output) {
    if (item.type === "image_search_call") {
      console.log(`[Tool call] Image-to-image search (status: ${item.status})`);
      if (item.output) {
        const images = JSON.parse(item.output);
        console.log(`  Found ${images.length} images:`);
        images.slice(0, 5).forEach(img => {
          console.log(`  [${img.index}] ${img.title}`);
          console.log(`      ${img.url}`);
        });
        if (images.length > 5) {
          console.log(`  ... Total ${images.length} images`);
        }
      }
    } else if (item.type === "message") {
      console.log(`\n[Model response]`);
      console.log(response.output_text);
    }
  }

  console.log(`\n[Token usage] Input: ${response.usage.input_tokens}, Output: ${response.usage.output_tokens}, Total: ${response.usage.total_tokens}`);
}

main();
curl -X POST https://maas.qwencloudapi.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen3.8-max",
  "input": [
    {
      "role": "user",
      "content": [
        {"type": "input_text", "text": "Find landscape images with a similar style to this one"},
        {"type": "input_image", "image_url": "https://img.alicdn.com/imgextra/i4/O1CN01YbrnSS1qtmsAkw0Ud_!!6000000005554-2-tps-788-450.png"}
      ]
    }
  ],
  "tools": [
    {"type": "image_search"}
  ]
}'

Saída da amostra:

[Tool call] Image-to-image search (status: completed)
  Found 2 images:
  [1] QingMing Festival Holiday Notice 2024
      https://www.healthcabin.net/blog/wp-content/uploads/2024/04/QingMing-Festival-Holiday-Notice-2024.jpg
  [2] Serene Asian Landscape Stone Bridge Reflecting in Misty Water
      https://thumbs.dreamstime.com/b/serene-asian-landscape-stone-bridge-reflecting-misty-water-tranquil-illustration-traditional-arch-spanning-lake-style-376972039.jpg

[Model response]
Okay, I have found several landscape images with a similar style for you...

[Token usage] Input: 2753, Output: 181, Total: 2934

Formato de resposta

A resposta output Array contém dois tipos de itens:

Tipo de item Descrição
image_search_call O resultado da chamada contém uma matriz JSON de imagens iguais. Cada objeto incluiindex,title, eurl.
message A análise do modelo dos resultados da busca, acessível através deresponse.output_text.

Contagem

A busca por imagem incorre em dois tipos de acusações:

Os preços listados abaixo são os preços de lista. Para promoções atuais e preços com desconto, visite o [Modelo Marketplace] (https://www.qwencloud.com/models).

Tipo de carga. Detalhes
Modelo de fichas de entrada Os resultados da pesquisa são adicionados ao prompt, o que aumenta a contagem de fichas de entrada. Cobrado com o preço padrão do modelo. Veja.-Preços.para detalhes.
Taxa de chamada de ferramentas US$ 8 per 1,000 calls.

Modelos apoiados.

Ambas as ferramentas de busca de imagens suportam o mesmo conjunto de modelos. Só disponível através da API Responses.

Para os melhores resultados de chamada de ferramentas, use os seguintes modelos:

Outros modelos

Os seguintes modelos também apoiam esta chamada de ferramenta, mas seu desempenho não é tão bom quanto o dos modelos recomendados.

Fluxo

Para conceitos de streaming gerais (protocolo SSE, como permitir streaming, faturamento e uso de fichas), veja Streaming output. Esta seção cobre apenas o comportamento de transmissão específico para a busca de imagens.

A busca por imagens pode levar vários segundos. Ativar streaming para receber resultados incrementalmente, definindo stream=True (Python) ou stream: true (Node.js/curl). A resposta emite eventos na seguinte ordem:

Tipo de evento Trigger Ação.
response.output_item.added A chamada de ferramentas começa. Mostre um indicador de carga.
response.output_item.done Chamada completa. - Sim.event.item.output como JSON para obter a lista de imagens.
response.content_part.added O modelo começa a responder. Prepare-se para transmitir texto.
response.output_text.delta Modelo envia um pedaço de texto Anexarevent.deltapara a saída.
response.completed Resposta completa pronta. Leia a final.usage Estatísticas.

Perguntas frequentes

Que formatos de imagem e métodos de entrada são suportados?

Veja [Limites de imagem] (/developer-guides/multimodal/vision#input-file-limits) para formatos suportados e restrições de tamanho, e [Métodos de entrada de arquivos] (/developer-guides/multimodal/vision#file-input-methods) para como passar imagens.

O SDK OpenAI não suporta entrada local de arquivos.

Quantas imagens posso passar como entrada?

A contagem total de fichas para todas as imagens e texto deve permanecer dentro do comprimento máximo de entrada do modelo. O modelo busca uma imagem de cada vez, mas pode invocar a ferramenta várias vezes em uma única resposta para cobrir várias imagens.

O modelo determina o número de imagens a serem pesquisadas.

Quantos resultados uma busca retorna?

O modelo determina o número de resultados por busca. A contagem não está fixa, mas o máximo é de 100 imagens.