Todos los productos
Search
Centro de documentos

Alibaba Cloud Model Studio:Referencia de la API de DashScope

Última actualización: Oct 22, 2026

Puede llamar a los modelos Qwen mediante la API de DashScope. Este tema describe los parámetros de entrada y salida, y proporciona ejemplos de llamadas.

Singapore

Dirección de solicitud HTTP:

  • Modelos de texto sin formato, como qwen-plus: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation
  • Modelos multimodales, como qwen3.7-plus o qwen3-vl-plus: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

El base_url para la configuración de llamada del SDK es el siguiente:

Código Python

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

Código Java

  • Método 1:
import com.alibaba.dashscope.protocol.Protocol;
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
  • Método 2:
import com.alibaba.dashscope.utils.Constants;
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

EE. UU. (Virginia)

Dirección de solicitud HTTP:

  • Modelos de texto sin formato: POST https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation
  • Modelos Qwen-VL: POST https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

El base_url para la configuración de llamada del SDK es el siguiente:

Código Python

dashscope.base_http_api_url = 'https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1'

Código Java

  • Método 1:
import com.alibaba.dashscope.protocol.Protocol;
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1");
  • Método 2:
import com.alibaba.dashscope.utils.Constants;
Constants.baseHttpApiUrl="https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/api/v1";

China (Beijing)

Dirección de solicitud HTTP:

  • Modelos de texto sin formato, como qwen-plus: POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation
  • Modelos multimodales, como qwen3.7-plus o qwen3-vl-plus: POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

El base_url para la configuración de llamada del SDK es el siguiente:

Código Python

dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'

Código Java

  • Método 1:
import com.alibaba.dashscope.protocol.Protocol;
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1");
  • Método 2:
import com.alibaba.dashscope.utils.Constants;
Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1";

Hong Kong (China)

Dirección de solicitud HTTP:

  • Modelos de texto sin formato, como qwen-plus: POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation
  • Modelos multimodales, como qwen3.7-plus o qwen3-vl-plus: POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

El base_url para la configuración de llamada del SDK es el siguiente:

Código Python

dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1'

Código Java

  • Método 1:
import com.alibaba.dashscope.protocol.Protocol;
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1");
  • Método 2:
import com.alibaba.dashscope.utils.Constants;
Constants.baseHttpApiUrl="https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/api/v1";

Germany (Frankfurt)

Dirección de solicitud HTTP:

  • Para modelos de texto sin formato, como qwen-plus: POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation
  • Para modelos multimodales, como qwen3.7-plus o qwen3-vl-plus: POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

El base_url para la configuración de llamada del SDK es el siguiente:

Código Python

dashscope.base_http_api_url = 'https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1'

Código Java

  • Método 1:
import com.alibaba.dashscope.protocol.Protocol;
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1");
  • Método 2:
import com.alibaba.dashscope.utils.Constants;
Constants.baseHttpApiUrl="https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/api/v1";

Japan (Tokyo)

Dirección de solicitud HTTP:

  • Modelos de texto sin formato, como qwen-plus: POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation
  • Modelos multimodales, como qwen3.7-plus o qwen3-vl-plus: POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

El base_url para la configuración de llamada del SDK es el siguiente:

Código Python

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1'

Código Java

  • Método 1:
import com.alibaba.dashscope.protocol.Protocol;
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1");
  • Método 2:
import com.alibaba.dashscope.utils.Constants;
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/api/v1";

Reemplace {WorkspaceId} con su ID de espacio de trabajo real.

Debe obtener una clave API y configurarla como variable de entorno. Si utiliza el SDK de DashScope para realizar llamadas, también debe instalar el SDK de DashScope.

ImportanteAlibaba Cloud Model Studio ha lanzado dominios específicos de espacio de trabajo para las regiones de China (Pekín), Singapur y China (Hong Kong). Los nuevos dominios dedicados ofrecen un rendimiento superior y una mayor estabilidad para las solicitudes de inferencia. Recomendamos migrar a los nuevos dominios:

  • China (Pekín): de https://dashscope.aliyuncs.com a https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapur: de https://dashscope-intl.aliyuncs.com a https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
  • China (Hong Kong): de https://cn-hongkong.dashscope.aliyuncs.com a https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com

{WorkspaceId} es su ID de espacio de trabajo, que se encuentra en la página Workspace Details de la consola de Alibaba Cloud Model Studio. El dominio existente permanece totalmente funcional.

Cuerpo de la solicitud

modelstring(Obligatorio)

El nombre del modelo a utilizar.

Los modelos compatibles incluyen modelos de lenguaje grande Qwen (ediciones comercial y de código abierto), Qwen-VL, Qwen-Coder, modelos matemáticos, DeepSeek, Kimi, GLM y MiniMax.

Para consultar nombres de modelos específicos y detalles de facturación, consulteSeleccionar un modelo.

messagesarray(Obligatorio)

El contexto para pasar al modelo de lenguaje grande (LLM), organizado en orden conversacional.

Cuando llama a través de HTTP, coloque messages en el objeto input.

Tipos de mensajes

Mensaje del sistema object (Opcional)

Un mensaje del sistema que se utiliza para establecer el rol, el tono, los objetivos de la tarea o las restricciones para el LLM. Por lo general, se coloca primero en la matriz messages.

No recomendamos configurar un mensaje del sistema para los modelos QwQ. Un mensaje del sistema no surte efecto en los modelos QVQ.

Propiedades

contentstring(Obligatorio)

El contenido del mensaje.

rolestring(Obligatorio)

El rol para el mensaje del sistema. El valor está fijado en system.

Mensaje de usuario object(Obligatorio)

Un mensaje de usuario que se utiliza para pasar preguntas, instrucciones o contexto al modelo.

Propiedades

contentstring or array(Obligatorio)

El contenido del mensaje. Si la entrada es solo texto, este parámetro es una cadena. Si la entrada incluye datos multimodales, como imágenes, o si el almacenamiento en caché explícito está habilitado, este parámetro es una matriz.

Propiedades

textstring(Obligatorio)

El texto de entrada.

imagestring (Opcional)

El archivo de imagen para la comprensión de imágenes. Puede pasar una imagen de una de las siguientes tres maneras:

  • URL pública: Un enlace de imagen accesible públicamente.
  • Codificación Base64 de la imagen, en el formato data:image/<format>;base64,<data>.
  • Archivo local: La ruta absoluta de un archivo local.

Modelos aplicables: Qwen-VL, QVQ

Ejemplo: {"image":"https://xxxx.jpeg"}

videoarray or string (Opcional)

El video que se debe pasar cuando utiliza un modelo Qwen-VL o un modelo QVQ.

  • Si pasa una lista de imágenes, el tipo es array.
  • Si pasa un archivo de video, el tipo es string.

Para pasar un archivo local, consulte Archivo local.

Ejemplos:

  • Lista de imágenes: {"video":["https://xx1.jpg",...,"https://xxn.jpg"]}
  • Archivo de video: {"video":"https://xxx.mp4"}

fpsfloat(Opcional)

El número de fotogramas a extraer por segundo. El valor debe estar en el rango de [0.1, 10]. El valor predeterminado es 2.0.

Descripción

El parámetro fps tiene dos funciones:

  • Cuando la entrada es un archivo de video, este parámetro controla la frecuencia de extracción de fotogramas. Se extrae un fotograma cada f p s 1 segundos.

    Esto se aplica a los modelos Qwen-VL y a los modelos QVQ.

  • Informa al modelo sobre el intervalo de tiempo entre fotogramas adyacentes, lo que ayuda al modelo a comprender mejor la dinámica temporal del video. Esto aplica tanto a entradas de archivos de video como a listas de imágenes. Esta función es adecuada para escenarios como la localización temporal de eventos o el resumen de contenido por segmentos.

    Esto es compatible con los modelos Qwen3.7, Qwen3.6, Qwen3.5, Qwen3-VL, Qwen2.5-VL y QVQ.

Un valor mayor de fps es adecuado para escenarios de movimiento rápido, como eventos deportivos y películas de acción. Un valor menor de fps es adecuado para videos largos o escenarios con contenido relativamente estático.

Ejemplos

  • Pasar una lista de imágenes: {"video":["https://xx1.jpg",...,"https://xxn.jpg"],"fps":2}
  • Pasar un archivo de video: {"video": "https://xx1.mp4","fps":2}

max_framesinteger(Opcional)

El número máximo de fotogramas que se pueden extraer de un video. Si el número de fotogramas calculado según fps supera max_frames, el sistema se ajusta automáticamente para extraer fotogramas uniformemente dentro del límite de max_frames. Esto garantiza que el número total de fotogramas no exceda el límite.

Rango de valores

  • Serie qwen3.7, serie qwen3.6, serie qwen3.5: El valor máximo y predeterminado es 8000.
  • Serie qwen3-vl-plus: El valor máximo y predeterminado es 2000.

Valor de ejemplo

{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_frame": 2000}

Cuando llama con una API compatible con OpenAI, no puede personalizar el parámetro max_frames. La API utiliza automáticamente el valor predeterminado para cada modelo.

min_pixelsinteger(Opcional)

Establece el umbral mínimo de píxeles para la imagen de entrada o los fotogramas de video. Si el total de píxeles de una imagen de entrada o un fotograma de video es menor que min_pixels, la imagen o el fotograma se amplía hasta que sus píxeles totales sean superiores a min_pixels.

Rango de valores

  • Entrada de imagen:
    • Qwen3.7, Qwen3.6, Qwen3.5, Qwen3-VL: El valor predeterminado y mínimo es 65536.
    • Serie de código abierto Qwen2.5-VL y modelos de la serie QVQ: El valor predeterminado y mínimo es 3136.
  • Entrada de archivo de video o lista de imágenes:
    • Qwen3.7, Qwen3.6, Qwen3.5, Qwen3-VL (ediciones comercial y de código abierto): El valor predeterminado es 65536 y el valor mínimo es 4096.
    • Serie de código abierto Qwen2.5-VL y modelos de la serie QVQ: El valor predeterminado es 50176 y el valor mínimo es 3136.

Ejemplos

  • Entrada de imagen: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"min_pixels": 65536}
  • Entrada de archivo de video: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"min_pixels": 65536}
  • Entrada de lista de imágenes: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"min_pixels": 65536}

max_pixelsinteger(Opcional)

Establece el umbral máximo de píxeles para la imagen de entrada o los fotogramas de video. Si el total de píxeles de una imagen o video de entrada está dentro del rango de [min_pixels, max_pixels], el modelo reconoce la imagen original. Si el total de píxeles de la imagen de entrada es mayor que max_pixels, la imagen se reduce hasta que el total de píxeles esté por debajo de max_pixels.

Rango de valores

  • Entrada de imagen:

    El valor de max_pixels depende de si el parámetro vl_high_resolution_images está habilitado.

    • Si vl_high_resolution_images es False:

      • Qwen3.7, Qwen3.6, Qwen3.5, Qwen3-VL: El valor predeterminado es 2621440 y el valor máximo es 16777216.
      • Serie de código abierto Qwen2.5-VL y modelos de la serie QVQ: El valor predeterminado es 1003520 y el valor máximo es 12845056.
    • Si vl_high_resolution_images es True:

      • Qwen3.7, Qwen3.6, Qwen3.5, Qwen3-VL: max_pixels no es válido. Los píxeles máximos para la imagen de entrada están fijados en 16777216.
      • Serie de código abierto Qwen2.5-VL y modelos de la serie QVQ: max_pixels no es válido. Los píxeles máximos para la imagen de entrada están fijados en 12845056.
  • Entrada de archivo de video o lista de imágenes:
    • Serie qwen3.7 series, qwen3.6 series, qwen3.5 series, qwen3-vl-plus: El valor predeterminado es 655360 y el valor máximo es 2048000.
    • Otros modelos de código abierto de Qwen3-VL: El valor predeterminado es 655360 y el valor máximo es 786432.
    • Serie de código abierto Qwen2.5-VL y modelos de la serie QVQ: El valor predeterminado es 501760 y el valor máximo es 602112.

Ejemplos

  • Entrada de imagen: {"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"max_pixels": 8388608}
  • Entrada de archivo de video: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_pixels": 655360}
  • Entrada de lista de imágenes: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"max_pixels": 655360}

total_pixelsinteger(Opcional)

Limita el total de píxeles de todos los fotogramas extraídos de un video (píxeles de un solo fotograma × número total de fotogramas). Si el total de píxeles del video supera este límite, el sistema reduce los fotogramas del video, pero sigue garantizando que el valor de píxeles de un solo fotograma esté dentro del rango de [min_pixels, max_pixels]. Esto aplica a los modelos Qwen-VL y QVQ.

Para videos largos con muchos fotogramas extraídos, puede reducir adecuadamente este valor para disminuir el consumo de tokens y el tiempo de procesamiento, pero esto puede resultar en la pérdida de detalles de la imagen.

Rango de valores

  • Series qwen3.7, qwen3.6, qwen3.5: El valor predeterminado y máximo es 819200000. Este valor corresponde a 800000 tokens de imagen (1 token de imagen por 32×32 píxeles).
  • Serie qwen3-vl-plus: El valor predeterminado y máximo es 134217728. Este valor corresponde a 131072 tokens de imagen (1 token de imagen por 32×32 píxeles).
  • Otros modelos de código abierto de Qwen3-VL: El valor predeterminado y mínimo es 67108864. Este valor corresponde a 65536 tokens de imagen (1 token de imagen por 32×32 píxeles).
  • Serie de código abierto Qwen2.5-VL y modelos de la serie QVQ: El valor predeterminado y mínimo es 51380224. Este valor corresponde a 65536 tokens de imagen (1 token de imagen por 28×28 píxeles).

Ejemplos

  • Entrada de archivo de video: {"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"total_pixels": 134217728}
  • Entrada de lista de imágenes: {"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"total_pixels": 134217728}

cache_controlobject(Opcional)

Esto solo es compatible con modelos que admiten caché explícita. Se utiliza para habilitar la caché explícita.

Propiedades

type string(Obligatorio)

El valor debe ser ephemeral.

rolestring(Obligatorio)

El rol para un mensaje de usuario. El valor debe ser user.

Mensaje del asistente object(Opcional)

La respuesta del modelo al mensaje del usuario.

Propiedades

contentstring(Opcional)

El contenido del mensaje. Esto es opcional únicamente si se especifica el parámetro tool_calls en el mensaje del asistente.

rolestring(Obligatorio)

El valor debe ser assistant.

partialboolean(Opcional)

Especifica si se debe habilitar el modo parcial. Para obtener más información y una lista de modelos compatibles, consulte Modo parcial.

tool_calls array(Opcional)

La información de la herramienta y los parámetros de entrada que se devuelve después de iniciar una llamada de función. Contiene uno o más objetos. Esto se obtiene del campo tool_calls de la respuesta anterior del modelo.

Propiedades

id string

El ID de la respuesta de la herramienta.

type string

El tipo de herramienta. Actualmente, solo se admite function.

function object

La herramienta y la información de los parámetros de entrada.

Propiedades

name string

El nombre de la herramienta.

arguments string

La información de los parámetros de entrada, en formato de cadena JSON.

index integer

El índice de la información de la herramienta actual en el arreglo tool_calls.

Mensaje de herramienta object (Opcional)

La información de salida de la herramienta.

Propiedades

contentstring(Obligatorio)

El contenido de salida de la función de la herramienta. Debe estar en formato de cadena.

rolestring(Obligatorio)

El valor debe ser tool.

tool_call_idstring(Opcional)

El ID que se devuelve después de iniciar una llamada de función. Puede recuperarlo utilizando response.output.choices[0].message.tool_calls[$index]["id"]. Se utiliza para marcar la herramienta que corresponde al mensaje de herramienta.

temperaturefloat(Opcional)

La temperatura de muestreo, que controla la diversidad del texto generado por el modelo.

Una temperatura más alta genera texto más diverso, mientras que una temperatura más baja genera texto más determinista.

Rango de valores: [0, 2)

Cuando llama a través de HTTP, coloque temperature en el objeto parameters.

No recomendamos que modifique el valor predeterminado de temperature para los modelos QVQ.

top_pfloat(Opcional)

El umbral de probabilidad para el muestreo de núcleo, que controla la diversidad del texto generado por el modelo.

Un valor más alto de top_p genera texto más diverso, mientras que un valor más bajo de top_p genera texto más determinista.

Rango de valores: (0, 1.0].

En el SDK de Java, este parámetro es topP. Cuando realice la llamada mediante HTTP, coloque top_p en el objeto parameters.

No recomendamos que modifique el valor predeterminado de top_p para los modelos QVQ.

top_kinteger(Opcional)

El tamaño del conjunto de candidatos para el muestreo durante la generación. Por ejemplo, si establece este parámetro en 50, solo los 50 tokens con las puntuaciones más altas en una sola generación se utilizan para formar el conjunto de candidatos para el muestreo aleatorio. Un valor mayor aumenta la aleatoriedad y un valor menor aumenta el determinismo. Un valor de None o un valor mayor que 100 indica que la estrategia top_k no está habilitada y solo la estrategia top_p surte efecto.

El valor debe ser mayor o igual a 0.

Valores predeterminados de top_k

Serie QVQ: 10

Serie QwQ: 40

Todos los demás modelos: 20

Serie GLM (proporcionada por Alibaba Cloud): 20

Las series DeepSeek, Kimi y MiniMax no admiten el parámetro top_k.

En el SDK de Java, este parámetro es topK. Cuando realice la llamada mediante HTTP, coloque top_k en el objeto parameters.

No recomendamos que modifique el valor predeterminado de top_k para los modelos QVQ.

enable_thinking boolean (Opcional)

Especifica si se habilita el modo de pensamiento para un modelo de pensamiento híbrido. Esto aplica a los modelos Qwen3.8, Qwen3.7, Qwen3.6, Qwen3.5, Qwen3 y Qwen3-VL, junto con la serie DeepSeek-V4, la serie Kimi-K2.6/K2.5 y la serie GLM. La serie DeepSeek-V4 tiene el modo de pensamiento habilitado de forma predeterminada. Puede ajustar el esfuerzo de inferencia con el parámetro reasoning_effort.

Valores válidos:

  • true: La función está habilitada.

    Si está habilitado, el contenido de pensamiento se devuelve en el campo reasoning_content.

  • false: Deshabilitado

Para conocer los valores predeterminados de los diferentes modelos, consulte Modelos compatibles.

En el SDK de Java, este parámetro es enableThinking. Cuando realice la llamada mediante HTTP, coloque enable_thinking en el objeto parameters.

preserve_thinking boolean (Opcional) El valor predeterminado es false. (Valor predeterminado para qwen3.8-max/qwen3.8-flash:true)

Especifica si se debe agregar el reasoning_content de los mensajes del asistente en el historial de conversación a la entrada del modelo. Esto es adecuado para escenarios donde el modelo necesita referirse al proceso de razonamiento histórico.

Actualmente compatible con qwen3.7-max, qwen3.7-max-2026-05-20 y snapshots posteriores, qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.6-flash-2026-04-16, qwen3.8-max (habilitado de forma predeterminada), qwen3.8-max-0902 (habilitado de forma predeterminada), qwen3.8-flash (habilitado de forma predeterminada), kimi-k2.6 (implementado en Alibaba Cloud Model Studio), kimi-k2.7-code (implementado en Alibaba Cloud Model Studio, habilitado de forma predeterminada), kimi/kimi-k2.7-code-highspeed (suministrado por Moonshot AI, habilitado de forma predeterminada) y kimi/kimi-k2.7-code (suministrado por Moonshot AI, habilitado de forma predeterminada).

Importante (qwen3.8-max/qwen3.8-flash): Al utilizar qwen3.8-max/qwen3.8-flash, preserve_thinking tiene como valor predeterminado true. Debe devolver todo el reasoning_content histórico en el campo reasoning_content. NO concatene reasoning_content en el campo de contenido. Hacerlo puede degradar el rendimiento del modelo.

  • Si los mensajes históricos no contienen reasoning_content, habilitar este parámetro no provoca ningún error.
  • Cuando está habilitado, el reasoning_content de la conversación histórica se incluye en el recuento de tokens de entrada y se factura.

Cuando realiza la llamada mediante HTTP, coloque preserve_thinking en el objeto parameters. El SDK de Java no es compatible.

thinking_budget integer (Opcional)

La longitud máxima del proceso de pensamiento. Esto aplica a los modelos Qwen3.8, Qwen3.7, Qwen3.6, Qwen3.5, Qwen3-VL, Qwen3, GLM y Kimi, excepto kimi-k3, que no admite este parámetro. Para obtener más información, consulte Limitar la longitud del pensamiento.

El valor predeterminado es la longitud máxima de la cadena de pensamiento para el modelo. Para obtener más información, consulte Seleccionar un modelo.

En el SDK de Java, este parámetro es thinkingBudget. Cuando realice la llamada mediante HTTP, coloque thinking_budget en el objeto parameters.

El valor predeterminado es la longitud máxima de la cadena de pensamiento para el modelo.

reasoning_effort string (Opcional)

Controla la intensidad de inferencia de los modelos. Los valores válidos y predeterminados varían según el modelo.

Series DeepSeek-V4 y GLM (Valor predeterminado: high)

Valores válidos: high (inferencia de alta intensidad) y max (inferencia de intensidad máxima). low y medium se asignan a high, y xhigh se asigna a max.

Esto aplica a glm-5.2, glm-5.1, glm-5, deepseek-v4.1-flash y deepseek-v4-pro.

glm-5.3: Valor predeterminado:max

Valores válidos: max (inferencia profunda), high (inferencia mejorada) y low (inferencia ligera). Pasar cualquier otro valor devuelve un error.

Este modelo siempre piensa. enable_thinking solo acepta true; pasar false provoca que la solicitud de API falle.

Modelos de la serie Qwen3.8: Valor predeterminado:xhigh

Valores válidos:

  • xhigh (predeterminado): Inferencia de intensidad máxima
  • medium: Inferencia estándar
  • low: Inferencia de baja intensidad

Asignación de valores estándar de OpenAI: max se asigna a xhigh, high se asigna a xhigh, minimal se asigna a low, y none se asigna a enable_thinking=False.

Establecer valores distintos a los valores válidos y mapeados anteriores causará un error.

Para la serie qwen3.8, reasoning_effort y thinking_budget no se pueden configurar al mismo tiempo. Configurar ambos provocará un error. Sin embargo, admiten conversión mutua:

  • Cuando no se establece thinking_budget, los niveles de reasoning_effort se asignan automáticamente a thinking_budget: low corresponde a 4096, medium corresponde a 16384 y xhigh corresponde a 262144.
  • Cuando no se establece reasoning_effort, thinking_budget se asigna automáticamente de nuevo a reasoning_effort: 0–4096 corresponde a low, 4097–16384 corresponde a medium y 16385–262144 corresponde a xhigh.
  • Cuando ninguno está establecido, se utilizan el thinking_budget predeterminado (131072) y el reasoning_effort predeterminado (xhigh).

Cuando llama a través de HTTP, coloque reasoning_effort en el objeto parameters.

tool_stream boolean (Opcional) El valor predeterminado es false.

Este parámetro solo afecta el comportamiento de salida en streaming de parámetros de herramientas complejas y solo es efectivo en llamadas en streaming. Los parámetros de herramientas simples, donde todos los tipos de parámetros son cadenas, pueden transmitirse en streaming siempre que las llamadas en streaming estén habilitadas. tool_stream no tiene ningún efecto sobre ellos. Las herramientas complejas son aquellas en las que algunos tipos de parámetros en la definición de la herramienta son matrices u objetos. Actualmente, solo las series Qwen y GLM admiten esto.

Lista de compatibilidad de la serie Qwen:

  • Serie qwen-max: Modalidad de texto de las series qwen3.8-max y qwen3.7-max
  • Serie qwen-plus: Modalidad de texto de las series qwen3.7-plus y qwen3.6-plus, y todas las modalidades de la serie qwen3.5-plus
  • Serie qwen-flash: Todas las modalidades de las series qwen3.8-flash, qwen3.7-flash, qwen3.6-flash y qwen3.5-flash

Referencia de uso de la serie Qwen:

  • tool_stream=false: Los parámetros complejos de la herramienta se generan todos a la vez. Este es el comportamiento predeterminado y el formato complejo es más preciso.
  • tool_stream=true: Los parámetros complejos de la herramienta se transmiten en flujo. Esto evita el riesgo de tiempos de espera agotados en formatos complejos.

Las herramientas complejas son herramientas donde algunos tipos de parámetros en la definición de la herramienta son arreglos u objetos.

Lista de compatibilidad de la serie GLM: glm-5 y glm-5.1.

Referencia de uso de la serie GLM:

  • tool_stream=false: Los parámetros de la herramienta se generan todos a la vez. Este es el comportamiento predeterminado y el formato complejo es más preciso.
  • tool_stream=true: Los parámetros de la herramienta se transmiten en flujo. Esto evita el riesgo de tiempo de espera para formatos complejos.

Cuando llama a través de HTTP, coloque tool_stream en el objeto parameters.

enable_code_interpreter boolean (Opcional) El valor predeterminado es false.

Especifica si se debe habilitar la función de intérprete de código. Para obtener más información, consulte Intérprete de código.

Valores válidos:

  • true: Habilita la función.
  • false: Deshabilita la función.

El SDK de Java no es compatible. Cuando realice la llamada mediante HTTP, coloque enable_code_interpreter en el objeto parameters.

clear_thinkingboolean(Opcional) El valor predeterminado es false.

Controla si se utiliza el reasoning_content (proceso de pensamiento) de turnos anteriores como entrada de contexto para el modelo en una conversación de varios turnos. Esto solo es compatible con los modelos de la serie GLM: glm-5.3, glm-5.2, glm-5.1 y glm-5. El valor predeterminado es true para glm-5.3 y false para los demás modelos.

  • true: Habilita la función. Esto ignora el reasoning_content de turnos anteriores y utiliza solo texto visible, llamadas de herramientas y resultados como entrada de contexto. Esto puede reducir la longitud del contexto y el costo.
  • false (predeterminado): Deshabilita la función. Esto conserva el reasoning_content de turnos anteriores y lo proporciona al modelo junto con el contexto. Si usted want habilitar el pensamiento preservado, debe pasar el reasoning_content histórico completo, sin modificaciones y en su orden original en los mensajes. La omisión, recorte, reescritura o reordenamiento degrada el rendimiento o impide que la función surta efecto.

repetition_penaltyfloat(Opcional)

La penalización por repetir secuencias consecutivas durante la generación del modelo. Un valor más alto de repetition_penalty puede reducir la repetición en la salida del modelo. Un valor de 1.0 indica que no hay penalización. El valor debe ser mayor que 0.

En el SDK de Java, este parámetro es repetitionPenalty. Cuando realiza la llamada mediante HTTP, coloque repetition_penalty en el objeto parameters.

No recomendamos que modifique el valor predeterminado de repetition_penalty para los modelos QVQ.

presence_penaltyfloat(Opcional)

Controla la repetición de contenido cuando el modelo genera texto.

Rango de valores: [-2.0, 2.0]. Los valores positivos reducen la repetición, mientras que los valores negativos la aumentan.

En escenarios que requieren diversidad, diversión o creatividad, como la escritura creativa o la lluvia de ideas, puede aumentar este valor. En escenarios que enfatizan la coherencia y la precisión terminológica, como documentos técnicos o textos formales, puede disminuir este valor.

Valores predeterminados de presence_penalty

Qwen3.8 (modo sin pensamiento), Qwen3.7 (modo sin pensamiento), Qwen3.6 (modo sin pensamiento), Qwen3.5-Omni, Qwen3.5 (modo sin pensamiento), Qwen3 (modo sin pensamiento), serie Qwen3-Instruct/1.7b/4b (modo de pensamiento), serie QVQ, qwen-max, serie qwen2.5-vl, Qwen3-VL (sin pensamiento): 1.5;

qwen-plus/qwen-plus-latest/2025-04-28 (modo de pensamiento): 0.5;

Todos los demás son 0.0.

Serie DeepSeek (suministrada por Alibaba Cloud): versión destilada deepseek-r1-distill-qwen: 1;

Serie Kimi (suministrada por Alibaba Cloud): kimi-k2.7-code, kimi-k2.6, kimi-k2.5: 0.0;

Serie Kimi (suministrada por Moonshot AI): 0.0;

Serie MiniMax (suministrada por Alibaba Cloud): MiniMax-M2.5: 0.0;

Otros modelos de DeepSeek, Kimi, GLM y MiniMax no tienen un valor predeterminado.

Cómo funciona

Si el valor del parámetro es positivo, el modelo aplica una penalización a los tokens que ya existen en el texto. La penalización no está relacionada con el número de veces que aparece el token. Esto reduce la probabilidad de que estos tokens reaparezcan, disminuyendo así la repetición de contenido y aumentando la diversidad léxica.

Ejemplo

Prompt: Traduzca esta oración al chino: "Esta película es buena. La trama es buena, la actuación es buena, la música es buena y, en general, toda la película simplemente es buena. Es realmente buena, de hecho. La trama es tan buena, y la actuación es tan buena, y la música es tan buena".

Valor del parámetro 2.0: Esta película es genial. La trama es fantástica, la actuación es soberbia y la música también es muy hermosa. En general, toda la película es simplemente increíble. De hecho, es verdaderamente sobresaliente. La historia es muy emocionante, las actuaciones son excelentes y la banda sonora es muy conmovedora.

Valor del parámetro 0.0: Esta película es buena. La trama es buena, la actuación es buena y la música es buena. En general, toda la película es muy buena. De hecho, es realmente genial. La trama es muy buena, la actuación también es excelente y la música es igualmente sobresaliente.

Valor del parámetro -2.0: Esta película es buena. La trama es buena, la actuación es buena y la música es buena. En general, toda la película es buena. De hecho, es realmente buena. La trama es muy buena, la actuación es muy buena y la música es muy buena.

No modifique el valor predeterminado de presence_penalty para los modelos QVQ.

El SDK de Java no admite la configuración de este parámetro*.* Cuando realiza la llamada mediante HTTP, coloque presence_penalty en el objeto parameters.

vl_high_resolution_imagesboolean(Opcional) Valor predeterminado: false

Especifica si se debe aumentar el límite de píxeles para las imágenes de entrada al recuento de píxeles que corresponde a 16384 tokens. Para obtener más información, consulte Procesamiento de imágenes de alta resolución.

  • vl_high_resolution_images: true utiliza una estrategia de resolución fija e ignora la configuración de max_pixels. Si se excede la resolución, el recuento total de píxeles de la imagen se reduce para mantenerse dentro de este límite.

    Haga clic para ver los límites de píxeles de cada modelo

    Cuando vl_high_resolution_images es True, los límites de píxeles varían según el modelo:

    • Para la serie Qwen3.8, serie Qwen3.7, serie Qwen3.6, serie Qwen3.5, Qwen3-VL series, the value is 16777216. (Each Tokencorresponds to3232pixels. The total value is calculated as1638432*32`.)
    • QVQ series, otros modelos de la Qwen2.5-VL series: 12845056 (1 token corresponde a 28*28 píxeles, que es 16384*28*28)
  • Cuando vl_high_resolution_images es false, el límite de píxeles se determina mediante max_pixels. Si el recuento de píxeles de la imagen de entrada supera max_pixels, la imagen se reduce para ajustarse al límite de max_pixels. El límite de píxeles predeterminado para cada modelo es el valor predeterminado de max_pixels.

En el SDK de Java, este parámetro es vlHighResolutionImages (requiere V2.20.8 o posterior). Cuando realiza la llamada mediante HTTP, coloque vl_high_resolution_images en el objeto parameters.

vl_enable_image_hw_outputboolean(Opcional) El valor predeterminado es false.

Especifica si se deben devolver las dimensiones de la imagen escalada. El modelo escala la imagen de entrada. Si establece este parámetro en True, devuelve la altura y el ancho de la imagen escalada. Si la salida en streaming está habilitada, esta información se devuelve en el último fragmento. Esto es compatible con los modelos Qwen-VL.

En el SDK de Java, este parámetro es vlEnableImageHwOutput. La versión mínima requerida del SDK de Java es 2.20.8*.* Cuando realice llamadas mediante HTTP, coloque vl_enable_image_hw_output en el objeto parameters.

max_tokensinteger(Opcional, se desaprobará)

Este parámetro quedará obsoleto. Para nuevas integraciones, utilice max_completion_tokens.

El significado de este parámetro varía según el modelo:

  • deepseek-v4.1-flash, deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731: El número máximo de tokens para la suma de la respuesta del modelo y el contenido de la cadena de pensamiento. Si la salida del modelo supera este valor, la generación se detiene anticipadamente y el finish_reason devuelto es length.
  • glm-5.3: max_tokens es el número máximo de tokens para la suma de la respuesta del modelo y el contenido de la cadena de pensamiento. Si la salida del modelo supera este valor, la generación se detiene anticipadamente y el finish_reason devuelto es length. glm-5.3 ignora el parámetro thinking_budget.
  • glm-5.2: Cuando no se pasa el parámetro thinking_budget, max_tokens es el número máximo de tokens para la suma de la respuesta del modelo y el contenido de la cadena de pensamiento, y si la salida del modelo supera este valor, la generación se detiene anticipadamente y el finish_reason devuelto es length. Cuando se pasa el parámetro thinking_budget, max_tokens es el número máximo de tokens solo para la respuesta del modelo, y el número de tokens para la parte de la cadena de pensamiento se controla por separado mediante thinking_budget.
  • Otros modelos: El número máximo de tokens para la respuesta del modelo (excluyendo la cadena de pensamiento). Si el contenido generado excede este valor, la generación se detiene anticipadamente y el finish_reason devuelto es length.

Para los modelos GLM, los valores predeterminado y máximo se indican en la siguiente tabla. Para otros modelos, los valores predeterminado y máximo son ambos la longitud máxima de salida del modelo.

ProveedorModeloValor predeterminadoValor máximo
Alibaba Cloudglm-5.3, glm-5.2, glm-5.2-fast-preview, glm-5.1, glm-565536131072
ZHIPU AIZHIPU/GLM-5.3, ZHIPU/GLM-5.265536131072

En el SDK de Java, este parámetro es maxTokens. Para los modelos Qwen-VL, es maxLength en el SDK de Java, pero las versiones posteriores a 2.18.4 también permiten configurarlo como maxTokens. Cuando realice llamadas mediante HTTP, coloque max_tokens en el objeto parameters.

max_completion_tokensinteger(Opcional)

La longitud máxima de la salida del modelo, incluida la cadena de pensamiento y la respuesta del modelo. Si la salida del modelo excede este valor, la generación se detiene anticipadamente y el finish_reason devuelto es length.

Para los modelos GLM, consulte la tabla del parámetro max_tokens para conocer los valores predeterminado y máximo. Para otros modelos, los valores predeterminado y máximo son ambos la longitud máxima de salida del modelo.

Diferencia con max_tokens: max_completion_tokens siempre limita la salida completa del modelo (cadena de pensamiento + respuesta). El alcance específico de max_tokens varía según el modelo y la configuración de thinking_budget, como se describe anteriormente. Para los modelos de razonamiento, se recomienda utilizar max_completion_tokens.

Se admiten los siguientes modelos:

  • Qwen Max: Modelos Qwen3.7-Max y posteriores
  • Qwen Plus: Modelos Qwen3.5-Plus y posteriores
  • Qwen Flash: Modelos Qwen3.5-Flash y posteriores
  • Kimi: Modelos kimi-k2.5 y posteriores
  • GLM: Los modelos suministrados por Alibaba Cloud y ZHIPU AI que aparecen en la tabla anterior
  • MiniMax: Modelos MiniMax-M2.5 y posteriores
  • DeepSeek: deepseek-v4-pro y modelos posteriores

Excepto los modelos GLM suministrados por ZHIPU AI que aparecen en la tabla anterior, los modelos anteriores no incluyen otros modelos suministrados directamente por terceros.

Puede haber una diferencia de hasta 10 tokens entre el recuento real de tokens de salida y el valor especificado de max_completion_tokens.

Actualmente, el SDK de Java no admite este parámetro. Cuando realiza la llamada mediante HTTP, coloque max_completion_tokens en el objeto parameters.

seedinteger(Opcional)

Una semilla de número aleatorio. Este parámetro se utiliza para garantizar resultados reproducibles con la misma entrada y los mismos parámetros. Si pasa el mismo valor de seed en una llamada y los demás parámetros permanecen sin cambios, el modelo devuelve el mismo resultado en la medida de lo posible.

Rango de valores: [0,2<sup>31</sup>−1].

Cuando llama a través de HTTP, coloque seed en el objeto parameters.

streamboolean(Opcional)El valor predeterminado es false.

Especifica si se debe transmitir la respuesta en flujo. Los valores válidos son:

  • false: El modelo genera todo el contenido y luego devuelve el resultado de una sola vez.
  • true: El modelo genera y emite contenido sobre la marcha. Esto significa que el modelo emite inmediatamente un fragmento de contenido tan pronto como se genera.

Este parámetro solo es compatible con el SDK de Python. Para implementar la salida por streaming con el SDK de Java, llame a la interfaz streamCall. Para implementar la salida por streaming mediante HTTP, especifique X-DashScope-SSE como enable en el encabezado.

La edición comercial de Qwen3 (modo de pensamiento), la edición de código abierto de Qwen3, QwQ y QVQ solo admiten salida en flujo.

incremental_outputboolean(Opcional) El valor predeterminado es false. Para los modelos Qwen3-Max, Qwen3-VL, Qwen3 edición de código abierto, QwQ y QVQ, el valor predeterminado es true.

Especifica si se debe habilitar la salida incremental en el modo de salida en flujo. Recomendamos establecer este parámetro en true.

Valor:

  • false: Cada salida contiene la secuencia completa generada hasta ese momento. La última salida es el resultado generado completo.
I
I like
I like apple
I like apple.
  • true (recomendado): La salida es incremental. Las salidas posteriores no incluyen el contenido generado previamente. Debe leer estos fragmentos uno por uno en tiempo real para obtener el resultado completo.
I
like
apple
.

En el SDK de Java, este parámetro es incrementalOutput. Cuando realiza la llamada mediante HTTP, coloque incremental_output en el objeto parameters.

Los modelos QwQ y los modelos Qwen3 en modo de razonamiento solo admiten configurar este parámetro en true. Dado que el valor predeterminado para los modelos de edición comercial de Qwen3 es false, debe configurarlo manualmente en true en modo de razonamiento.

Los modelos de edición de código abierto de Qwen3 no admiten establecer este parámetro en false.

response_formatobject (Opcional) El valor predeterminado es {"type": "text"}.

El formato del contenido devuelto. Los valores válidos son:

  • {"type": "text"}: Genera una respuesta de texto.
  • {"type": "json_object"}: Genera una cadena JSON en un formato estándar.
  • {"type": "json_schema", "json_schema": {...}}: Genera una cadena JSON que cumple estrictamente con el esquema JSON especificado, lo que le brinda un control preciso sobre la estructura de salida y los tipos de campos.

Para obtener más información, consulte Salida estructurada. Los modos json_object y json_schema admiten diferentes modelos. Para obtener más información, consulte Modelos compatibles.

Si especifica {"type": "json_object"}, debe indicar explícitamente al modelo que genere JSON en el prompt, por ejemplo, "Por favor, genere en formato JSON". De lo contrario, se producirá un error. Si especifica {"type": "json_schema", ...}, no es necesario que el prompt contenga la palabra clave JSON.

En el SDK de Java, este parámetro es responseFormat. Cuando realiza la llamada mediante HTTP, coloque response_format en el objeto parameters.

Propiedades

typestring(Obligatorio)

El formato del contenido devuelto. Los valores válidos son:

  • text: Genera una respuesta de texto.
  • json_object: Genera una cadena JSON en un formato estándar.
  • json_schema: Genera una cadena JSON que cumple estrictamente con la estructura definida por el campo json_schema.

json_schemaobject(Opcional)

Requerido cuando type es json_schema. Define la estructura JSON que debe seguir la salida del modelo. Para obtener más información, consulte Obtención de salida estructurada.

Cuando llama al modelo a través de DashScope, debe construir el esquema JSON manualmente. Para ver el formato y ejemplos, consulte Obtención de salida estructurada. El SDK de Java aún no es compatible.

Propiedades

namestring(Obligatorio)

El nombre del esquema.

schemaobject(Obligatorio)

El objeto de esquema JSON que describe la estructura de salida. Utilice properties para definir la estructura de campos, required para listar los campos obligatorios y additionalProperties para controlar si se pueden devolver campos que no están definidos en el esquema. Le recomendamos establecer additionalProperties en false para que solo se devuelvan los campos definidos. Tipos de datos admitidos: string, number, integer, boolean, object, array y enum. Para obtener más información, consulte Guía de configuración.

strictboolean(Opcional)

Especifica si se debe seguir estrictamente la estructura definida por schema. Recomendamos establecer este parámetro en true.

result_formatstring(Opcional)El valor predeterminado es text. Para los modelos Qwen3-Max, Qwen3-VL, QwQ y los modelos de código abierto Qwen3, el valor predeterminado es message.

El formato de los datos devueltos. Le recomendamos que configure este parámetro en message para facilitar las conversaciones de múltiples turnos.

La plataforma unificará posteriormente el valor predeterminado a message.

En el SDK de Java, este parámetro es resultFormat. Cuando realiza la llamada mediante HTTP, coloque result_format en el objeto parameters.

Si el modelo es Qwen-VL o QVQ, establecer el valor en text no tiene ningún efecto.

Los modelos Qwen3-Max, Qwen3-VL y Qwen3 en modo de razonamiento solo se pueden configurar en message. Dado que el valor predeterminado para los modelos de edición comercial de Qwen3 es text, debe configurarlo en message.

Si utiliza el SDK de Java para llamar a un modelo de código abierto Qwen3 y pasa text, la respuesta aún se devuelve en formato message.

logprobs boolean (Opcional) El valor predeterminado es false.

Especifica si se deben devolver las probabilidades logarítmicas de los tokens de salida. Los valores válidos son:

  • true

    Atrás

  • false

    No se puede devolver.

Se admiten los siguientes modelos:

  • Modelos instantáneos de la serie qwen-plus (excluyendo modelos de edición estable)
  • Serie qwen3-vl-plus (incluidos los modelos de edición estable)
  • Modelos de código abierto de Qwen3

Cuando llama a través de HTTP, coloque logprobs en el objeto parameters.

top_logprobs integer (Opcional) El valor predeterminado es 0.

Especifica el número de tokens candidatos más probables a devolver en cada paso de generación.

Rango de valores: [0, 5]

Este parámetro solo surte efecto si logprobs es true.

En el SDK de Java, este parámetro es topLogprobs. Cuando realiza la llamada mediante HTTP, coloque top_logprobs en el objeto parameters.

ninteger(Opcional) El valor predeterminado es 1.

El número de respuestas a generar. El rango de valores es 1-4. Para escenarios que requieren generar múltiples respuestas, como escritura creativa o textos publicitarios, puede establecer un valor mayor para n.

Actualmente, solo se admiten modelos Qwen3 (modo sin pensamiento). El valor se fija en 1 si se pasa el parámetro tools.

Establecer un valor mayor para n no aumenta el consumo de tokens de entrada, pero sí incrementa el consumo de tokens de salida.

Cuando llama a través de HTTP, coloque n en el objeto parameters.

stopstring or array(Opcional)

Se utiliza para especificar palabras de parada. Cuando una cadena o un token_id especificado en stop aparece en el texto generado, la generación se detiene inmediatamente.

Puede pasar palabras sensibles para controlar la salida del modelo.

Cuando stop es una matriz, no puede ingresar tanto token_id como cadenas como elementos. Por ejemplo, no puede especificar ["Hello",104307].

Cuando llama a través de HTTP, coloque stop en el objeto parameters.

toolsarray(Opcional)

Una matriz que contiene uno o más objetos de herramienta para que el modelo los llame durante la llamada de función. Para obtener más información, consulte Llamada de función.

Cuando utiliza tools, debe establecer result_format en message.

Cuando inicia una llamada a función o envía resultados de ejecución de herramientas, debe establecer el parámetro tools.

Propiedades

typestring(Obligatorio)

El tipo de herramienta. Actualmente, solo se admite function.

functionobject(Obligatorio)

Propiedades

namestring(Obligatorio)

El nombre de la función de la herramienta. Debe consistir en letras y números, y puede contener guiones bajos y guiones. La longitud máxima es de 64 caracteres.

descriptionstring(Obligatorio)

Una descripción de la función de la herramienta, que ayuda al modelo a decidir cuándo y cómo llamarla.

parametersobject(Opcional) El valor predeterminado es {}.

Una descripción de los parámetros de la herramienta, que debe ser un esquema JSON válido. Para obtener una descripción del esquema JSON, consulte este enlace. Si el parámetro parameters está vacío, significa que la herramienta no tiene parámetros de entrada, como una herramienta de consulta de hora.

Para mejorar la precisión de las llamadas a herramientas, recomendamos que pase parameters.

Cuando realice la llamada mediante HTTP, coloque tools en el objeto parameters. Esto no es compatible temporalmente para los modelos de la serie qwen-vl.

tool_choicestring or object(Opcional) El valor predeterminado es auto.

La estrategia de selección de herramientas. Puede configurar este parámetro para forzar un método de llamada de herramienta para un tipo específico de problema, como usar siempre una determinada herramienta o deshabilitar todas las herramientas.

  • auto

    El LLM elige la estrategia de herramientas de forma autónoma.

  • none

    Si want deshabilitar temporalmente las llamadas a herramientas en una solicitud específica, puede establecer el parámetro tool_choice en none.

  • required

    Para forzar que se llame al menos a una herramienta, establezca el parámetro tool_choice en required, y el modelo siempre devolverá información de llamada a la herramienta.

    Los modelos de la serie Qwen no admiten required: en modo sin razonamiento no puede garantizar que siempre se llame a una herramienta, y en modo de razonamiento no se admite required.

  • {"type": "function", "function": {"name": "the_function_to_call"}}

    Si usted want forzar la llamada a una herramienta específica, puede configurar el parámetro tool_choice en {"type": "function", "function": {"name": "the_function_to_call"}}, donde the_function_to_call es el nombre de la función de herramienta especificada.

    Los modelos en modo de pensamiento no admiten forzar una llamada a una herramienta específica.

En el SDK de Java, este parámetro es toolChoice. Cuando realiza la llamada mediante HTTP, coloque tool_choice en el objeto parameters.

parallel_tool_calls boolean (Opcional) El valor predeterminado es false.

Especifica si se deben habilitar las llamadas paralelas a herramientas.

Valores válidos:

  • true: Habilitado
  • false: Deshabilitado.

Para obtener más información sobre las llamadas paralelas a herramientas, consulte Llamadas paralelas a herramientas.

En el SDK de Java, este parámetro es parallelToolCalls. Cuando realiza la llamada mediante HTTP, coloque parallel_tool_calls en el objeto parameters.

Entrada de texto

Python

import os
from dashscope import MultiModalConversation
import dashscope

# The following is the base_url for the Singapore region. When making a call, replace {WorkspaceId} with your actual workspace ID. The URLs for different regions vary.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
    {'role': 'system', 'content': [{'text': 'You are a helpful assistant.'}]},
    {'role': 'user', 'content': [{'text': 'Who are you?'}]}
]
response = MultiModalConversation.call(
    # If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
    # The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen3.8-max", # This example uses qwen3.8-max. You can replace it with another model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
    messages=messages,
    )
print(response)

Java

// We recommend that you use DashScope SDK V2.12.0 or later.
import java.util.Arrays;
import java.util.Collections;
import java.lang.System;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static MultiModalConversationResult callWithMessage() throws ApiException, NoApiKeyException, UploadFileException {
        // The following is the base_url for the Singapore region. When making a call, replace {WorkspaceId} with your actual workspace ID. The URLs for different regions vary.
        MultiModalConversation conv = new MultiModalConversation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
        MultiModalMessage systemMsg = MultiModalMessage.builder()
                .role(Role.SYSTEM.getValue())
                .content(Arrays.asList(Collections.singletonMap("text", "You are a helpful assistant.")))
                .build();
        MultiModalMessage userMsg = MultiModalMessage.builder()
                .role(Role.USER.getValue())
                .content(Arrays.asList(Collections.singletonMap("text", "Who are you?")))
                .build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // If you have not configured an environment variable, replace the following line with your Model Studio API key: .apiKey("sk-xxx")
                // The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // This example uses qwen3.8-max. You can replace it with another model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
                .model("qwen3.8-max")
                .messages(Arrays.asList(systemMsg, userMsg))
                .build();
        return conv.call(param);
    }
    public static void main(String[] args) {
        try {
            MultiModalConversationResult result = callWithMessage();
            System.out.println(JsonUtils.toJson(result));
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            // Use a logging framework to record the exception information.
            System.err.println("An error occurred while calling the generation service: " + e.getMessage());
        }
        System.exit(0);
    }
}

PHP (HTTP)

<?php
$url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation";
// The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
$apiKey = getenv('DASHSCOPE_API_KEY');

$data = [
    // This example uses qwen3.8-max. You can replace it with another model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
    "model" => "qwen3.8-max",
    "input" => [
        "messages" => [
            [
                "role" => "system",
                "content" => [["text" => "You are a helpful assistant."]]
            ],
            [
                "role" => "user",
                "content" => [["text" => "Who are you?"]]
            ]
        ]
    ],
    "parameters" => [
        "result_format" => "message"
    ]
];

$jsonData = json_encode($data);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer $apiKey",
    "Content-Type: application/json"
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($httpCode == 200) {
    echo "Response: " . $response;
} else {
    echo "Error: " . $httpCode . " - " . $response;
}

curl_close($ch);
?>

Node.js (HTTP)

DashScope no proporciona un SDK para el entorno Node.js. Para realizar llamadas utilizando el SDK de OpenAI para Node.js, consulte la sección OpenAI en este tema.

import fetch from 'node-fetch';
// The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
const apiKey = process.env.DASHSCOPE_API_KEY;

const data = {
    model: "qwen3.8-max", // This example uses qwen3.8-max. You can replace it with another model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
    input: {
        messages: [
            {
                role: "system",
                content: [{"text": "You are a helpful assistant."}]
            },
            {
                role: "user",
                content: [{"text": "Who are you?"}]
            }
        ]
    },
    parameters: {
        result_format: "message"
    }
};

fetch('https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation', {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
    console.log(JSON.stringify(data));
})
.catch(error => {
    console.error('Error:', error);
});

C# (HTTP)

using System.Net.Http.Headers;
using System.Text;

class Program
{
    private static readonly HttpClient httpClient = new HttpClient();

    static async Task Main(string[] args)
    {
        // If you have not configured an environment variable, replace the following line with your Model Studio API key: string? apiKey = "sk-xxx";
        // The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");

        if (string.IsNullOrEmpty(apiKey))
        {
            Console.WriteLine("The API key is not set. Make sure that the 'DASHSCOPE_API_KEY' environment variable is set.");
            return;
        }

        // Set the request URL and content.
        string url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation";
        // This example uses qwen3.8-max. You can replace it with another model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
        string jsonContent = @"{
            ""model"": ""qwen3.8-max"",
            ""input"": {
                ""messages"": [
                    {
                        ""role"": ""system"",
                        ""content"": [{""text"": ""You are a helpful assistant.""}]
                    },
                    {
                        ""role"": ""user"",
                        ""content"": [{""text"": ""Who are you?""}]
                    }
                ]
            },
            ""parameters"": {
                ""result_format"": ""message""
            }
        }";

        // Send the request and get the response.
        string result = await SendPostRequestAsync(url, jsonContent, apiKey);

        // Print the result.
        Console.WriteLine(result);
    }

    private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
    {
        using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
        {
            // Set the request headers.
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            // Send the request and get the response.
            HttpResponseMessage response = await httpClient.PostAsync(url, content);

            // Process the response.
            if (response.IsSuccessStatusCode)
            {
                return await response.Content.ReadAsStringAsync();
            }
            else
            {
                return $"Request failed: {response.StatusCode}";
            }
        }
    }
}

Go (HTTP)

DashScope no proporciona un SDK para Go. Para realizar llamadas utilizando el SDK de Go de OpenAI, consulte la sección OpenAI-Go en este tema.

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"log"
	"net/http"
	"os"
)

type ContentItem struct {
	Text string `json:"text"`
}

type Message struct {
	Role    string        `json:"role"`
	Content []ContentItem `json:"content"`
}

type Input struct {
	Messages []Message `json:"messages"`
}

type Parameters struct {
	ResultFormat string `json:"result_format"`
}

type RequestBody struct {
	Model      string     `json:"model"`
	Input      Input      `json:"input"`
	Parameters Parameters `json:"parameters"`
}

func main() {
	// Create an HTTP client.
	client := &http.Client{}

	// Build the request body.
	requestBody := RequestBody{
		// This example uses qwen3.8-max. You can replace it with another model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
		Model: "qwen3.8-max",
		Input: Input{
			Messages: []Message{
				{
					Role:    "system",
					Content: []ContentItem{{Text: "You are a helpful assistant."}},
				},
				{
					Role:    "user",
					Content: []ContentItem{{Text: "Who are you?"}},
				},
			},
		},
		Parameters: Parameters{
			ResultFormat: "message",
		},
	}

	jsonData, err := json.Marshal(requestBody)
	if err != nil {
		log.Fatal(err)
	}

	// Create a POST request.
	req, err := http.NewRequest("POST", "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation", bytes.NewBuffer(jsonData))
	if err != nil {
		log.Fatal(err)
	}

	// Set the request headers.
	// If you have not configured an environment variable, replace the following line with your Model Studio API key: apiKey := "sk-xxx"
	// The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
	apiKey := os.Getenv("DASHSCOPE_API_KEY")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	req.Header.Set("Content-Type", "application/json")

	// Send the request.
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()

	// Read the response body.
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}

	// Print the response content.
	fmt.Printf("%s\n", bodyText)
}

curl

Reemplace {WorkspaceId} con su ID de espacio de trabajo real.

Las claves de API para las regiones de Singapur, EE. UU. (Virginia) y China (Pekín) son diferentes. Para obtener más información, consulte Obtener una clave de API

curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen3.8-max",
    "input":{
        "messages":[
            {
                "role": "system",
                "content": [{"text": "You are a helpful assistant."}]
            },
            {
                "role": "user",
                "content": [{"text": "Who are you?"}]
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

CLI de dashscope

Llamada a través de la línea de comandos dashscope.

export DASHSCOPE_API_KEY="your-api-key"
# Replace {WorkspaceId} with your workspace ID, ap-southeast-1 with your region (e.g., us-east-1, eu-central-1)
export DASHSCOPE_HTTP_BASE_URL="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"
dashscope generation create -m qwen-plus -p "Hello"

ImportanteEl asistente interactivo SDK Expert puede realizar las mismas tareas de desarrollo y solución de problemas mediante lenguaje natural; consulte

DashScope SDK Expert.

Para la tabla completa de regiones, consulte Resumen de URL base.

Salida de transmisión

Para obtener más información, consulte Salida en flujo.

Modelos de generación de texto

import os
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
    {'role':'system','content':'you are a helpful assistant'},
    {'role': 'user','content': 'Who are you?'}
]
responses = dashscope.Generation.call(
    # If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
    # The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # This example uses qwen-plus; replace with any other text-generation model as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
    model="qwen-plus",
    messages=messages,
    result_format='message',
    stream=True,
    incremental_output=True
    )
for response in responses:
    print(response)
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
import io.reactivex.Flowable;
import java.lang.System;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    private static final Logger logger = LoggerFactory.getLogger(Main.class);
    private static void handleGenerationResult(GenerationResult message) {
        System.out.println(JsonUtils.toJson(message));
    }
    public static void streamCallWithMessage(Generation gen, Message userMsg)
            throws NoApiKeyException, ApiException, InputRequiredException {
        GenerationParam param = buildGenerationParam(userMsg);
        Flowable<GenerationResult> result = gen.streamCall(param);
        result.blockingForEach(message -> handleGenerationResult(message));
    }
    private static GenerationParam buildGenerationParam(Message userMsg) {
        return GenerationParam.builder()
                // If you have not configured an environment variable, replace the following line with your Model Studio API key: .apiKey("sk-xxx")
                // The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // This example uses qwen-plus; replace with any other text-generation model as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
                .model("qwen-plus")
                .messages(Arrays.asList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .incrementalOutput(true)
                .build();
    }
    public static void main(String[] args) {
        try {
            Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1");
            Message userMsg = Message.builder().role(Role.USER.getValue()).content("Who are you?").build();
            streamCallWithMessage(gen, userMsg);
        } catch (ApiException | NoApiKeyException | InputRequiredException  e) {
            logger.error("An exception occurred: {}", e.getMessage());
        }
        System.exit(0);
    }
}
curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--header "X-DashScope-SSE: enable" \
--data '{
    "model": "qwen-plus",
    "input":{
        "messages":[
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "user",
                "content": "Who are you?"
            }
        ]
    },
    "parameters": {
        "result_format": "message",
        "incremental_output":true
    }
}'

Modelos multimodales

import os
from dashscope import MultiModalConversation
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'

messages = [
    {
        "role": "user",
        "content": [
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
            {"text": "What is depicted in the image?"}
        ]
    }
]

responses = MultiModalConversation.call(
    # The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
    # If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model='qwen3-vl-plus',  #  You can replace this with another multimodal model and modify the messages accordingly.
    messages=messages,
    stream=True,
    incremental_output=True)

full_content = ""
print("Streaming output content:")
for response in responses:
    if response["output"]["choices"][0]["message"].content:
        print(response.output.choices[0].message.content[0]['text'])
        full_content += response.output.choices[0].message.content[0]['text']
print(f"Full content: {full_content}")
import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import io.reactivex.Flowable;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
        Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }
    public static void streamCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        // must create mutable map.
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
                        Collections.singletonMap("text", "What is depicted in the image?"))).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // The API keys for the Singapore/US (Virginia) and China (Beijing) regions are different. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
                // If you have not configured an environment variable, replace the following line with your Model Studio API key: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen3-vl-plus")  //  You can replace this with another multimodal model and modify the messages accordingly.
                .messages(Arrays.asList(userMessage))
                .incrementalOutput(true)
                .build();
        Flowable<MultiModalConversationResult> result = conv.streamCall(param);
        result.blockingForEach(item -> {
            try {
                var content = item.getOutput().getChoices().get(0).getMessage().getContent();
                    // Check if content exists and is not empty.
                if (content != null &&  !content.isEmpty()) {
                    System.out.println(content.get(0).get("text"));
                    }
            } catch (Exception e){
                System.exit(0);
            }
        });
    }

    public static void main(String[] args) {
        try {
            streamCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
    "model": "qwen3-vl-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
                    {"text": "What is depicted in the image?"}
                ]
            }
        ]
    },
    "parameters": {
        "incremental_output": true
    }
}'

Entrada de imagen

Para obtener más información sobre cómo utilizar modelos de lenguaje grande (LLM) para analizar imágenes, consulte Comprensión de imágenes y videos.

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
    {
        "role": "user",
        "content": [
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
            {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
            {"text": "What are these?"}
        ]
    }
]
response = dashscope.MultiModalConversation.call(
    # The API keys for the Singapore, Virginia, and Beijing regions are different. To get an API key, visit https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # This example uses qwen3-vl-plus. You can replace it with another model name as needed. For a list of models, visit https://www.alibabacloud.com/help/model-studio/getting-started/models
    model='qwen3-vl-plus',
    messages=messages
    )
print(response)

Java

// Copyright (c) Alibaba, Inc. and its affiliates.

import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.JsonUtils;
import com.alibaba.dashscope.utils.Constants;
public class Main {
    static {
     Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }
    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"),
                        Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"),
                        Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"),
                        Collections.singletonMap("text", "What are these?"))).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // If you have not configured the environment variable, replace the next line with .apiKey("sk-xxx") and use your Model Studio API key.
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // This example uses qwen3-vl-plus. You can replace it with another model name as needed. For a list of models, visit https://www.alibabacloud.com/help/model-studio/getting-started/models
                .model("qwen3-vl-plus")
                .message(userMessage)
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }

    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

Reemplace {WorkspaceId} con su ID de espacio de trabajo real.

Las claves de API para las regiones de Singapur, EE. UU. (Virginia) y China (Pekín) son diferentes. Para obtener una clave de API, consulte Obtener una clave de API

curl --location 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "qwen3-vl-plus",
    "input":{
        "messages":[
            {
                "role": "user",
                "content": [
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
                    {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/rabbit.png"},
                    {"text": "What are these?"}
                ]
            }
        ]
    }
}'

Entrada de video

Los siguientes ejemplos muestran cómo ingresar fotogramas de video. Para obtener más información sobre otros métodos, como ingresar un archivo de video, consulte Comprensión visual.

Python

import os
# The DashScope SDK version must be 1.20.10 or later.
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [{"role": "user",
             "content": [
                  # If you use a model from the Qwen2.5-VL series and input a list of images, you can set the fps parameter. This parameter specifies that the images are extracted from the original video every 1/fps seconds.
                 {"video":["https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
                           "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
                           "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
                           "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
                   "fps":2},
                 {"text": "Describe the events in this video"}]}]
response = dashscope.MultiModalConversation.call(
    # If you have not configured the environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
    # API keys are different for the Singapore/Virginia and Beijing regions. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model='qwen3-vl-plus',  # This example uses qwen3-vl-plus. Replace it with another model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/models
    messages=messages
)
print(response["output"]["choices"][0]["message"].content[0]["text"])

Java

// The DashScope SDK version must be 2.18.3 or later.
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;

import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    static {
        Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
    }
    private static final String MODEL_NAME = "qwen3-vl-plus"; // This example uses qwen3-vl-plus. Replace it with another model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/models
    public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage systemMessage = MultiModalMessage.builder()
                .role(Role.SYSTEM.getValue())
                .content(Arrays.asList(Collections.singletonMap("text", "You are a helpful assistant.")))
                .build();
        //  If you use a model from the Qwen2.5-VL series and input a list of images, you can set the fps parameter. This parameter specifies that the images are extracted from the original video every 1/fps seconds.
        Map<String, Object> params = Map.of(
                "video", Arrays.asList("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
                        "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
                        "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
                        "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"),
                "fps",2);
        MultiModalMessage userMessage = MultiModalMessage.builder()
                .role(Role.USER.getValue())
                .content(Arrays.asList(
                        params,
                        Collections.singletonMap("text", "Describe the events in this video")))
                .build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // If you have not configured the environment variable, replace the following line with your Model Studio API key: .apiKey("sk-xxx")
                // API keys are different for the Singapore/Virginia and Beijing regions. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model(MODEL_NAME)
                .messages(Arrays.asList(systemMessage, userMessage)).build();
        MultiModalConversationResult result = conv.call(param);
        System.out.print(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }
    public static void main(String[] args) {
        try {
            videoImageListSample();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

curl

Reemplace {WorkspaceId} con su ID de espacio de trabajo real.

Las claves de API son diferentes para las regiones de Singapur, EE. UU. (Virginia) y China (Pekín). Para obtener más información, consulte Obtener una clave de API

curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen3-vl-plus",
  "input": {
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "video": [
              "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
              "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
              "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
              "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"
            ],
            "fps":2

          },
          {
            "text": "Describe the events in this video"
          }
        ]
      }
    ]
  }
}'

Llamada a herramientas

Para ver el código completo del flujo de llamada a funciones, consulte Descripción general.

Python

import os
import dashscope

dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_time",
            "description": "Useful for getting the current time.",
            "parameters": {}
        }
    },
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Useful for getting the weather in a specific city.",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city or district, such as Beijing, Hangzhou, or Yuhang District."
                    }
                }
            },
            "required": [
                "location"
            ]
        }
    }
]
messages = [{"role": "user", "content": [{"text": "What is the weather like in Hangzhou?"}]}]
response = dashscope.MultiModalConversation.call(
    # If you have not configured an environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx"
    # The API keys for the Singapore, Virginia, and Beijing regions are different. To get an API key, visit: https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    # This example uses qwen3.8-max. You can replace it with another model as needed. For a list of models, visit: https://www.alibabacloud.com/help/model-studio/getting-started/models
    model='qwen3.8-max',
    messages=messages,
    tools=tools,
)
print(response)

Java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.alibaba.dashscope.aigc.conversation.ConversationParam.ResultFormat;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import java.util.Collections;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.tools.FunctionDefinition;
import com.alibaba.dashscope.tools.ToolFunction;
import com.alibaba.dashscope.utils.JsonUtils;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.victools.jsonschema.generator.Option;
import com.github.victools.jsonschema.generator.OptionPreset;
import com.github.victools.jsonschema.generator.SchemaGenerator;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfig;
import com.github.victools.jsonschema.generator.SchemaGeneratorConfigBuilder;
import com.github.victools.jsonschema.generator.SchemaVersion;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    // The following is the base URL for the Singapore region. When making a call, replace {WorkspaceId} with your actual workspace ID. The URL varies by region.
    static {Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";}
    public class GetWeatherTool {
        private String location;
        public GetWeatherTool(String location) {
            this.location = location;
        }
        public String call() {
            return location + " is sunny today.";
        }
    }
    public class GetTimeTool {
        public GetTimeTool() {
        }
        public String call() {
            LocalDateTime now = LocalDateTime.now();
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            String currentTime = "Current time: " + now.format(formatter) + ".";
            return currentTime;
        }
    }
    public static void SelectTool()
            throws NoApiKeyException, ApiException, InputRequiredException {
        SchemaGeneratorConfigBuilder configBuilder =
                new SchemaGeneratorConfigBuilder(SchemaVersion.DRAFT_2020_12, OptionPreset.PLAIN_JSON);
        SchemaGeneratorConfig config = configBuilder.with(Option.EXTRA_OPEN_API_FORMAT_VALUES)
                .without(Option.FLATTENED_ENUMS_FROM_TOSTRING).build();
        SchemaGenerator generator = new SchemaGenerator(config);
        ObjectNode jsonSchema_weather = generator.generateSchema(GetWeatherTool.class);
        ObjectNode jsonSchema_time = generator.generateSchema(GetTimeTool.class);
        FunctionDefinition fdWeather = FunctionDefinition.builder().name("get_current_weather").description("Gets the weather for a specified area")
                .parameters(JsonUtils.parseString(jsonSchema_weather.toString()).getAsJsonObject()).build();
        FunctionDefinition fdTime = FunctionDefinition.builder().name("get_current_time").description("Gets the current time")
                .parameters(JsonUtils.parseString(jsonSchema_time.toString()).getAsJsonObject()).build();
        MultiModalMessage systemMsg = MultiModalMessage.builder().role(Role.SYSTEM.getValue())
                .content(Arrays.asList(Collections.singletonMap("text", "You are a helpful assistant. When asked a question, use tools wherever possible.")))
                .build();
        MultiModalMessage userMsg = MultiModalMessage.builder().role(Role.USER.getValue()).content(Arrays.asList(Collections.singletonMap("text", "Weather in Hangzhou"))).build();
        List<MultiModalMessage> messages = new ArrayList<>();
        messages.addAll(Arrays.asList(systemMsg, userMsg));
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                // The API keys for the Singapore, Virginia, and Beijing regions are different. To get an API key, visit: https://www.alibabacloud.com/help/model-studio/get-api-key
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // This example uses qwen3.8-max. You can replace it with another model as needed. For a list of models, visit: https://www.alibabacloud.com/help/model-studio/getting-started/models
                .model("qwen3.8-max")
                .messages(messages)
                .tools(Arrays.asList(
                        ToolFunction.builder().function(fdWeather).build(),
                        ToolFunction.builder().function(fdTime).build()))
                .build();
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(JsonUtils.toJson(result));
    }
    public static void main(String[] args) {
        try {
            SelectTool();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(String.format("Exception %s", e.getMessage()));
        }
        System.exit(0);
    }
}

curl

Reemplace {WorkspaceId} con su ID de espacio de trabajo real.

Las claves de API para las regiones de Singapur, EE. UU. (Virginia) y China (Pekín) son diferentes. Para obtener más información, consulte Obtener una clave de API

La siguiente URL corresponde a la región de Singapur.

curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen3.8-max",
    "input": {
        "messages": [{
            "role": "user",
            "content": [{"text": "What is the weather like in Hangzhou?"}]
        }]
    },
    "parameters": {
        "result_format": "message",
        "tools": [{
            "type": "function",
            "function": {
                "name": "get_current_time",
                "description": "Useful for getting the current time.",
                "parameters": {}
            }
        },{
            "type": "function",
            "function": {
                "name": "get_current_weather",
                "description": "Useful for getting the weather in a specific city.",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "type": "string",
                            "description": "The city or district, such as Beijing, Hangzhou, or Yuhang District."
                        }
                    }
                },
                "required": ["location"]
            }
        }]
    }
}'

Invocación asíncrona

# Your Dashscope Python SDK must be version 1.19.0 or later.
import asyncio
import platform
import os
import dashscope
from dashscope.aigc.multimodal_conversation import AioMultiModalConversation

# The following base_url is for the Singapore region. Replace {WorkspaceId} with your actual workspace ID. The URL varies by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
async def main():
    response = await AioMultiModalConversation.call(
        # If you do not configure an environment variable, replace the next line with api_key="sk-xxx", where sk-xxx is your Model Studio API key.
        # The API keys for the Singapore, Virginia, and Beijing regions are different. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
        api_key=os.getenv('DASHSCOPE_API_KEY'),
        # This example uses the qwen3.8-max model. You can change the model name as needed. For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
        model="qwen3.8-max",
        messages=[{"role": "user", "content": [{"text": "Who are you?"}]}],
    )
    print(response)

if platform.system() == "Windows":
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())

Comprensión de documentos

Python

import os
import dashscope

# Currently, the qwen-long model can be called only in the China (Beijing) region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
        {'role': 'system', 'content': 'you are a helpful assistant'},
        # Replace '{FILE_ID}' with the file-id used in your actual conversation scenario.
        {'role':'system','content':f'fileid://{FILE_ID}'},
        {'role': 'user', 'content': 'What is this article about?'}]
response = dashscope.Generation.call(
    # If the environment variable is not configured, replace the following line with your Model Studio API key: api_key="sk-xxx"
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-long",
    messages=messages,
    result_format='message'
)
print(response)

Java

import os
import dashscope

# Currently, the qwen-long model can be called only in the China (Beijing) region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
messages = [
        {'role': 'system', 'content': 'you are a helpful assistant'},
        # Replace '{FILE_ID}' with the file-id used in your actual conversation scenario.
        {'role':'system','content':f'fileid://{FILE_ID}'},
        {'role': 'user', 'content': 'What is this article about?'}]
response = dashscope.Generation.call(
    # If the environment variable is not configured, replace the following line with your Model Studio API key: api_key="sk-xxx"
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-long",
    messages=messages,
    result_format='message'
)
print(response)

curl

Actualmente, solo la región China (Beijing) admite la llamada al modelo de comprensión de documentos.

Reemplace {FILE_ID} con el ID de archivo que se utiliza en su escenario de conversación real.

curl --location "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
    "model": "qwen-long",
    "input":{
        "messages":[
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "system",
                "content": "fileid://{FILE_ID}"
            },
            {
                "role": "user",
                "content": "What is this article about?"
            }
        ]
    },
    "parameters": {
        "result_format": "message"
    }
}'

Objeto de respuesta de chat (los formatos de salida en flujo y sin flujo son consistentes)

status_codestring

El código de estado de la solicitud. Un valor de 200 indica que la solicitud fue exitosa. De lo contrario, la solicitud falló.

El SDK de Java no devuelve este parámetro. Si la llamada falla, se lanza una excepción. El mensaje de excepción contiene el contenido de status_code y message.

request_idstring

El ID único para esta llamada.

El SDK de Java devuelve el parámetro como requestId.

codestring

El código de error. Este campo está vacío si la llamada es exitosa.

Solo el SDK de Python devuelve este parámetro.

outputobject

La información sobre el resultado de la llamada.

Propiedades

textstring

La respuesta generada por el modelo. Si el parámetro de entrada result_format se establece en text, el contenido de la respuesta se devuelve en este campo.

finish_reasonstring

Este parámetro no está vacío si el parámetro de entrada result_format se establece en text.

Esto puede ocurrir en las siguientes cuatro situaciones:

  • null durante la generación
  • stop si la salida del modelo termina naturalmente o activa una condición de parada en los parámetros de entrada
  • El proceso se terminó porque la salida generada era demasiado larga.
  • Cuando ocurre una llamada de herramienta, el valor es tool_calls.

choicesarray

La información de salida del modelo. El parámetro choices se devuelve si result_format es message.

Propiedades

finish_reasonstring

El valor puede ser uno de los siguientes:

  • null durante la generación
  • stop si la salida del modelo termina naturalmente o activa una condición de parada en los parámetros de entrada
  • La generación termina por la razón length, lo que significa que la salida es demasiado larga.
  • La razón tool_calls indica que ocurrió una llamada a herramienta.

messageobject

El objeto de mensaje generado por el modelo.

Propiedades

rolestring

El rol del mensaje de salida, que debe ser assistant.

contentstring or array

El contenido del mensaje de salida. Es un array si utiliza modelos de la serie qwen-vl o qwen-audio, y un string en otros casos.

Si se inicia la llamada de función, este valor está vacío.

Propiedades

textstring

El contenido del mensaje de salida si utiliza modelos de la serie qwen-vl o qwen-audio.

image_hwarray

Si el parámetro vl_enable_image_hw_output está habilitado para un modelo de la serie Qwen-VL, existen dos casos:

  • Entrada de imagen: Devuelve la altura y el ancho de la imagen en píxeles.
  • Entrada de video: Devuelve un arreglo vacío.

reasoning_content string

El contenido de pensamiento profundo del modelo.

tool_callsarray

Si el modelo necesita llamar a una herramienta, se genera el parámetro tool_calls.

Propiedades

functionobject

El nombre de la herramienta que se está llamando y sus parámetros de entrada.

Propiedades

namestring

El nombre de la herramienta que se está llamando.

argumentsstring

Los parámetros que se introducirán en la herramienta, como una cadena JSON.

Debido a la aleatoriedad de la respuesta del LLM, la cadena JSON de salida puede no siempre satisfacer su función. Le recomendamos que valide los parámetros antes de introducirlos en la función.

index integer

El índice del objeto tool_calls actual en el arreglo tool_calls.

id string

El ID de esta respuesta de herramienta.

type string

El tipo de herramienta, que debe ser function.

logprobsobject

La información de probabilidad para el objeto choices actual.

Propiedades

content array

Un arreglo de tokens con información de probabilidad logarítmica.

Propiedades

token string

El token actual.

bytes array

Una lista de los bytes UTF-8 sin procesar del token actual. Esto es útil para reconstruir con precisión el contenido de salida, especialmente cuando maneja emojis y caracteres chinos.

logprob float

La probabilidad logarítmica del token actual. Un valor null indica una probabilidad extremadamente baja.

top_logprobs array

Los tokens más probables en la posición actual del token y sus probabilidades logarítmicas. El número de elementos coincide con el parámetro de entrada top_logprobs.

Propiedades

token string

El token actual.

bytes array

Una lista de los bytes UTF-8 sin procesar del token actual. Esto es útil para reconstruir con precisión el contenido de salida, especialmente cuando maneja emojis y caracteres chinos.

logprob float

La probabilidad logarítmica del token actual. Un valor null indica una probabilidad extremadamente baja.

usagemap

La información de tokens para esta solicitud de chat.

Propiedades

input_tokens integer

La longitud del contenido de entrada del usuario después de convertirse en tokens. Para obtener más información, consulte Información adicional.

output_tokens integer

La longitud del contenido de salida del modelo después de convertirse en tokens.

input_tokens_details object (Opcional)

Detalles de la longitud del contenido de entrada después de convertirse en tokens.

Propiedades

text_tokens integer (Opcional)

La longitud del texto de entrada después de convertirse en tokens.

image_tokens integer (Opcional)

La longitud de la imagen de entrada después de convertirse en tokens.

video_tokens integer (Opcional)

La longitud del archivo de video de entrada o la lista de imágenes después de convertirse en tokens.

total_tokens integer

Este campo se devuelve si la entrada es texto sin formato. Es la suma de input_tokens y output_tokens.

image_tokens integer

Este campo se devuelve si el contenido de entrada incluye una image. Es la longitud del contenido de imagen de entrada del usuario después de convertirse en tokens.

video_tokens integer

Este campo se devuelve si el contenido de entrada incluye un video. Es la longitud del contenido de video de entrada del usuario después de convertirse en tokens.

audio_tokens integer

Este campo se devuelve si el contenido de entrada incluye un audio. Es la longitud del contenido de audio de entrada del usuario después de convertirse en tokens.

output_tokens_details object (Opcional)

Detalles de la longitud del contenido de salida después de convertirse en tokens. Este campo solo es devuelto por algunos modelos.

Propiedades

text_tokens integer (Opcional)

La longitud del texto de salida después de convertirse en tokens.

reasoning_tokens integer (Opcional)

La longitud del proceso de pensamiento después de convertirse en tokens. Este campo solo se devuelve para modelos de razonamiento.

audio_tokens integer (Opcional)

La longitud del audio de salida después de convertirse en tokens. Este campo solo se devuelve para modelos de salida de audio.

prompt_tokens_details object

Una clasificación detallada de los tokens de entrada.

Propiedades

cached_tokens integer

El número de tokens que coincidieron con la caché. Para obtener más información sobre la caché de contexto, consulte Caché de contexto.

cache_creation object

Información sobre la creación de caché explícita.

Propiedades

ephemeral_5m_input_tokens integer

La longitud de los tokens que se utilizan para crear una caché explícita con un periodo de validez de 5 minutos.

cache_creation_input_tokens integer

La longitud de los tokens que se utilizan para crear una caché explícita.

cache_type string

Si utiliza caché explícita, el valor del parámetro es ephemeral. De lo contrario, este parámetro no existe.

{
  "status_code": 200,
  "request_id": "902fee3b-f7f0-9a8c-96a1-6b4ea25af114",
  "code": "",
  "message": "",
  "output": {
    "text": null,
    "finish_reason": null,
    "choices": [
      {
        "finish_reason": "stop",
        "message": {
          "role": "assistant",
          "content": "I am a large-scale language model developed by Alibaba Cloud, and my name is Qwen."
        }
      }
    ]
  },
  "usage": {
    "input_tokens": 22,
    "output_tokens": 17,
    "total_tokens": 39
  }
}

Códigos de error

Si la llamada al modelo falla y se devuelve un mensaje de error, consulte Códigos de error para resolver el problema.