Tous les produits
Search
Centre de documentation

Alibaba Cloud Model Studio:Text-to-image search

Dernière mise à jour :Oct 11, 2026

L'outil de recherche d'images par texte permet au modèle de rechercher des images pertinentes sur Internet à partir d'une description textuelle. Le modèle peut ensuite décrire le contenu de l'image et effectuer une inférence. Cette fonctionnalité est utile pour des cas d'usage tels que la réponse aux questions visuelles (Q&A) et les recommandations d'images.

Utilisation

Appelez la fonctionnalité de recherche d'images par texte via l'API Responses. Ajoutez l'outil web_search_image au paramètre tools.

# Import dependencies and create a client...
response = client.responses.create(
    model="qwen3.8-max",
    input="Find a tech-style background image for a PPT cover",
    tools=[{"type": "web_search_image"}]
)

print(response.output_text)

Modèles pris en charge

Modèles recommandés

Pour obtenir les meilleurs résultats lors de l'appel d'outils, utilisez les modèles suivants :

Qwen-Plus : séries Qwen3,7-Plus, Qwen3,6-Plus et Qwen3,5-Plus

Qwen-Max : série Qwen3,8-Max, qwen3,7-max-2026-06-08

qwen3,8-27b

Autres modèles

Les modèles suivants prennent également en charge cet appel d'outil, mais leurs performances sont inférieures à celles des modèles recommandés.

  • Qwen-Flash : séries Qwen3,7-Flash, Qwen3,6-Flash et Qwen3,5-Flash

Cet outil n'est disponible que via l'API Responses.

Premiers pas

Exécutez le code suivant pour appeler l'outil de recherche d'images par texte via l'API Responses. Ce code recherche des images sur Internet à partir d'une description textuelle.

Vous devez obtenir une clé API et configurer la clé API en tant que variable d'environnement .

import os
import json
from openai import OpenAI

client = OpenAI(
    # If you have not configured the environment variable, replace the following line with api_key="sk-xxx" (not recommended), using your Model Studio API key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)

response = client.responses.create(
    model="qwen3.8-max",
    input="Find a tech-style background image for a PPT 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})")
        # Parse and display the list of searched images
        if item.output:
            images = json.loads(item.output)
            print(f"  Found {len(images)} images:")
            for img in images[:5]:  # Display the first 5 images
                print(f"  [{img['index']}] {img['title']}")
                print(f"      {img['url']}")
            if len(images) > 5:
                print(f"  ... {len(images)} images in total")
    elif item.type == "message":
        print(f"\n[Model Response]")
        print(response.output_text)

# Display token usage and tool call statistics
print(f"\n[Token Usage] Input: {response.usage.input_tokens}, Output: {response.usage.output_tokens}, Total: {response.usage.total_tokens}")
if hasattr(response.usage, 'x_tools') and response.usage.x_tools:
    for tool_name, info in response.usage.x_tools.items():
        print(f"[Tool Statistics] {tool_name} calls: {info.get('count', 0)}")
import OpenAI from "openai";
import process from 'process';

const openai = new OpenAI({
    // If you have not configured the environment variable, replace the following line with apiKey: "sk-xxx", using your Model Studio API key.
    apiKey: process.env.DASHSCOPE_API_KEY,
    // The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3.8-max",
        input: "Find a tech-style background image for a PPT 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})`);
            // Parse and display the list of searched images
            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(`  ... ${images.length} images in total`);
                }
            }
        } else if (item.type === "message") {
            console.log(`\n[Model Response]`);
            console.log(response.output_text);
        }
    }

    // Display token usage and tool call statistics
    console.log(`\n[Token Usage] Input: ${response.usage.input_tokens}, Output: ${response.usage.output_tokens}, Total: ${response.usage.total_tokens}`);
    if (response.usage && response.usage.x_tools) {
        for (const [toolName, info] of Object.entries(response.usage.x_tools)) {
            console.log(`[Tool Statistics] ${toolName} calls: ${info.count || 0}`);
        }
    }
}

main();
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.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-style background image for a PPT cover",
    "tools": [
        {"type": "web_search_image"}
    ]
}'

Le code précédent renvoie la réponse suivante :

[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
  [3] PPT Technology Style Background Template Banner Backgrounds | PSD ...
      https://img.pikbest.com/backgrounds/20190418/ppt-technology-style-background-template-banner_1889599.jpg!bw700
  [4] Download Now! PowerPoint Background Design Technology
      https://www.slideegg.com/image/catalog/89734-powerpoint-background-design-technology.png
  [5] Powerpoint Template Technology Images ...
      https://t4.ftcdn.net/jpg/07/53/21/13/360_F_753211329_cVkWkZdxs9tNEoS5q2d8ZH362YQnAH0p.jpg
  ... 30 images in total

[Model Response]
Here are a few tech-style background images that are perfect for a PPT cover. You can choose one based on your specific theme:

**1. Classic blue circuit board and chip style**
Suitable for topics: Hardware, chips, electronic engineering, low-level technology.
![Technology Background](https://www.slideegg.com/image/catalog/89734-powerpoint-background-design-technology.png)

**2. Abstract particles and network connection style**
Suitable for topics: Big data, artificial intelligence, network security, cloud computing.
![Technology Background](https://img.freepik.com/free-vector/gradient-technology-futuristic-background_23-2149115239.jpg)

...

[Token Usage] Input: 4326, Output: 645, Total: 4971
[Tool Statistics] web_search_image calls: 1

Sortie en continu

La recherche d'images par texte peut être lente. Activez la sortie en continu pour recevoir les résultats intermédiaires en temps réel.

import os
import json
from openai import OpenAI

client = OpenAI(
    # If you have not configured the environment variable, replace the following line with api_key="sk-xxx" (not recommended), using your Model Studio API key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)

stream = client.responses.create(
    model="qwen3.8-max",
    input="Find a tech-style background image for a PPT cover",
    tools=[{"type": "web_search_image"}],
    stream=True
)

for event in stream:
    # Tool call starts
    if event.type == "response.output_item.added":
        if event.item.type == "web_search_image_call":
            print("[Tool Call] Text-to-image search in progress...")
    # Tool call is complete. Parse and display the list of searched images.
    elif event.type == "response.output_item.done":
        if event.item.type == "web_search_image_call":
            print(f"[Tool Call] Text-to-image search complete (status: {event.item.status})")
            if event.item.output:
                images = json.loads(event.item.output)
                print(f"  Found {len(images)} images:")
                for img in images[:5]:  # Display the first 5 images
                    print(f"  [{img['index']}] {img['title']}")
                    print(f"      {img['url']}")
                if len(images) > 5:
                    print(f"  ... {len(images)} images in total")
    # Model response starts
    elif event.type == "response.content_part.added":
        print(f"\n[Model Response]")
    # Streamed text output
    elif event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)
    # Response is complete. Output usage.
    elif event.type == "response.completed":
        usage = event.response.usage
        print(f"\n\n[Token Usage] Input: {usage.input_tokens}, Output: {usage.output_tokens}, Total: {usage.total_tokens}")
        if hasattr(usage, 'x_tools') and usage.x_tools:
            for tool_name, info in usage.x_tools.items():
                print(f"[Tool Statistics] {tool_name} calls: {info.get('count', 0)}")
import OpenAI from "openai";
import process from 'process';

const openai = new OpenAI({
    // If you have not configured the environment variable, replace the following line with apiKey: "sk-xxx", using your Model Studio API key.
    apiKey: process.env.DASHSCOPE_API_KEY,
    // The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

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

    for await (const event of stream) {
        // Tool call starts
        if (event.type === "response.output_item.added") {
            if (event.item && event.item.type === "web_search_image_call") {
                console.log("[Tool Call] Text-to-image search in progress...");
            }
        }
        // Tool call is complete. Parse and display the list of searched images.
        else if (event.type === "response.output_item.done") {
            if (event.item && event.item.type === "web_search_image_call") {
                console.log(`[Tool Call] Text-to-image search complete (status: ${event.item.status})`);
                if (event.item.output) {
                    const images = JSON.parse(event.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(`  ... ${images.length} images in total`);
                    }
                }
            }
        }
        // Model response starts
        else if (event.type === "response.content_part.added") {
            console.log(`\n[Model Response]`);
        }
        // Streamed text output
        else if (event.type === "response.output_text.delta") {
            process.stdout.write(event.delta);
        }
        // Response is complete. Output usage.
        else if (event.type === "response.completed") {
            const usage = event.response.usage;
            console.log(`\n\n[Token Usage] Input: ${usage.input_tokens}, Output: ${usage.output_tokens}, Total: ${usage.total_tokens}`);
            if (usage && usage.x_tools) {
                for (const [toolName, info] of Object.entries(usage.x_tools)) {
                    console.log(`[Tool Statistics] ${toolName} calls: ${info.count || 0}`);
                }
            }
        }
    }
}

main();
# The following URL is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.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-style background image for a PPT cover",
    "tools": [
        {"type": "web_search_image"}
    ],
    "stream": true
}'

Le code précédent renvoie la sortie suivante :

[Tool Call] Text-to-image search in progress...
[Tool Call] Text-to-image search complete (status: completed)
  Found 30 images:
  [1] Free Technology Background PowerPoint & Google Slides Themes
      https://slidechef.net/wp-content/uploads/2023/11/TECHNOLOGY-BACKGROUND.jpg
  [2] 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
  [3] PPT Technology Style Background Template Banner Backgrounds | PSD ...
      https://img.pikbest.com/backgrounds/20190418/ppt-technology-style-background-template-banner_1889599.jpg!bw700
  [4] Download Now! PowerPoint Background Design Technology
      https://www.slideegg.com/image/catalog/89734-powerpoint-background-design-technology.png
  [5] Powerpoint Template Technology Images ...
      https://t4.ftcdn.net/jpg/07/53/21/13/360_F_753211329_cVkWkZdxs9tNEoS5q2d8ZH362YQnAH0p.jpg
  ... 30 images in total

[Model Response]
Here are a few tech-style background images that are perfect for a PPT cover. You can choose one based on your specific theme:

**1. Minimalist network connector style (suitable for big data, connectivity, and communication topics)**
This image has a dark blue background with simple node connectors in the corner and a lot of white space in the middle...
![Technology Background](https://slidechef.net/wp-content/uploads/2023/11/TECHNOLOGY-BACKGROUND.jpg)

**2. Hardcore circuit and chip style (suitable for artificial intelligence, hardware, and low-level technology topics)**
The left side features complex circuit board textures and a HUD-like ring design...
![Circuit Technology Background](https://www.slideegg.com/image/catalog/89734-powerpoint-background-design-technology.png)

...

[Token Usage] Input: 7180, Output: 558, Total: 7738
[Tool Statistics] web_search_image calls: 1

Facturation

La facturation comprend les éléments suivants :

  • Frais d'appel du modèle : les résultats de la recherche d'images sont ajoutés à l'invite. Cela augmente le nombre de jetons d'entrée pour le modèle. La facturation suit les tarifs standard du modèle. Pour plus de détails sur les tarifs, consultez la console Model Studio.
  • Frais d'appel d'outil : le tarif pour 1 000 appels est de 8 USD pour les déploiements dans la région de Singapour et de 3,44 USD pour les déploiements dans la région Chine (Pékin).