Todos los productos
Search
Centro de documentos

Alibaba Cloud Model Studio:Crear una respuesta

Última actualización: Oct 23, 2026

Utilice la API de Responses compatible con OpenAI para llamar al modelo Qwen. Este tema describe los parámetros de entrada y salida, y proporciona un ejemplo de llamada.

Ventajas sobre la API de Chat Completions de OpenAI:
  • Herramientas integradas: Obtenga mejores resultados en tareas complejas con herramientas integradas como búsqueda web, extracción web, intérprete de código, texto a imagen, imagen a imagen y búsqueda en base de conocimientos. Para obtener más información, consulte llamada a herramientas.
  • Entrada más flexible: Admite tanto la entrada directa de cadenas como matrices de mensajes en formato de chat.
  • Gestión simplificada del contexto: Evite construir manualmente una matriz de historial de mensajes pasando el previous_response_id de la última respuesta.
  • Almacenamiento en caché de contexto conveniente: Agregue x-dashscope-session-cache: enable (valor predeterminado: disable) al encabezado de la solicitud para habilitar el almacenamiento en caché automático del contexto de conversación en el servidor. Esto reduce la latencia de inferencia y los costos para conversaciones de múltiples turnos sin necesidad de cambios en el código. Para más detalles, consulte caché de sesión.

Compatibilidad y limitaciones

Esta API es compatible con OpenAI para reducir el costo de migración de los desarrolladores, pero difiere en sus parámetros, funcionalidad y comportamiento.

Principio fundamental: Solo se procesan los parámetros explícitamente listados en este documento. Cualquier parámetro de OpenAI no mencionado se ignora.

Las siguientes diferencias clave le ayudarán a adaptarse rápidamente:

  • Parámetros No Admitidos: Esta API no admite algunos parámetros de la API de OpenAI, como el parámetro de ejecución asíncrona background. La API actualmente solo admite llamadas síncronas.
  • Control del Esfuerzo de Razonamiento: Utilice el parámetro reasoning.effort para controlar el esfuerzo de razonamiento del modelo. Para detalles de uso, consulte la descripción de este parámetro.
  • Límite de contexto: Para reservar espacio para las llamadas a herramientas integradas y la generación de razonamiento, el contexto de entrada máximo de la API de Responses es aproximadamente el 80% de la ventana de contexto del modelo (dejando un búfer de alrededor del 20%). Cualquier exceso se trunca automáticamente sin generar un error ni interrumpir la solicitud.

Singapore

El base_url para la configuración de llamada del SDK es https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1.

Endpoint de solicitud HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses

China (Beijing)

El base_url para la configuración de llamada del SDK: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1

Endpoint de solicitud HTTP: POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/responses

EE. UU. (Virginia)

Configuración de llamada del SDK base_url: https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/compatible-mode/v1

Endpoint de solicitud HTTP: POST https://{WorkspaceId}.us-east-1.maas.aliyuncs.com/compatible-mode/v1/responses

Germany (Frankfurt)

Configuración de llamada del SDK base_url: https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/compatible-mode/v1

Endpoint de solicitud HTTP: POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/compatible-mode/v1/responses

Hong Kong (China)

Configuración de llamada del SDK base_url: https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/compatible-mode/v1

Endpoint de solicitud HTTP: POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/compatible-mode/v1/responses

Japan (Tokyo)

Configuración de llamada del SDK base_url: https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1

Endpoint de solicitud HTTP: POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1/responses

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

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.

ImportanteLa ruta URL heredada /api/v2/apps/protocols/compatible-mode/v1/responses para la API de Responses compatible con OpenAI ya no recibe mantenimiento y su funcionalidad ya no está garantizada. Migre a la nueva ruta /compatible-mode/v1/responses lo antes posible.

Cuerpo de la solicitud

model string (obligatorio)

El ID del modelo a utilizar.

Modelos compatibles

qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b, qwen3.8-omni-flash, qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3.7-max-2026-05-17, qwen3.7-max-preview, qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.5-plus, qwen3.5-plus-2026-04-20, qwen3.5-plus-2026-02-15, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.6-flash-2026-04-16, qwen3.5-flash, qwen3.5-flash-2026-02-23, qwen3.6-35b-a3b, qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b, deepseek-v4.1-flash, deepseek-v4.1-flash-1017, deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash-0731, glm-5.3, glm-5.2, kimi-k3

ImportanteLos modelos de generación de texto que no están en la lista anterior pero que están disponibles a través de Alibaba Cloud Model Studio solo admiten funciones básicas de compatibilidad. Las capacidades de agente (herramientas integradas, etc.) son limitadas.

input string or array (obligatorio)

La entrada para el modelo. Se admiten los siguientes formatos:

  • string: Texto sin formato, como "Hello".
  • array: Un arreglo de mensajes, ordenados por turno de conversación.

Tipos de elementos del arreglo

EasyInputMessage object

Un objeto con un role para el autor del mensaje y content para la carga útil del mensaje.

Propiedades

rol string (obligatorio)

El rol del autor del mensaje. Valores válidos: user, assistant, system, developer.

contenido string or array (obligatorio)

El contenido del mensaje. El contenido es una string si la entrada es texto sin formato, o un array si la entrada es un arreglo de contenido estructurado. Cuando el role es system o developer, el tipo de elemento del arreglo es input_text. Cuando el role es user, el tipo de elemento del arreglo es input_text, input_image o input_file; qwen3.8-omni-flash también admite input_audio y input_video como se describe a continuación. Cuando el role es assistant, el tipo de elemento del arreglo es output_text.

Elementos del arreglo de contenido

type string (obligatorio)

El tipo de contenido. Los valores válidos son input_text, input_image (solo rol de usuario), input_file (solo rol de usuario, admite PDF e imágenes) y output_text (solo rol de asistente). Para mensajes de usuario de qwen3.8-omni-flash, también se admiten input_audio y input_video. Sus campos se describen a continuación.

text string

El contenido de texto. Obligatorio cuando type es input_text o output_text.

image_url string

Admite una URL o datos codificados en Base64. Requerido cuando type es input_image. Para Base64, proporcione un Data URI completo, por ejemplo: data:image/png;base64,iVBORw0KGgoAAAANSUhEUg....

file_url string

La URL pública del archivo. Requerido cuando type es input_file. Admite archivos PDF (hasta 100 MB) y archivos de imagen (hasta 20 MB). Actualmente es compatible con qwen3.8-flash, qwen3.8-max y qwen3.5-ocr.

El límite de páginas PDF depende de task en ocr_options: hasta 50 páginas cuando task está configurado como document_parsing; hasta 10 páginas cuando task no está configurado o está configurado como otra tarea.

Campos de entrada de audio y video

Los siguientes tipos input_audio y input_video solo son compatibles con qwen3.8-omni-flash en mensajes user. Coloque los campos directamente en el elemento de la matriz de contenido:

typeCamposDescripción
input_audioformat, audio_url o dataformat es obligatorio, por ejemplo wav o mp3. Utilice ya sea audio_url para una URL de audio o data para un URI de datos completo que contenga un prefijo de tipo MIME y audio codificado en Base64, como data:audio/wav;base64,UklGR.... No proporcione ambos.
input_videovideo_url, fpsvideo_url es obligatorio y especifica la URL del video. fps es un parámetro opcional de tipo number que especifica cuántos fotogramas muestrear por segundo. Por ejemplo, 2 muestrea 2 fotogramas por segundo. No lo pase como una cadena.

use_multichannel boolean (opcional), el valor predeterminado es false. Configúrelo en true para procesar audio de dos canales o cuatro canales como audio espacial. Cuando es false, el audio se procesa como audio de un solo canal. Coloque este campo en el elemento del arreglo de contenido cuyo type sea input_audio, al mismo nivel que type, audio_url y format.

Las entradas de audio y video utilizan el mismo formato de respuesta y eventos de transmisión que las entradas de texto. La transmisión de texto utiliza response.output_text.delta y response.output_text.done.

Para ejemplos de entrada de audio/video y salida de texto, consulte Qwen3.8-Omni-Flash.

type string (opcional)

Fijado como message.

ResponseOutputMessage object (opcional)

El mensaje de salida del modelo. Para continuar una conversación, puede pasar el objeto message del arreglo output de una respuesta anterior nuevamente al input. A diferencia de EasyInputMessage, este objeto incluye la estructura de salida completa, con id, status y content estructurado.

Propiedades

type string (obligatorio)

Fijado como message.

id string (obligatorio)

El identificador único del mensaje de salida, proveniente de la respuesta anterior.

rol string (obligatorio)

Fijado como assistant.

status string (obligatorio)

El estado del mensaje. Valores válidos: in_progress, completed, incomplete.

contenido array (obligatorio)

Un arreglo de contenido, donde los elementos son objetos output_text.

Propiedades

type string (obligatorio)

Fijado como output_text.

texto string (obligatorio)

El texto de respuesta.

annotations array (opcional)

Información de anotación.

Llamada de función object (opcional)

Una instrucción estructurada generada cuando el modelo decide llamar a una herramienta externa.

Propiedades

type string (obligatorio)

Fijado como function_call.

id string (opcional)

El identificador único para la llamada de función, proveniente de la respuesta anterior.

name string (obligatorio)

El nombre de la función de la herramienta.

arguments string (obligatorio)

Los argumentos de llamada de herramienta, en formato de cadena JSON.

call_id string (obligatorio)

El identificador para la llamada de herramienta. Debe coincidir con el call_id que devuelve el modelo.

status string (opcional)

El estado. Valores válidos: in_progress, completed, incomplete.

Salida de llamada de función object (opcional)

La salida de una llamada de herramienta. En la lista de mensajes, este objeto debe seguir inmediatamente a su mensaje function_call correspondiente para evitar un fallo en la solicitud.

Propiedades

type string (obligatorio)

Fijado como function_call_output.

id string (opcional)

El identificador único para la salida de la llamada de función.

call_id string (obligatorio)

El identificador de llamada de herramienta debe coincidir con el call_id devuelto por el modelo.

output string (obligatorio)

El resultado de la ejecución de la función de herramienta.

status string (opcional)

El estado. Valores válidos: in_progress, completed, incomplete.

Razonamiento object (opcional)

El proceso de razonamiento del modelo. Puede pasar el elemento reasoning del output de una respuesta anterior de vuelta al input para continuar este proceso en un turno subsiguiente.

Propiedades

type string (obligatorio)

Fijado como reasoning.

id string (obligatorio)

El identificador único para el contenido de razonamiento, proveniente de la respuesta anterior.

summary array (obligatorio)

El contenido del resumen de razonamiento.

Propiedades

type string (obligatorio)

Fijado como summary_text.

texto string (obligatorio)

El texto de resumen.

status string (opcional)

El estado. Valores válidos: in_progress, completed, incomplete.

Llamada de búsqueda web object (opcional)

Un objeto de llamada de búsqueda web. Puede pasar el elemento web_search_call de la salida de la respuesta anterior a la entrada, proporcionando contexto de resultados de búsqueda en conversaciones de múltiples turnos.

Propiedades

type string (obligatorio)

Siempre web_search_call.

id string (obligatorio)

El identificador único de la llamada de búsqueda, proveniente de la respuesta anterior.

status string (obligatorio)

El estado de la búsqueda. Valores válidos: in_progress, searching, completed, failed.

action object (obligatorio)

Los detalles de la acción de búsqueda. Solo se admite el tipo search.

Propiedades

type string (obligatorio)

El tipo de búsqueda. Siempre search.

queries array (opcional)

Una lista de consultas de búsqueda. Cada elemento es una cadena.

sources array (opcional)

Una lista de fuentes de resultados de búsqueda.

Propiedades

type string (obligatorio)

El tipo de fuente. Siempre url.

url string (requerido)

La URL de origen.

instructionsstring (opcional)

Se inserta al principio del contexto como una instrucción del sistema. Cuando se utiliza previous_response_id, las instructions especificadas en el turno anterior no se pasan al contexto del turno actual.

previous_response_id string (opcional)

El ID único de la respuesta anterior. El id de una respuesta es válido durante 7 días. Puede utilizar este parámetro para crear conversaciones de múltiples turnos. El lado del servidor recupera y combina automáticamente la entrada y la salida de ese turno como contexto. Si proporciona tanto el arreglo de mensajes input como previous_response_id, los nuevos mensajes en input se añaden al contexto histórico. Este parámetro no se puede utilizar con conversation.

conversation string (opcional)

La conversación a la que pertenece la respuesta actual (consulte la API de Conversations). El historial de la conversación se incluye automáticamente como contexto. La entrada y la salida de esta solicitud se agregan a la conversación al finalizar. No se puede utilizar con previous_response_id.

stream boolean (opcional) El valor predeterminado es false

Habilita la salida en streaming. Si se establece en true, el modelo transmite la respuesta en tiempo real.

store boolean (opcional) El valor predeterminado es true

Especifica si se debe almacenar la respuesta del modelo generada para esta sesión.

  • false: La respuesta no se almacena y no se puede hacer referencia a ella en llamadas posteriores mediante previous_response_id.
  • true: La respuesta se almacena. Se puede hacer referencia a la respuesta actual del modelo mediante previous_response_id y llamadas API subsiguientes.

tools array (opcional)

Una matriz de herramientas que el modelo puede llamar al generar una respuesta. Admite tanto herramientas integradas como herramientas function personalizadas, que pueden usarse conjuntamente.

deepseek-v4.1-flash-1017 admite las tres herramientas integradas web_search, web_extractor y code_interpreter.

Para qwen3.8-omni-flash, la única herramienta integrada admitida es web_search. También se admiten herramientas personalizadas de tipo function.

Propiedades

Búsqueda web

Busca información actualizada en Internet. Documentación relacionada: Búsqueda web

Propiedades

type string (obligatorio)

Fijado como web_search.

Ejemplo: [{"type": "web_search"}]

Extractor web

Accede y extrae contenido de páginas web. Debe utilizarse con la herramienta web_search. Documentación relacionada: Web Extraction

Propiedades

type string (obligatorio)

Fijado como web_extractor.

Ejemplo: [{"type": "web_search"}, {"type": "web_extractor"}]

Intérprete de código

Ejecuta código en un entorno aislado para realizar tareas como análisis de datos. Documentación relacionada: Code Interpreter

Propiedades

type string (obligatorio)

Fijado como code_interpreter.

Ejemplo: [{"type": "code_interpreter"}]

Imagen de búsqueda web

Busca imágenes basándose en una descripción de texto. Documentación relacionada: Búsqueda de texto a imagen

Propiedades

type string (obligatorio)

Fijado como web_search_image.

Ejemplo: [{"type": "web_search_image"}]

Búsqueda de imágenes

Busca imágenes similares o relacionadas basándose en una imagen de entrada. La entrada debe incluir la URL de la imagen. Documentación relacionada: Image-to-Image Search

Propiedades

type string (obligatorio)

Fijado como image_search.

Ejemplo: [{"type": "image_search"}]

Búsqueda de archivos

Realiza la recuperación de conocimientos buscando en una base de conocimientos especificada. Documentación relacionada: Recuperación de conocimientos

Propiedades

type string (obligatorio)

Fijado como file_search.

vector_store_ids array(obligatorio)

El ID de la base de conocimientos para buscar. Actualmente, solo se puede proporcionar un ID de base de conocimientos.

Ejemplo: [{"type": "file_search", "vector_store_ids": ["your_knowledge_base_id"]}]

Invocación de MCP

Llama a un servicio externo a través del Protocolo de Contexto del Modelo (MCP). Documentación relacionada: MCP

Propiedades

type string (obligatorio)

Fijado como mcp.

server_protocol string (obligatorio)

El protocolo de comunicación con el servicio MCP, como "sse".

server_label string (obligatorio)

Una etiqueta utilizada para identificar el servicio MCP.

server_description string (opcional)

Una descripción del servicio. Ayuda al modelo a comprender su función y cuándo utilizarlo.

server_url string (obligatorio)

La URL del endpoint del servicio MCP.

headers object (opcional)

Encabezados de solicitud, utilizados para transportar información como la autenticación (por ejemplo, Authorization).

Ejemplo:

mcp_tool = {
    "type": "mcp",
    "server_protocol": "sse",
    "server_label": "amap-maps",
    "server_description": "The AMap MCP Server provides a full suite of geographic information services, covering 15 core APIs. These include custom map generation, navigation, ride-hailing, geocoding, reverse geocoding, IP-based location, weather queries, and planning for cycling, walking, driving, and public transit routes, along with distance measurement and various search functions.",
    "server_url": "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/mcps/amap-maps/sse",
    "headers": {
        "Authorization": "Bearer <your-mcp-server-token>"
    }
}
Herramienta personalizadafunction

Permite al modelo llamar a una función definida por el desarrollador. Cuando el modelo determina que es necesario llamar a una herramienta, la respuesta devuelve un elemento de salida de tipo function_call. Documentación relacionada: Function calling

Propiedades

type string (obligatorio)

Debe establecerse en function.

namestring(obligatorio)

El nombre de la herramienta. Solo puede contener letras, dígitos, guiones bajos (_) y guiones (-), con una longitud máxima de 64 tokens.

descriptionstring(obligatorio)

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

parameters object (opcional)

La definición de parámetros para la herramienta, que debe ser un objeto JSON Schema válido. Si parameters está vacío, la herramienta no toma argumentos (por ejemplo, una herramienta de consulta de hora).

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

Ejemplo:

[{
  "type": "function",
  "name": "get_weather",
  "description": "Get weather information for a specified city",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "The name of the city"
      }
    },
    "required": ["city"]
  }
}]

tool_choice string or object (opcional) El valor predeterminado es auto

Controla cómo el modelo selecciona y llama a las herramientas. Este parámetro admite dos formatos: modo de cadena y modo de objeto.

Modo cadena
  • auto: El modelo decide si llamar a una herramienta.
  • none: Impide que el modelo llame a cualquier herramienta.
  • required: Fuerza al modelo a llamar a una herramienta. Esto solo está disponible cuando la lista tools contiene exactamente una herramienta.
Modo objeto

Restringe el modelo a un conjunto específico de herramientas para su selección y llamada.

Propiedades

mode string (obligatorio)

  • auto: El modelo decide automáticamente si llamar a una herramienta de la lista proporcionada.
  • required: Fuerza al modelo a llamar a una herramienta de la lista proporcionada. Esto solo está disponible cuando la lista tools contiene exactamente una herramienta.

tools array(obligatorio)

Una lista de definiciones de herramientas que el modelo tiene permitido llamar.

[
  { "type": "function", "name": "get_weather" }
]

typestring (obligatorio)

El tipo de configuración de herramienta. Fijado en allowed_tools.

parallel_tool_calls boolean (opcional) El valor predeterminado es true

Especifica si se habilita la llamada a herramientas en paralelo. Para obtener más información, consulte Llamada a herramientas en paralelo.

kimi-k3 no admite controlar mediante este parámetro si las llamadas a herramientas son paralelas. Establecerlo en false no garantiza llamadas secuenciales, y el modelo puede seguir devolviendo varios elementos function_call en una misma respuesta. Procese las llamadas a herramientas tal como se devuelvan.

Valores válidos:

  • true: Habilitar
  • false: Deshabilitar

temperaturefloat(opcional)

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

Valores más altos hacen que la salida sea más aleatoria y diversa, mientras que valores más bajos la hacen más enfocada y determinista.

Rango de valores: [0, 2)

Tanto temperature como top_p controlan la diversidad del texto generado. Recomendamos utilizar solo uno de estos parámetros a la vez. Para más información, consulte Overview.

top_pfloat(opcional)

El umbral de probabilidad para el muestreo top-p, que controla la diversidad del texto generado.

Valores más altos hacen que la salida sea más aleatoria y diversa, mientras que valores más bajos la hacen más enfocada y determinista.

Rango de valores: (0, 1.0]

Tanto temperature como top_p controlan la diversidad del texto generado. Recomendamos utilizar solo uno de estos parámetros a la vez. Para más información, consulte Overview.

enable_thinking boolean (opcional)

Habilita o deshabilita el modo de razonamiento. Cuando está habilitado, el modelo realiza un paso de razonamiento antes de responder. El proceso de razonamiento se devuelve como un elemento de salida de tipo reasoning. Al habilitar el modo de razonamiento, recomendamos habilitar también las herramientas integradas para lograr los mejores resultados en tareas complejas.

Valores válidos:

  • true: Habilita el modo de razonamiento.
  • false: Deshabilita el modo de razonamiento.

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

Este parámetro no es un parámetro estándar de OpenAI. En el SDK de Python, páselo utilizando extra_body={"enable_thinking": True}. En el SDK de Node.js y curl, utilice enable_thinking: true como parámetro de nivel superior. Recomendamos utilizar reasoning.effort en su lugar, ya que enable_thinking quedará obsoleto.

reasoning object (opcional)

Controla el esfuerzo de razonamiento del modelo. El modelo realiza un paso de razonamiento antes de responder, y el proceso de razonamiento se devuelve a través de un elemento de salida de tipo reasoning.

Propiedades

effort string (opcional): El nivel de esfuerzo de razonamiento.

Admite 7 niveles incrementales: none, minimal, low, medium, high, xhigh y max. Reducir este valor acelerará la velocidad de respuesta y reducirá el consumo de Tokens de inferencia.

ModeloValor predeterminadoNiveles admitidosAsignación para otros niveles
qwen3.8-max, qwen3.8-max-0902, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27bxhighnone, low, medium, xhighminimal se asigna a low; high y max se asignan a xhigh
deepseek-v4-flash-0731, deepseek-v4-pro-0813highnone, low, high, maxminimal se asigna a low; medium se asigna a high; xhigh se asigna a max
deepseek-v4.1-flashhighnone, low, high, maxminimal se asigna a low; medium y xhigh se asignan a high; pasar ultra devuelve un error
glm-5.3maxlow, high, maxminimal se asigna a low; medium se asigna a high; xhigh se asigna a max
glm-5.2, deepseek-v4-prohighnone, high, maxminimal, low, y medium se asignan a high; xhigh se asigna a max

Para glm-5.3, recomendamos usar max.

reasoning.effort tiene prioridad sobre enable_thinking. Recomendamos usar reasoning.effort, ya que enable_thinking quedará obsoleto.

ocr_options object (opcional)

Parámetros de tareas integradas de OCR. Solo aplicable al modelo qwen3.5-ocr. Utilice este parámetro para llamar a tareas integradas de OCR (como extracción de información y localización de texto). Los resultados de las tareas integradas se devuelven en el campo ocr_result de la respuesta.

Al analizar archivos PDF, el valor de task determina el recuento de páginas admitido: hasta 50 páginas cuando task está configurado como document_parsing; hasta 10 páginas cuando task no está configurado o está configurado como otra tarea.

Este parámetro no es un parámetro estándar de OpenAI. En el SDK de Python, páselo utilizando extra_body={"ocr_options": {...}}. En el SDK de Node.js y curl, utilice ocr_options como un parámetro de nivel superior.

max_output_tokens integer (opcional)

Limita el número de tokens en la salida generada.

  • Serie Qwen3.8: el número máximo total de tokens tanto en el contenido de respuesta del modelo como en el contenido de cadena de pensamiento combinados.
  • Qwen3.7, Qwen3.6, Qwen3.5, Qwen3-Max, DeepSeek, GLM y Kimi: el número máximo de tokens en el contenido de respuesta del modelo.

El valor mínimo para los modelos listados anteriormente es 16. Cuando el recuento de tokens generados alcanza el límite configurado, la generación se detiene anticipadamente y el estado es incomplete.

Llamada básica

import os
from openai import OpenAI

client = OpenAI(
    # If the environment variable is not set, replace with: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.8-max",
    input="What can you do?"
)

# Get the model's response
print(response.output_text)
import OpenAI from "openai";

const openai = new OpenAI({
    // If the environment variable is not set, replace with: apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY,
    // Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3.8-max",
        input: "What can you do?"
    });

    // Get the model's response
    console.log(response.output_text);
}

main();
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.8-max",
    "input": "What can you do?"
}'

Salida por secuencias

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

stream = client.responses.create(
    model="qwen3.8-max",
    input="Briefly introduce artificial intelligence.",
    stream=True
)

print("Receiving stream output:")
for event in stream:
    if event.type == 'response.output_text.delta':
        print(event.delta, end='', flush=True)
    elif event.type == 'response.completed':
        print("\nStream completed")
        print(f"Total tokens: {event.response.usage.total_tokens}")
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    // Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const stream = await openai.responses.create({
        model: "qwen3.8-max",
        input: "Briefly introduce artificial intelligence.",
        stream: true
    });

    console.log("Receiving stream output:");
    for await (const event of stream) {
        if (event.type === 'response.output_text.delta') {
            process.stdout.write(event.delta);
        } else if (event.type === 'response.completed') {
            console.log("\nStream completed");
            console.log(`Total tokens: ${event.response.usage.total_tokens}`);
        }
    }
}

main();
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
--no-buffer \
-d '{
    "model": "qwen3.8-max",
    "input": "Briefly introduce artificial intelligence.",
    "stream": true
}'

Conversación de múltiples turnos

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

# First turn
response1 = client.responses.create(
    model="qwen3.8-max",
    input="My name is John. Please remember it."
)
print(f"First response: {response1.output_text}")

# Second turn - use previous_response_id to link context. The response ID is valid for 7 days.
response2 = client.responses.create(
    model="qwen3.8-max",
    input="Do you remember my name?",
    previous_response_id=response1.id
)
print(f"Second response: {response2.output_text}")
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    // Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    // First turn
    const response1 = await openai.responses.create({
        model: "qwen3.8-max",
        input: "My name is John. Please remember it."
    });
    console.log(`First response: ${response1.output_text}`);

    // Second turn - use previous_response_id to link context. The response ID is valid for 7 days.
    const response2 = await openai.responses.create({
        model: "qwen3.8-max",
        input: "Do you remember my name?",
        previous_response_id: response1.id
    });
    console.log(`Second response: ${response2.output_text}`);
}

main();

Herramientas integradas

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.8-max",
    input="Find the Alibaba Cloud official website and extract key information from its homepage.",
    # For best results, we recommend enabling the built-in tools.
    tools=[
        {"type": "web_search"},
        {"type": "code_interpreter"},
        {"type": "web_extractor"}
    ],
)

# Uncomment the following line to view the intermediate output.
# print(response.output)
print(response.output_text)
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    // Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3.8-max",
        input: "Find the Alibaba Cloud official website and extract key information from its homepage.",
        tools: [
            { type: "web_search" },
            { type: "code_interpreter" },
            { type: "web_extractor" }
        ]
    });

    for (const item of response.output) {
        if (item.type === "reasoning") {
            console.log("Model is thinking...");
        } else if (item.type === "web_search_call") {
            console.log(`Search query: ${item.action.query}`);
        } else if (item.type === "web_extractor_call") {
            console.log("Extracting web content...");
        } else if (item.type === "message") {
            console.log(`Response content: ${item.content[0].text}`);
        }
    }
}

main();
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.8-max",
    "input": "Find the Alibaba Cloud official website and extract key information from its homepage.",
    "tools": [
        {
            "type": "web_search"
        },
        {
            "type": "code_interpreter"
        },
        {
            "type": "web_extractor"
        }
    ]
}'

Llamada a funciones

from openai import OpenAI
import json
import os
import random

# Initialize the client.
client = OpenAI(
    # If the environment variable is not set, replace with: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
# Simulate a user question.
USER_QUESTION = "What's the weather like in Beijing?"
# Define the list of tools.
tools = [
    {
        "type": "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 or Hangzhou.",
                }
            },
            "required": ["location"],
        },
    }
]

# Simulate the weather query tool.
def get_current_weather(arguments):
    weather_conditions = ["sunny", "cloudy", "rainy"]
    random_weather = random.choice(weather_conditions)
    location = arguments["location"]
    return f"Today in {location} it is {random_weather}."

# Wrap the model response function.
def get_response(input_data):
    response = client.responses.create(
        model="qwen3.8-max",
        input=input_data,
        tools=tools,
    )
    return response

# Maintain the conversation context.
conversation = [{"role": "user", "content": USER_QUESTION}]

response = get_response(conversation)
function_calls = [item for item in response.output if item.type == "function_call"]
# If no tool call is needed, output the content directly.
if not function_calls:
    print(f"Final assistant response: {response.output_text}")
else:
    # Enter the tool-calling loop.
    while function_calls:
        for fc in function_calls:
            func_name = fc.name
            arguments = json.loads(fc.arguments)
            print(f"Calling tool [{func_name}] with arguments: {arguments}")
            # Execute the tool.
            tool_result = get_current_weather(arguments)
            print(f"Tool returned: {tool_result}")
            # Append the tool call and its result to the context as a pair.
            conversation.append(
                {
                    "type": "function_call",
                    "name": fc.name,
                    "arguments": fc.arguments,
                    "call_id": fc.call_id,
                }
            )
            conversation.append(
                {
                    "type": "function_call_output",
                    "call_id": fc.call_id,
                    "output": tool_result,
                }
            )
        # Call the model again with the full context.
        response = get_response(conversation)
        function_calls = [
            item for item in response.output if item.type == "function_call"
        ]
    print(f"Final assistant response: {response.output_text}")
import OpenAI from "openai";

// Initialize the client.
const openai = new OpenAI({
  // If the environment variable is not set, replace with: apiKey: "sk-xxx"
  apiKey: process.env.DASHSCOPE_API_KEY,
  // Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
  baseURL:
    "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
});

// Define the list of tools.
const tools = [
  {
    type: "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 or Hangzhou.",
        },
      },
      required: ["location"],
    },
  },
];

// Simulate the weather query tool.
const getCurrentWeather = (args) => {
  const weatherConditions = ["sunny", "cloudy", "rainy"];
  const randomWeather =
    weatherConditions[Math.floor(Math.random() * weatherConditions.length)];
  const location = args.location;
  return `Today in ${location} it is ${randomWeather}.`;
};

// Wrap the model response function.
const getResponse = async (inputData) => {
  const response = await openai.responses.create({
    model: "qwen3.8-max",
    input: inputData,
    tools: tools,
  });
  return response;
};

const main = async () => {
  const userQuestion = "What's the weather like in Beijing?";

  // Maintain the conversation context.
  const conversation = [{ role: "user", content: userQuestion }];

  let response = await getResponse(conversation);
  let functionCalls = response.output.filter(
    (item) => item.type === "function_call"
  );
  // If no tool call is needed, output the content directly.
  if (functionCalls.length === 0) {
    console.log(`Final assistant response: ${response.output_text}`);
  } else {
    // Enter the tool-calling loop.
    while (functionCalls.length > 0) {
      for (const fc of functionCalls) {
        const funcName = fc.name;
        const args = JSON.parse(fc.arguments);
        console.log(`Calling tool [${funcName}] with arguments:`, args);
        // Execute the tool.
        const toolResult = getCurrentWeather(args);
        console.log(`Tool returned: ${toolResult}`);
        // Append the tool call and its result to the context as a pair.
        conversation.push({
          type: "function_call",
          name: fc.name,
          arguments: fc.arguments,
          call_id: fc.call_id,
        });
        conversation.push({
          type: "function_call_output",
          call_id: fc.call_id,
          output: toolResult,
        });
      }
      // Call the model again with the full context.
      response = await getResponse(conversation);
      functionCalls = response.output.filter(
        (item) => item.type === "function_call"
      );
    }
    console.log(`Final assistant response: ${response.output_text}`);
  }
};

// Start the program.
main().catch(console.error);

Comprensión de documentos

import os
from openai import OpenAI

client = OpenAI(
    # If you have not configured an environment variable, replace the next line with: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.5-ocr",
    input=[
        {
            "role": "user",
            "content": [
                {
                    "type": "input_file",
                    "file_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf",
                },
                {
                    "type": "input_text",
                    "text": "Read all the text in the file.",
                },
            ],
        }
    ],
    extra_body={
        "ocr_options": {"task": "document_parsing"}
    },
)

print(response.output_text)
import OpenAI from 'openai';

const client = new OpenAI({
    // If you have not configured an environment variable, replace the next line with: apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
});

async function main() {
    const response = await client.responses.create({
        model: "qwen3.5-ocr",
        input: [{
            role: "user",
            content: [{
                type: "input_file",
                file_url: "https://example.com/your-document.pdf"
            }]
        }],
        ocr_options: { task: "document_parsing" }
    });

    // Get the custom task result
    console.log(response.output[0].content[0].ocr_result);
}

main();
curl -X POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.5-ocr",
    "input": [
        {
            "role": "user",
            "content": [
                {
                    "type": "input_file",
                    "file_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20260616/qmycjl/1506.02640v5.pdf"
                },
                {
                    "type": "input_text",
                    "text": "Read all the text in the file."
                }
            ]
        }
    ],
    "ocr_options": {"task": "document_parsing"}
}'

Caché de sesión

Para habilitar el almacenamiento en caché de sesión, configure x-dashscope-session-cache: enable en el encabezado de la solicitud y utilice previous_response_id para vincular los turnos de conversación. Para más detalles, consulte Caché de sesión.

El almacenamiento en caché implícito automático se describe por separado en Caché de contexto.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    # Enable the session cache via default_headers.
    default_headers={"x-dashscope-session-cache": "enable"}
)

# Construct a long text over 1024 tokens to trigger cache creation.
# If not, caching is triggered when the cumulative context exceeds 1024 tokens.
long_context = "Artificial intelligence (AI) is a major branch of computer science, dedicated to researching and developing theories, methods, technologies, and application systems that can simulate, extend, and expand human intelligence." * 50

# First turn
response1 = client.responses.create(
    model="qwen3.8-max",
    input=long_context + "\n\nBased on this context, briefly introduce the Random Forest algorithm in machine learning.",
)
print(f"First response: {response1.output_text}")

# Second turn: Link context using previous_response_id. The cache is handled automatically by the server.
response2 = client.responses.create(
    model="qwen3.8-max",
    input="What are the main differences between it and GBDT?",
    extra_body={"previous_response_id": response1.id}
)
print(f"Second response: {response2.output_text}")

# Check the cache hit status.
usage = response2.usage
print(f"Input tokens: {usage.input_tokens}")
print(f"Cached tokens: {usage.prompt_tokens_details.cached_tokens}")
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    // Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    // Enable the session cache via defaultHeaders.
    defaultHeaders: {"x-dashscope-session-cache": "enable"}
});

// Construct a long text over 1024 tokens to trigger cache creation.
// If not, caching is triggered when the cumulative context exceeds 1024 tokens.
const longContext = "Artificial intelligence (AI) is a major branch of computer science, dedicated to researching and developing theories, methods, technologies, and application systems that can simulate, extend, and expand human intelligence.".repeat(50);

async function main() {
    // First turn
    const response1 = await openai.responses.create({
        model: "qwen3.8-max",
        input: longContext + "\n\nBased on this context, briefly introduce the Random Forest algorithm in machine learning, including its basic principles and applications."
    });
    console.log(`First response: ${response1.output_text}`);

    // Second turn: Link context using previous_response_id. The cache is handled automatically by the server.
    const response2 = await openai.responses.create({
        model: "qwen3.8-max",
        input: "What are the main differences between it and GBDT?",
        extra_body: { previous_response_id: response1.id }
    } as any);
    console.log(`Second response: ${response2.output_text}`);

    // Check the cache hit status.
    console.log(`Input tokens: ${response2.usage.input_tokens}`);
    console.log(`Cached tokens: ${response2.usage.prompt_tokens_details.cached_tokens}`);
}

main();
# First turn
# Repeat the long text 50 times to ensure it exceeds 1024 tokens and triggers cache creation.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "x-dashscope-session-cache: enable" \
-d '{
    "model": "qwen3.8-max",
    "input": "Artificial intelligence (AI) is a major branch of computer science..."
}'

# Second turn - use the ID from the previous response as previous_response_id.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "x-dashscope-session-cache: enable" \
-d '{
    "model": "qwen3.8-max",
    "input": "What are the main differences between it and GBDT?",
    "previous_response_id": ""
}'

Objeto de respuesta (salida sin transmisión)

id string

Un identificador único para esta respuesta, un UUID. Este ID es válido por 7 días y puede utilizarse en el parámetro previous_response_id para crear una conversación de múltiples turnos.

created_at integer

La marca de tiempo Unix (en segundos) para esta solicitud.

object string

El tipo de objeto, que siempre es response.

status string

El estado de la generación de respuesta. Valores válidos:

  • completed: Generación completada.
  • failed: Error en la generación.
  • in_progress: Generación en curso.
  • cancelled: Generación cancelada.
  • queued: Solicitud en cola.
  • incomplete: Generación incompleta.

model string

El ID del modelo utilizado para generar la respuesta.

output array

Una matriz de elementos de salida generados por el modelo. El tipo y el orden de los elementos en la matriz dependen de la respuesta del modelo.

Propiedades de los elementos del arreglo

type string

El tipo de elemento de salida. Valores válidos:

  • message: Un elemento de mensaje que contiene el contenido de la respuesta final del modelo.
  • reasoning: El tipo de razonamiento. Este parámetro se devuelve cuando reasoning.effort se establece en un valor distinto de none o cuando el modo de razonamiento está habilitado. Los tokens de razonamiento se cuentan en output_tokens_details.reasoning_tokens y se facturan como tokens de razonamiento.
  • function_call: El tipo de llamada de función. Se devuelve cuando se utiliza una herramienta function personalizada. Maneje la llamada de función y devuelva el resultado.
  • web_search_call: El tipo de llamada de búsqueda. Se devuelve cuando se utiliza la herramienta web_search.
  • code_interpreter_call: Un tipo de ejecución de código que se devuelve cuando se utiliza la herramienta code_interpreter.
  • web_extractor_call: El tipo de extracción web. Se devuelve cuando se utiliza la herramienta web_extractor. Debe usarse junto con la herramienta web_search.
  • web_search_image_call: El tipo de llamada para una búsqueda de texto a imagen. Esto se devuelve cuando usted utiliza la herramienta web_search_image. Contiene una lista de las imágenes encontradas.
  • image_search_call: El tipo de llamada para una búsqueda de imagen a imagen. Esto se devuelve cuando se utiliza la herramienta image_search. Contiene una lista de imágenes similares.
  • mcp_call: El tipo de llamada MCP. Se devuelve cuando se utiliza la herramienta mcp. Contiene el resultado de la llamada al servicio MCP.
  • file_search_call: El tipo de llamada para una búsqueda en base de conocimientos, que se devuelve cuando usted utiliza la herramienta file_search. Contiene la consulta de recuperación y los resultados para la base de conocimientos.

id string

El identificador único del elemento de salida. Todos los tipos de elementos de salida contienen este campo.

role string

El rol del mensaje es siempre assistant. Este parámetro está presente solo cuando type es message.

status string

El estado del elemento de salida. Valores válidos: completed y in_progress. Este parámetro está presente cuando el parámetro type no está configurado como reasoning.

name string

El nombre de la herramienta o función. Este parámetro está presente cuando type es function_call, web_search_image_call, image_search_call o mcp_call.

Para web_search_image_call y image_search_call, los valores están fijados en "web_search_image" y "image_search", respectivamente.

Para mcp_call, el valor es el nombre de la función específica llamada en el servicio MCP, como amap-maps-maps_geo.

arguments string

Los parámetros para la llamada a la herramienta, en formato de cadena JSON. Este parámetro está presente cuando type es function_call, web_search_image_call, image_search_call o mcp_call. Analice la cadena utilizando JSON.parse() antes de usarla. El contenido de los argumentos para los diferentes tipos de herramientas es el siguiente:

  • web_search_image_call: {"queries": ["Search Keyword 1", "Search Keyword 2"]}, donde queries es una lista de palabras clave de búsqueda generadas automáticamente por el modelo basándose en la entrada del usuario.
  • image_search_call: {"img_idx": 0, "bbox": [0, 0, 1000, 1000]}, donde img_idx es el índice de la imagen de entrada (comenzando desde 0), y bbox son las coordenadas del cuadro delimitador [x1, y1, x2, y2] para el área de búsqueda. Los valores de las coordenadas oscilan entre 0 y 1000.
  • function_call: Un objeto de parámetros generado a partir del esquema de parámetros de la función definida por el usuario.
  • mcp_call: El objeto de parámetros para la función llamada en el servicio MCP.

call_id string

El ID único para la llamada de función. Este parámetro se incluye solo cuando type es function_call. Este ID debe incluirse en el resultado de la llamada de función para vincular la solicitud con la respuesta.

content array

La matriz de contenido del mensaje. Este parámetro está presente solo si type está establecido en message.

Propiedades de los elementos del arreglo

type string

El tipo de contenido. El valor está fijado en output_text.

text string

El contenido de texto generado por el modelo.

annotations array

El arreglo de anotaciones de texto. Por lo general, es un arreglo vacío.

summary array

Una matriz de resúmenes de razonamiento. Este campo está presente solo cuando type es reasoning. Cada elemento contiene el campo type (valor: summary_text) y el campo text (el texto del resumen).

acción object

La información sobre la acción de búsqueda. Este parámetro está presente solo cuando type es web_search_call.

Propiedades

query string

Las palabras clave de la consulta de búsqueda.

type string

El tipo de búsqueda. El valor siempre es search.

sources array

Una lista de fuentes de búsqueda. Cada elemento contiene los campos type y url.

code string

El código generado y ejecutado por el modelo. Existe solo cuando type es code_interpreter_call.

outputs array

La matriz de salida de ejecución de código. Esto está presente solo cuando type es code_interpreter_call. Cada elemento tiene un campo type (el valor es logs) y un campo logs (los registros de ejecución de código).

container_id string

El identificador del contenedor para el intérprete de código. Este parámetro está presente solo cuando type es code_interpreter_call. Este identificador asocia múltiples ejecuciones de código dentro de la misma sesión.

goal string

Una descripción de la información a extraer de la página web. Este parámetro está disponible solo cuando type es web_extractor_call.

output string

La salida de la llamada de herramienta. La salida es una cadena.

  • Si type es web_extractor_call, esto es un resumen del contenido extraído de la página web.
  • Si type es web_search_image_call o image_search_call, esto es una cadena JSON que contiene una matriz de resultados de búsqueda de imágenes. Cada elemento incluye los campos title, url y index.
  • Si type es mcp_call, este es el resultado en cadena JSON devuelto por el servicio MCP.

urls array

La lista de URL de las páginas web extraídas. Este parámetro está disponible solo cuando type es web_extractor_call.

server_label string

La etiqueta para el servicio MCP. Aparece solo cuando type es mcp_call. Muestra qué servicio MCP utilizó la llamada.

queries array

Una lista de consultas para la recuperación de la base de conocimientos. Este parámetro existe solo cuando type es file_search_call. La matriz contiene cadenas. Cada cadena es una consulta de búsqueda generada por el modelo.

results array

Una matriz de resultados de búsqueda de la base de conocimientos. Este parámetro está presente solo cuando type es file_search_call.

Propiedades de los elementos del arreglo

file_id string

El ID de archivo del documento coincidente.

filename string

El nombre de archivo del documento coincidente.

score float

La puntuación de relevancia de la coincidencia. El valor oscila entre 0 y 1. Un valor mayor indica una mayor relevancia.

text string

El fragmento de contenido del documento coincidente.

usage object

Información sobre el consumo de tokens para esta solicitud.

Propiedades

input_tokens integer

El número de tokens en la entrada. Notas adicionales

output_tokens integer

El número de tokens en la salida del modelo.

total_tokens integer

El número total de tokens consumidos es la suma de input_tokens y output_tokens.

input_tokens_details object

Una clasificación detallada de los tokens de entrada.

Propiedades

cached_tokens integer

El número de tokens que acertaron en la caché. Para obtener más información, consulte caché de contexto.

output_tokens_details object

Un desglose detallado de los tokens de salida.

Propiedades

reasoning_tokens integer

El número de tokens de razonamiento.

x_details array

Una matriz de detalles de facturación para la solicitud. Proporciona un desglose más granular de los tokens multimodales que el campo usage de nivel superior.

Propiedades

input_tokens integer

El número de tokens en la entrada. Notas adicionales

output_tokens integer

El número de tokens en la salida del modelo.

total_tokens integer

El número total de tokens consumidos es la suma de input_tokens y output_tokens.

x_billing_type string

El valor está fijado en response_api.

image_tokens integer

El número de tokens para la entrada de imagen. Este campo se devuelve cuando la entrada incluye una imagen y es equivalente a input_tokens_details.image_tokens.

input_tokens_details object

Un desglose de los tokens de entrada. Los campos dependen del modelo y las modalidades de entrada. Para entrada de audio, qwen3.8-omni-flash puede devolver audio_tokens.

Propiedades

text_tokens integer

El número de tokens para la entrada de texto.

image_tokens integer

El número de tokens para la entrada de imagen.

audio_tokens integer

El número de tokens de entrada de audio en usage.x_details[].input_tokens_details.audio_tokens. Opcional; se devuelve cuando es aplicable al modelo y a la entrada.

output_tokens_details object

Un desglose detallado de los tokens de salida. Este campo tiene un campo text_tokens adicional en comparación con el output_tokens_details de nivel superior. El campo text_tokens se devuelve para entradas multimodales.

Propiedades

reasoning_tokens integer

El número de tokens para el proceso de razonamiento.

text_tokens integer

El número de tokens para la salida de texto. Este campo se devuelve para entradas multimodales.

plugins object

Estadísticas para llamadas de herramientas integradas. Este campo se devuelve cuando se utiliza una herramienta integrada como web_search. Su contenido es el mismo que el del campo x_tools de nivel superior.

Propiedades

web_search object

Estadísticas de las llamadas de búsqueda web.

Propiedades

count integer

El número de veces que se llamó a la búsqueda web en esta respuesta.

prompt_tokens_details object

Detalles de caché para tokens de entrada. Este campo se devuelve cuando la caché de sesión está habilitada. Puede devolver un objeto vacío si la entrada incluye una imagen pero resulta en un fallo de caché.

Propiedades

cached_tokens integer

El número de tokens que coincidieron con la caché.

cache_creation_input_tokens integer

El número de tokens utilizados para crear una nueva caché en esta solicitud.

cache_creation object

Detalles sobre la creación de caché.

Propiedades

ephemeral_5m_input_tokens integer

El número de tokens utilizados para crear una nueva caché efímera de 5 minutos.

cache_type string

El tipo de caché. El valor está fijado en ephemeral.

x_tools object

Estadísticas sobre el uso de herramientas. Esto contiene el número de veces que se llama a cada herramienta integrada.

Ejemplo: {"web_search": {"count": 1}}

error object

Se devuelve un objeto de error cuando el modelo no logra generar una respuesta. De lo contrario, el valor es null.

tools array

Repite el contenido completo del parámetro tools de la solicitud, con la misma estructura que el parámetro tools en el cuerpo de la solicitud.

tool_choice string

Repite el valor del parámetro tool_choice en la solicitud. Los valores válidos son auto, none y required.

{
    "created_at": 1771165900.0,
    "id": "f75c28fb-4064-48ed-90da-4d2cc4362xxx",
    "model": "qwen3.8-max",
    "object": "response",
    "output": [
        {
            "content": [
                {
                    "annotations": [],
                    "text": "Hello! I am Qwen3.5, a large language model developed by Alibaba Cloud with knowledge up to 2026, designed to assist you with complex reasoning, creative tasks, and multilingual conversations.",
                    "type": "output_text"
                }
            ],
            "id": "msg_89ad23e6-f128-4d4c-b7a1-a786e7880xxx",
            "role": "assistant",
            "status": "completed",
            "type": "message"
        }
    ],
    "parallel_tool_calls": false,
    "status": "completed",
    "tool_choice": "auto",
    "tools": [],
    "usage": {
        "input_tokens": 57,
        "input_tokens_details": {
            "cached_tokens": 0
        },
        "output_tokens": 44,
        "output_tokens_details": {
            "reasoning_tokens": 0
        },
        "total_tokens": 101,
        "x_details": [
            {
                "input_tokens": 57,
                "output_tokens": 44,
                "total_tokens": 101,
                "x_billing_type": "response_api"
            }
        ]
    }
}

Objeto de fragmento de respuesta (salida en streaming)

La salida por flujo devuelve una serie de objetos JSON. Cada objeto incluye un campo type para especificar el tipo de evento y un campo sequence_number para indicar el orden del evento. El evento response.completed marca el fin del flujo.

type string

El identificador del tipo de evento. Los valores posibles incluyen:

  • response.created: La respuesta se crea, con un estado de queued.
  • response.in_progress: La respuesta comienza a procesarse y el estado cambia a in_progress.
  • response.output_item.added: Se agrega un nuevo elemento de salida (por ejemplo, un mensaje o un web_extractor_call) a la matriz de salida. Cuando item.type es web_extractor_call, esto indica el inicio de una llamada de herramienta de extracción web.
  • response.content_part.added: Se agrega una nueva parte de contenido a la matriz content de un elemento de salida.
  • response.output_text.delta: Se genera un segmento de texto incremental. Este evento se activa múltiples veces y el campo delta contiene el nuevo segmento de texto.
  • response.output_text.done: La generación de texto para una parte de contenido está completa. El campo text contiene el texto completo.
  • response.content_part.done: Una parte de contenido está completa. El objeto part contiene la parte de contenido completa.
  • response.output_item.done: Un elemento de salida está completo. El objeto item contiene el elemento de salida completo. Cuando item.type es web_extractor_call, esto indica la finalización de una llamada de herramienta de extracción web.
  • response.reasoning_text.delta: (En modo de razonamiento) Proporciona una actualización incremental al resumen de razonamiento. El campo delta contiene el nuevo segmento.
  • response.reasoning_text.done: (En modo de razonamiento) El resumen de razonamiento está completo. El campo text contiene el resumen completo.
  • response.custom_tool_call_input.delta: Proporciona una actualización incremental a la entrada de llamada de herramienta personalizada. El campo delta contiene el segmento recién generado.
  • response.custom_tool_call_input.done: La entrada de llamada de herramienta personalizada está completa. El campo de entrada contiene la entrada completa.
  • response.web_search_call.in_progress / searching / completed: Un evento que indica un cambio en el estado de la búsqueda cuando se utiliza la herramienta web_search.
  • response.code_interpreter_call.in_progress / interpreting / completed: Un evento para un cambio en el estado de ejecución del código (al utilizar la herramienta code_interpreter).
  • Nota: La herramienta web_extractor no tiene un identificador de tipo de evento dedicado. Sus llamadas a herramientas se transmiten a través de los eventos generales response.output_item.added y response.output_item.done, y se identifican mediante el campo item.type con un valor de web_extractor_call.
  • response.mcp_call_arguments.delta / response.mcp_call_arguments.done: Estos eventos proporcionan el delta y el estado de finalización para los argumentos de llamada MCP.
  • response.mcp_call.in_progress: La llamada al servicio MCP está en curso.
  • response.mcp_call.completed: La llamada al servicio MCP ha finalizado.
  • response.file_search_call.in_progress / searching / completed: Eventos de cambio de estado para una búsqueda en base de conocimientos (cuando se utiliza la herramienta file_search).
  • Nota: Al utilizar las herramientas web_search_image y image_search, no existen eventos de estado intermedio dedicados. Las llamadas a herramientas se comunican mediante los eventos response.output_item.added (inicio de llamada) y response.output_item.done (llamada completada).
  • response.completed: La generación de la respuesta ha finalizado. El objeto response contiene la respuesta completa, incluido el uso. Este evento marca el fin del flujo.
  • response.incomplete: La respuesta finalizó antes de tiempo debido a límites como max_output_tokens.

sequence_number integer

El número de secuencia del evento, comenzando en 0 e incrementándose con cada evento. Utilice este número para procesar los eventos en el orden correcto.

response object

El objeto de respuesta. Aparece en los eventos response.created, response.in_progress y response.completed. En el evento response.completed, contiene los datos completos de la respuesta (incluyendo output y usage), y su estructura es idéntica a la del objeto Response sin transmisión por secuencias.

item object

Un objeto de elemento de salida. Aparece en los eventos response.output_item.added y response.output_item.done. En el evento added, es un esqueleto inicial donde content es una matriz vacía. En el evento done, es un objeto completo.

Propiedades

id string

Un identificador único para el elemento de salida (por ejemplo, msg_xxx).

type string

El tipo del elemento de salida. Valores posibles: message, reasoning, web_search_call, web_search_image_call (búsqueda de texto a imagen), image_search_call (búsqueda de imagen a imagen), mcp_call (llamada MCP), file_search_call (búsqueda en base de conocimientos).

role string

El rol del mensaje, que siempre es assistant. Presente solo cuando type es message.

status string

Estado de generación. En un evento added, el estado es in_progress, y en un evento done, es completed.

content array

Una matriz de contenido de mensaje. En el evento added, la matriz está vacía []. En el evento done, contiene objetos de parte de contenido completos cuya estructura es la misma que la del objeto part.

part object

El objeto de parte de contenido. Aparece en los eventos response.content_part.added y response.content_part.done.

Propiedades

type string

El tipo de la parte de contenido, que siempre es output_text.

text string

Contenido de texto. Es una cadena vacía en el evento added y el texto completo en el evento done.

annotations array

Un arreglo de anotaciones de texto. Generalmente un arreglo vacío.

logprobs object | null

Probabilidades logarítmicas de tokens. Este campo actualmente siempre devuelve null.

delta string

El segmento de texto incremental. Este campo aparece en el evento response.output_text.delta y contiene el segmento de texto recién agregado. Concatene todos los valores delta para reconstruir el texto completo.

text string

El contenido de texto completo. Este campo aparece en el evento response.output_text.done. Puede utilizarlo para validar el texto reconstruido a partir de los fragmentos delta.

item_id string

El identificador único para el elemento de salida. Utilice este ID para correlacionar eventos que pertenecen al mismo elemento.

output_index integer

El índice del elemento de salida en el arreglo output.

content_index integer

El índice de la parte de contenido en el arreglo content.

// response.created: The response is created and queued.
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","created_at":1769082930,"object":"response","status":"queued",...},"sequence_number":0,"type":"response.created"}

// response.in_progress: Processing begins.
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","status":"in_progress",...},"sequence_number":1,"type":"response.in_progress"}

// response.output_item.added: A new output item is added.
{"item":{"id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","content":[],"role":"assistant","status":"in_progress","type":"message"},"output_index":0,"sequence_number":2,"type":"response.output_item.added"}

// response.content_part.added: A new content part is added.
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","output_index":0,"part":{"annotations":[],"text":"","type":"output_text","logprobs":null},"sequence_number":3,"type":"response.content_part.added"}

// response.output_text.delta: Incremental text (can be triggered multiple times).
{"content_index":0,"delta":"Artificial Intelligence","item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":4,"type":"response.output_text.delta"}
{"content_index":0,"delta":" (AI) refers to the technology","item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":6,"type":"response.output_text.delta"}

// response.output_text.done: Text generation for a content part is complete.
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":53,"text":"Artificial Intelligence (AI) refers to the technology and science that enables computer systems to simulate human intelligent behaviors...","type":"response.output_text.done"}

// response.content_part.done: The content part is complete.
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","output_index":0,"part":{"annotations":[],"text":"...full text...","type":"output_text","logprobs":null},"sequence_number":54,"type":"response.content_part.done"}

// response.output_item.done: The output item is complete.
{"item":{"id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","content":[{"annotations":[],"text":"...full text...","type":"output_text","logprobs":null}],"role":"assistant","status":"completed","type":"message"},"output_index":0,"sequence_number":55,"type":"response.output_item.done"}

// response.completed: The response is complete (includes full response and usage).
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","created_at":1769082930,"model":"qwen3.7-max","object":"response","output":[...],"status":"completed","usage":{"input_tokens":37,"output_tokens":243,"total_tokens":280,...}},"sequence_number":56,"type":"response.completed"}
id:1
event:response.created
:HTTP_STATUS/200
data:{"sequence_number":0,"type":"response.created","response":{"output":[],"parallel_tool_calls":false,"created_at":1769435906,"tool_choice":"auto","model":"","id":"863df8d9-cb29-4239-a54f-3e15a2427xxx","tools":[],"object":"response","status":"queued"}}

id:2
event:response.in_progress
:HTTP_STATUS/200
data:{"sequence_number":1,"type":"response.in_progress","response":{"output":[],"parallel_tool_calls":false,"created_at":1769435906,"tool_choice":"auto","model":"","id":"863df8d9-cb29-4239-a54f-3e15a2427xxx","tools":[],"object":"response","status":"in_progress"}}

id:3
event:response.output_item.added
:HTTP_STATUS/200
data:{"sequence_number":2,"item":{"summary":[],"type":"reasoning","id":"msg_5bd0c6df-19b8-4a04-bc00-8042a224exxx"},"output_index":0,"type":"response.output_item.added"}

id:4
event:response.reasoning_text.delta
:HTTP_STATUS/200
data:{"delta":"The user wants me to:\n1. Search for the Alibaba Cloud official website.\n2. Extract key information from the homepage.\n\nI need to first search for the URL of the Alibaba Cloud official website, and then use the web_extractor tool to access the website and extract key information.","sequence_number":3,"output_index":0,"type":"response.reasoning_text.delta","item_id":"msg_5bd0c6df-19b8-4a04-bc00-8042a224exxx"}

id:14
event:response.reasoning_text.done
:HTTP_STATUS/200
data:{"sequence_number":13,"text":"The user wants me to:\n1. Search for the Alibaba Cloud official website.\n2. Extract key information from the homepage.\n\nI need to first search for the URL of the Alibaba Cloud official website, and then use the web_extractor tool to access the website and extract key information.","output_index":0,"type":"response.reasoning_text.done","item_id":"msg_5bd0c6df-19b8-4a04-bc00-8042a224exxx"}

id:15
event:response.output_item.done
:HTTP_STATUS/200
data:{"sequence_number":14,"item":{"summary":[{"type":"summary_text","text":"The user wants me to:\n1. Search for the Alibaba Cloud official website.\n2. Extract key information from the homepage.\n\nI need to first search for the URL of the Alibaba Cloud official website, and then use the web_extractor tool to access the website and extract key information."}],"type":"reasoning","id":"msg_5bd0c6df-19b8-4a04-bc00-8042a224exxx"},"output_index":1,"type":"response.output_item.done"}

id:16
event:response.output_item.added
:HTTP_STATUS/200
data:{"sequence_number":15,"item":{"action":{"type":"search","query":"Web search"},"id":"msg_a8a686b1-0a57-40e1-bb55-049a89cd4xxx","type":"web_search_call","status":"in_progress"},"output_index":1,"type":"response.output_item.added"}

id:17
event:response.web_search_call.in_progress
:HTTP_STATUS/200
data:{"sequence_number":16,"output_index":1,"type":"response.web_search_call.in_progress","item_id":"msg_a8a686b1-0a57-40e1-bb55-049a89cd4xxx"}

id:19
event:response.web_search_call.completed
:HTTP_STATUS/200
data:{"sequence_number":18,"output_index":1,"type":"response.web_search_call.completed","item_id":"msg_a8a686b1-0a57-40e1-bb55-049a89cd4xxx"}

id:20
event:response.output_item.done
:HTTP_STATUS/200
data:{"sequence_number":19,"item":{"action":{"sources":[{"type":"url","url":"https://cn.aliyun.com/"},{"type":"url","url":"https://www.aliyun.com/"}],"type":"search","query":"Web search"},"id":"msg_a8a686b1-0a57-40e1-bb55-049a89cd4xxx","type":"web_search_call","status":"completed"},"output_index":1,"type":"response.output_item.done"}

id:33
event:response.output_item.added
:HTTP_STATUS/200
data:{"sequence_number":32,"item":{"urls":["https://cn.aliyun.com/"],"goal":"Extract key information from the Alibaba Cloud homepage, including: company positioning/overview, core products and services, main business segments, key features/solutions, latest news/events, free trial/discount information, and navigation menu structure.","id":"msg_8c2cf651-48a5-460c-aa7a-bea5b09b4xxx","type":"web_extractor_call","status":"in_progress"},"output_index":3,"type":"response.output_item.added"}

id:34
event:response.output_item.done
:HTTP_STATUS/200
data:{"sequence_number":33,"item":{"output":"The useful information in https://cn.aliyun.com/ for user goal 'Extract key information from the Alibaba Cloud homepage, including: company positioning/overview, core products and services, main business segments, key features/solutions, latest news/events, free trial/discount information, and navigation menu structure' is as follows: \n\nEvidence in page: \n## Tongyi large model, the first choice for enterprises in the AI era\n\n## A complete product system, building a cloud for enterprise technological innovation\n\nAll cloud products## Making AI accessible through the synergistic development of large models and cloud computing\n\nAll AI solutions\n\nSummary: \nAlibaba Cloud positions itself as a leading enterprise AI solution provider centered around the Tongyi large model...","urls":["https://cn.aliyun.com/"],"goal":"Extract key information from the Alibaba Cloud homepage, including: company positioning/overview, core products and services, main business segments, key features/solutions, latest news/events, free trial/discount information, and navigation menu structure.","id":"msg_8c2cf651-48a5-460c-aa7a-bea5b09b4xxx","type":"web_extractor_call","status":"completed"},"output_index":3,"type":"response.output_item.done"}

id:50
event:response.output_item.added
:HTTP_STATUS/200
data:{"sequence_number":50,"item":{"content":[{"type":"text","text":""}],"type":"message","id":"msg_final","role":"assistant"},"output_index":5,"type":"response.output_item.added"}

id:51
event:response.output_text.delta
:HTTP_STATUS/200
data:{"delta":"I have found the Alibaba Cloud website and extracted the key information from its homepage:\n\n","sequence_number":51,"output_index":5,"type":"response.output_text.delta"}

id:60
event:response.completed
:HTTP_STATUS/200
data:{"type":"response.completed","response":{"id":"863df8d9-cb29-4239-a54f-3e15a2427xxx","status":"completed","usage":{"input_tokens":45,"output_tokens":320,"total_tokens":365}}}
// 1-6. Reasoning phase (same as other tools).

// 7. response.mcp_call_arguments.delta: MCP arguments delta (MCP-specific event).
id:27
event:response.mcp_call_arguments.delta
data:{"delta":"{\"city\": \"Beijing\"}","sequence_number":26,"output_index":1,"type":"response.mcp_call_arguments.delta","item_id":"msg_xxx"}

// 8. response.mcp_call_arguments.done: MCP arguments are complete (MCP-specific event).
id:28
event:response.mcp_call_arguments.done
data:{"sequence_number":27,"arguments":"{\"city\": \"Beijing\"}","output_index":1,"type":"response.mcp_call_arguments.done","item_id":"msg_xxx"}

// 9. response.output_item.added: MCP tool call starts (includes name, server_label, arguments).
id:29
event:response.output_item.added
data:{"sequence_number":28,"item":{"name":"amap-maps-maps_weather","server_label":"MCP Server","arguments":"{\"city\": \"Beijing\"}","id":"msg_xxx","type":"mcp_call","status":"in_progress"},"output_index":1,"type":"response.output_item.added"}

// 10. response.mcp_call.completed: MCP call is complete (MCP-specific event).
id:30
event:response.mcp_call.completed
data:{"sequence_number":29,"output_index":1,"type":"response.mcp_call.completed","item_id":"msg_xxx"}

// 11. response.output_item.done: The MCP output item is complete (includes the full 'output').
id:31
event:response.output_item.done
data:{"sequence_number":30,"item":{"output":"{\"city\":\"Beijing\",\"forecasts\":[...]}","name":"amap-maps-maps_weather","server_label":"MCP Server","arguments":"{\"city\": \"Beijing\"}","id":"msg_xxx","type":"mcp_call","status":"completed"},"output_index":1,"type":"response.output_item.done"}

// 12-15. Second round of reasoning + final message output.

// 16. response.completed
id:172
event:response.completed
data:{"sequence_number":171,"type":"response.completed","response":{"output":[...],"status":"completed","usage":{"input_tokens":5019,"output_tokens":539,"total_tokens":5558}}}

FAQ

P: ¿Cómo paso el contexto para una conversación de múltiples turnos?

R: Al realizar una nueva solicitud de conversación, pase el id de la respuesta exitosa anterior del modelo como el parámetro previous_response_id.

P: ¿Por qué algunos campos en el ejemplo de respuesta no se describen en este tema?

R: El SDK oficial de OpenAI puede generar campos adicionales definidos por el protocolo de OpenAI. Nuestro servicio no admite estos campos, por lo que normalmente son null. Concéntrese únicamente en los campos descritos en este tema.