Skip to main content

Referencia de API de Qwen-Deep-Research

Parámetros de solicitud y respuesta para invocar el modelo Qwen-Deep-Research a través de la API de DashScope.

Documentación relacionada: Investigación profunda (Qwen-Deep-Research)
Qwen-Deep-Research está disponible únicamente en la región de China (Beijing). Debe utilizar una clave de API de la región de China (Beijing).
Actualmente, el modelo solo admite el SDK de Python DashScope. No se admiten el SDK de Java ni la interfaz compatible con OpenAI.

DashScope

Antes de comenzar, obtenga una clave de API y configúrela como variable de entorno. Para usar el SDK de DashScope, también debe instalar el SDK.

Cuerpo de la solicitud

modelstring(Obligatorio)Valor admitido: qwen-deep-research.messagesarray(Obligatorio)Historial de conversación, en orden cronológico.

Tipos de mensajes

Mensaje de usuario object(Obligatorio)Un mensaje de usuario envía preguntas, instrucciones o contexto al modelo. En el flujo de llamada de dos pasos de Qwen-Deep-Research, los mensajes de usuario tienen diferentes propósitos:
  • Paso 1 (Pregunta de aclaración): El mensaje del usuario inicia la solicitud de investigación con un tema amplio.
  • Paso 2 (Investigación profunda): El mensaje del usuario responde a la pregunta de aclaración del modelo para limitar el alcance de la investigación del modelo y lograr un análisis más enfocado.
contentstring(Obligatorio)El contenido del mensaje.rolestring(Obligatorio)Debe ser user.
Mensaje de asistente object(Opcional)La respuesta del modelo a un mensaje de usuario. Para el Paso 2 (Investigación profunda), pase la pregunta de aclaración del modelo del Paso 1 para producir un análisis más enfocado.contentstring(Opcional)El contenido del mensaje.rolestring(Obligatorio)Debe ser assistant.
output_formatstring(Opcional)Formato y nivel de detalle del informe de investigación. Valores válidos:
  • model_detailed_report (Predeterminado) Informe completo (~6,000 tokens) para análisis en profundidad.
  • model_summary_report Resumen conciso (~1,500–2,000 tokens) con hallazgos clave.
Python
import os
import dashscope
# The following is the base_url for the Beijing region. Replace WorkspaceId with your actual workspace ID. Configurations vary by region.
dashscope.base_http_api_url = "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1"

# Step 1: Get the clarifying question from the model.
messages = [{'role': 'user', 'content': 'Research the applications of artificial intelligence in education'}]

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

# Collect the model's clarifying question.
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)

# Step 2: Start the deep research.
messages = [
    {'role': 'user', 'content': 'Research the applications 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
)

# Stream the research results.
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)

Objeto de respuesta

status_codestringEl código de estado HTTP de la solicitud. 200 indica éxito; otros valores indican un error.
En caso de fallo, la excepción lanzada contiene status_code y message.
request_idstringEl identificador único de la solicitud.codestringEl código de error. Este campo está vacío en caso de éxito.
Este parámetro solo es devuelto por el SDK de Python.
message stringEl mensaje de error. Este campo está vacío en caso de éxito.outputobjectEl resultado de la llamada.
textstringEste parámetro siempre es null.finish_reasonstringLa razón por la que el modelo dejó de generar contenido. Valores posibles:
  • null: La generación está en curso.
  • stop: La generación finalizó naturalmente.
  • length: Se alcanzó la longitud máxima de contenido.
choicesarrayUna lista de opciones de salida del modelo.
finish_reasonstringValores posibles:
  • null: La generación está en curso.
  • stop: La generación finalizó naturalmente.
  • length: Se alcanzó la longitud máxima de contenido.
messageobjectEl objeto de mensaje del modelo.
PropiedadesphasestringFase actual. Valores posibles:
  • answer
  • ResearchPlanning
  • WebResearch
  • KeepAlive
rolestringDebe ser assistant.contentstringEl contenido de salida del modelo.extra arrayResultados de búsqueda web y referencias recopiladas por el modelo.deep_researchobjectLa información recuperada de búsqueda web y referencias se incluye solo en las etapas answer y WebResearch, y es null en todas las demás etapas.researchobjectDetalles del proceso de investigación.
researchGoalstringEl objetivo de la investigación.querystringConsulta de búsqueda utilizada durante la investigación.idintegerEl número de ronda de búsqueda, en el rango de [1, 15].learningMapobjectContenido resumido a partir de llamadas a herramientas, asociado con el uso de la herramienta.referencesobjectCitas para la respuesta generada. Este campo aparece solo en la fase de respuesta.
icon stringLa URL del favicon para el contenido referenciado.index_number integerEl índice del contenido referenciado.descriptionstringUna breve descripción del contenido referenciado.titlestringEl título de la página web referenciada.url stringLa URL del contenido referenciado.
webSitesobjectContenido referenciado durante la investigación. Incluido solo en la fase de investigación web.
icon stringLa URL del favicon para el contenido referenciado.index_number integerEl índice del contenido referenciado.descriptionstringUna breve descripción del contenido referenciado.titlestringEl título de la página web del contenido referenciado.url stringLa URL del contenido referenciado.
statusstringEl estado de una fase específica durante la transmisión:
  • typing: El modelo está generando contenido para la fase actual.
  • finished: La fase actual está completa.
  • streamingQueries: El modelo está generando objetivos de investigación y consultas de búsqueda.
  • streamingWebResult: La búsqueda web, lectura de páginas y ejecución de código están en curso.
  • WebResultFinished: La fase de búsqueda web está completa.
fininshedbooleanSi la transmisión está completa. Valores posibles:
  • false: Transmisión en curso.
  • true: Mensaje final.
fininshed_reason stringLa razón por la que finalizó la salida de transmisión. Valores posibles:
  • null: La generación está en curso.
  • stop: La transmisión se completó normalmente.
usageobjectEl número de tokens utilizados en esta solicitud.
input_tokens integerEl número de tokens de entrada.output_tokens integerEl número de tokens de salida.
{
  "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"
}