全部产品
Search
文档中心

Alibaba Cloud Model Studio:Referensi API Qwen-Deep-Research

更新时间:Dec 04, 2025

Topik ini menjelaskan parameter input dan output untuk melakukan panggilan API ke model Qwen-Deep-Research menggunakan API DashScope.

Untuk informasi lebih lanjut, lihat Deep research (Qwen-Deep-Research)
Penting

Dokumen ini hanya berlaku untuk China (Beijing). Untuk menggunakan model ini, Anda harus menggunakan API key untuk wilayah China (Beijing).

Catatan

Saat ini Anda hanya dapat memanggil model ini menggunakan SDK DashScope Python. SDK Java dan antarmuka yang kompatibel dengan OpenAI tidak didukung.

DashScope

Sebelum memulai, Anda harus mendapatkan dan mengonfigurasi API key serta mengonfigurasi API key sebagai Variabel lingkungan. Untuk memanggil model menggunakan SDK DashScope, Anda juga harus menginstal SDK DashScope.

Request body

Python

import os
import dashscope

# Langkah 1: Model mengajukan pertanyaan lanjutan untuk konfirmasi
messages = [{'role': 'user', 'content': 'Research the application of artificial intelligence in education'}]

responses = dashscope.Generation.call(
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-deep-research",
    messages=messages,
    stream=True
)

# Mendapatkan konten pertanyaan lanjutan dari model
step1_content = ""
for response in responses:
    if hasattr(response, 'output') and response.output:
        message = response.output.get('message', {})
        content = message.get('content', '')
        if content:
            step1_content += content
            print(content, end='', flush=True)

# Langkah 2: Melakukan deep research
messages = [
    {'role': 'user', 'content': 'Research the application of artificial intelligence in education'},
    {'role': 'assistant', 'content': step1_content},
    {'role': 'user', 'content': 'I want to focus on personalized learning and intelligent assessment.'}
]

responses = dashscope.Generation.call(
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-deep-research",
    messages=messages
)

# Streaming output hasil penelitian
for response in responses:
    if hasattr(response, 'output') and response.output:
        message = response.output.get('message', {})
        content = message.get('content', '')
        if content:
            print(content, end='', flush=True)

curl

echo "Langkah 1: Model mengajukan pertanyaan lanjutan untuk konfirmasi"
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header 'X-DashScope-SSE: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "messages": [
            {
                "content": "Research the application of artificial intelligence in education", 
                "role": "user"
            }
        ]
    },
    "model": "qwen-deep-research"
}'

echo -e "\n\n" 
echo "Langkah 2: Melakukan deep research"
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header 'X-DashScope-SSE: enable' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "messages": [
            {
                "content": "Research the application of artificial intelligence in education", 
                "role": "user"
            },
            {
                "content": "Which specific scenarios of AI in education do you want to focus on?", 
                "role": "assistant"
            },
            {
                "content": "I want to focus on personalized learning.", 
                "role": "user"
            }
        ]
    },
    "model": "qwen-deep-research"
}'

model string (Wajib)

Nama model. Atur parameter ini ke qwen-deep-research.

messages array (Wajib)

Konteks untuk large language model (LLM), diatur dalam urutan percakapan.

Jenis pesan

User Message object (Wajib)

Pesan pengguna menyediakan pertanyaan, instruksi, atau konteks kepada model. Tujuan pesan pengguna berbeda tergantung pada langkah dalam alur panggilan dua langkah Qwen-Deep-Research:

  • Langkah 1 (Pertanyaan lanjutan model): Pesan pengguna memulai permintaan penelitian dengan topik penelitian yang luas.

  • Langkah 2 (Deep research): Pesan pengguna memberikan jawaban atas pertanyaan klarifikasi dari model. Hal ini membantu model memfokuskan penelitiannya dan melakukan analisis yang lebih spesifik.

Properti

content string (Wajib)

Konten pesan.

role string (Wajib)

Peran pesan. Atur nilainya ke user.

Assistant Message object (Opsional)

Tanggapan dari model terhadap pesan pengguna. Dalam panggilan API untuk Langkah 2 (Deep research), parameter ini meneruskan pertanyaan klarifikasi yang dikembalikan oleh model pada Langkah 1 (Pertanyaan lanjutan model). Informasi ini menjadi bagian dari riwayat percakapan dan memandu model untuk melakukan analisis yang lebih spesifik.

content string (Opsional)

Konten pesan.

role string (Wajib)

Atur ke assistant.

output_format string (Opsional)

Menentukan format dan tingkat detail laporan penelitian output. Nilai yang valid:

  • model_detailed_report (Default): Model menghasilkan laporan deep research lengkap dan mendetail sekitar 6.000 token. Format ini cocok untuk skenario yang memerlukan analisis komprehensif dan mendalam.

  • model_summary_report: Model menghasilkan laporan ringkasan singkat sekitar 1.500 hingga 2.000 token yang menyoroti poin-poin utama. Format ini cocok untuk skenario di mana Anda perlu memahami informasi dan kesimpulan utama secara cepat.

Response object

Fase perencanaan penelitian

{
  "status_code": 200,
  "request_id": "2a6187f0-7e7b-40bb-a87e-xxx",
  "code": "",
  "message": "",
  "output": {
        "text": null, 
        "finish_reason": null, 
        "choices": null, 
        "message": {
            "phase": "ResearchPlanning",
            "role": "assistant",
            "content": "",
            "extra": {
                "deep_research": {}
            },
            "status": "typing"
        },
        "fininshed": false,
        "fininshed_reason": "null"
    },
    "usage": {
        "input_tokens": 694,
        "output_tokens": 0
    },
    "request_id": "2a6187f0-7e7b-40bb-xxx"
}

Fase pencarian web

{
  "status_code": 200,
  "request_id": "2a6187f0-7e7b-40bb-a87e-xxx",
  "code": "",
  "message": "",
  "output": {
    "message": {
      "phase": "WebResearch",
      "role": "assistant",
      "content": "",
      "extra": {
        "deep_research": {
          "query": {
            "researchGoal": "By searching",
            "query": "",
            "id": 1
          }
        }
      },
      "status": "streamingQueries"
    },
    "fininshed": false,
    "fininshed_reason": "null"
  },
  "usage": {
    "input_tokens": 694,
    "output_tokens": 0
  }
}

Fase koneksi persisten

{
  "status_code": 200,
  "request_id": "2a6187f0-7e7b-40bb-a87e-xxx",
  "code": "",
  "message": "",
  "output": {
    "message": {
      "phase": "KeepAlive",
      "role": "assistant",
      "content": "",
      "extra": {
        "deep_research": {}
      },
      "status": "typing"
    },
    "fininshed": false,
    "fininshed_reason": "null"
  },
  "usage": {
    "input_tokens": 694,
    "output_tokens": 0
  }
}

Fase pertanyaan lanjutan dan jawaban

{
  "status_code": 200,
  "request_id": "2a6187f0-7e7b-40bb-a87e-xxx",
  "code": "",
  "message": "",
  "output": {
    "message": {
      "phase": "answer",
      "role": "assistant",
      "content": ", these promises are mutual",
      "extra": {
        "deep_research": {
          "references": [
            {
              "icon": "",
              "index_number": 1,
              "description": "The two xxx envisioned in the plan were never in ",
              "title": "History and Background | United Nations - the United Nations",
              "url": "https://www.un.org/xxx"
            }
          ]
        }
      },
      "status": "typing"
    },
    "fininshed": false,
    "fininshed_reason": "null"
  },
  "usage": {
    "input_tokens": 694,
    "output_tokens": 0
  }
}

status_code string

Kode status permintaan. Nilai 200 menunjukkan keberhasilan. Nilai lain menunjukkan kegagalan.

Jika panggilan gagal, sebuah exception dilemparkan. Pesan exception berisi nilai parameter status_code dan message.

request_id string

Identifier unik untuk panggilan tersebut.

code string

Kode kesalahan. Parameter ini kosong jika panggilan berhasil.

Hanya SDK Python yang mengembalikan parameter ini.

message string

Pesan kesalahan. Parameter ini kosong jika panggilan berhasil.

output object

Informasi tentang hasil panggilan.

Properti

text string

Parameter ini saat ini tetap bernilai null.

finish_reason string

Alasan model berhenti menghasilkan output. Nilai yang valid:

  • null: Generasi sedang berlangsung.

  • stop: Model berhenti menghasilkan output secara alami.

  • length: Output dihentikan karena mencapai panjang maksimum.

choices array

Informasi output dari model.

Properti

finish_reason string

Pertimbangkan skenario berikut:

  • null: Generasi sedang berlangsung.

  • stop: Model berhenti menghasilkan output secara alami.

  • length: Output dihentikan karena mencapai panjang maksimum.

message object

Objek pesan yang dihasilkan oleh model.

Properti

Properti

phase string

Fase proses saat ini. Nilainya dapat berupa salah satu berikut:

  • answer: Fase pertanyaan lanjutan dan jawaban.

  • ResearchPlanning: Fase perencanaan penelitian.

  • WebResearch: Fase pencarian web.

  • KeepAlive: Fase koneksi persisten.

role string

Peran pesan output. Nilainya tetap assistant.

content string

Konten output dari model.

extra array

Informasi pencarian web dan referensi yang diambil oleh model.

deep_research object

Berisi informasi pencarian web dan referensi. Parameter ini hanya dikembalikan pada fase answer dan WebResearch. Pada fase lain, nilai parameter ini null.

research object

Informasi tentang proses dan konten penelitian model.

Properti

researchGoal string

Tujuan penelitian.

query string

Konten pencarian yang digunakan selama proses penelitian.

id integer

Ronde pencarian. Nilainya berkisar dari 1 hingga 15.

learningMap object

Konten yang dirangkum dari pemanggilan tool. Parameter ini terkait dengan pemanggilan tool.

references object

Konten yang direferensikan oleh model untuk menghasilkan respons. Parameter ini hanya dikembalikan pada fase answer.

Properti

icon string

Tautan ke favicon dari URL yang direferensikan.

index_number integer

Indeks referensi.

description string

Deskripsi singkat referensi.

title string

Judul halaman web referensi.

url string

URL halaman web referensi.

webSites object

Konten yang direferensikan oleh model selama proses penelitian. Parameter ini hanya dikembalikan pada fase pencarian web.

Properti

icon string

Tautan ke favicon dari URL yang direferensikan.

index_number integer

Indeks referensi.

description string

Deskripsi singkat referensi.

title string

Judul halaman web referensi.

url string

URL halaman web referensi.

status string

Status berbagai fase dalam proses output model:

  • typing: Konten untuk fase ini sedang dihasilkan.

  • finished: Fase selesai.

  • streamingQueries: Tujuan penelitian dan kueri pencarian sedang dihasilkan.

  • streamingWebResult: Pencarian, pembacaan halaman web, dan eksekusi kode sedang berlangsung.

  • WebResultFinished: Fase pencarian web selesai.

finished boolean

Menunjukkan apakah streaming output konten model telah selesai. Nilai yang valid:

  • false: Konten masih dalam proses streaming.

  • true: Semua konten telah dioutput. Ini adalah respons terakhir.

finished_reason string

Menunjukkan alasan mengapa streaming output konten model berakhir. Nilai yang valid:

  • Selama generasi, nilainya null.

  • stop: Streaming output konten model berhenti secara alami.

usage object

Informasi tentang token yang digunakan dalam permintaan ini.

Properti

input_tokens integer

Jumlah token input.

output_tokens integer

Jumlah token output.