Los modelos Qwen en Model Studio admiten interfaces compatibles con OpenAI. Puede migrar su código existente de OpenAI a Model Studio cambiando únicamente la clave de API, la URL base y el nombre del modelo.
Información de compatibilidad
BASE_URL
El BASE_URL es el endpoint de red para acceder al servicio de modelos. Cuando utilice la interfaz compatible con OpenAI con Model Studio, configure el BASE_URL de la siguiente manera.
Cuando realiza la llamada mediante el SDK de OpenAI u otros SDK compatibles con OpenAI, utilice el siguiente BASE_URL:
Solución de problemas de llamadas fallidas: Si una llamada a través de la interfaz compatible con OpenAI falla con un error 404, 401, 403 o de conexión, verifique las siguientes configuraciones:
Llamadas entre regiones
Una clave de API de Model Studio está vinculada a la región en la que se creó. Cuando llame a la URL base de una región, debe utilizar una clave de API que se haya creado en esa misma región. Una clave de API de otra región se rechazará con un error de autenticación.
Esta regla se aplica a cada región que proporciona un endpoint, incluidas China (Beijing), EE. UU. (Virginia), Singapore y Japan (Tokyo), así como China (Hong Kong). Cree la clave de API en la consola de la región cuyo endpoint va a llamar.
Por ejemplo, si utiliza una clave de API creada en la región de China (Beijing) para llamar al endpoint de EE. UU. (Virginia), la solicitud devolverá HTTP 401 con el mensaje de error Incorrect API key provided y el código de error invalid_api_key. Este error indica que la clave de API y el endpoint pertenecen a diferentes regiones, no que la clave de API sea inválida o carezca de permisos.
Modelos admitidos
Modelos compatibles: modelos de lenguaje grande Qwen (ediciones comerciales y de código abierto), Qwen-VL, Qwen-Coder, Qwen-Omni, Qwen-Math, DeepSeek, Kimi, GLM, MiniMax.
Qwen-Audio no admite el protocolo compatible con OpenAI. Utilice el protocolo DashScope en su lugar.
Llamada mediante el SDK de OpenAI
Requisitos previos
- Python está instalado en su equipo.
- La última versión del SDK de OpenAI está instalada.
- Ha activado Model Studio y ha obtenido una clave de API. Para obtener instrucciones, consulte Obtener clave de API.
- (Recomendado) Configure la clave de API como variable de entorno para reducir el riesgo de exposición de la clave. También puede configurarla directamente en el código, pero esto aumenta el riesgo de exposición.
- Seleccione el modelo que want utilizar de la lista de modelos compatibles.
Uso
Los siguientes ejemplos muestran cómo utilizar el SDK de OpenAI para acceder a los modelos Qwen en Model Studio.
Ejemplo sin streaming
Ejemplo de streaming
Ejemplo de llamada de herramientas
El siguiente ejemplo demuestra la llamada de herramientas (llamada de función) a través de la interfaz compatible con OpenAI, utilizando una herramienta de consulta meteorológica y una herramienta de consulta horaria. El código de ejemplo admite llamadas de herramientas de múltiples turnos.
Parámetros de solicitud
Los parámetros de solicitud están alineados con la interfaz de OpenAI. La siguiente tabla describe los parámetros admitidos actualmente:
Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | string | - | El modelo a utilizar. Para ver los modelos disponibles, consulte Modelos compatibles. |
messages | array | - | El historial de conversaciones entre el usuario y el modelo. Cada elemento del arreglo tiene el formato |
top_p (optional) | float | - | El umbral de probabilidad de muestreo de núcleo. Por ejemplo, un valor de 0.8 conserva solo el conjunto más pequeño de tokens cuya probabilidad acumulada es al menos 0.8. Valores válidos: (0, 1.0). Los valores más altos aumentan la aleatoriedad; los valores más bajos aumentan el determinismo. |
temperature (optional) | float | - | Controla la aleatoriedad y diversidad de las respuestas del modelo. Los valores más altos aplanan la distribución de probabilidad, seleccionando más tokens de baja probabilidad para una salida más diversa. Los valores más bajos agudizan la distribución, favoreciendo tokens de alta probabilidad para una salida más determinista. Valores válidos: [0, 2). No se recomienda un valor de 0. |
presence_penalty (optional) | float | - | Controla la repetición en toda la secuencia generada. Los valores más altos reducen la repetición. Valores válidos: [-2.0, 2.0]. Compatible solo con modelos comerciales Qwen y modelos de código abierto qwen1.5 y posteriores. |
n (optional) | integer | 1 | El número de respuestas a generar. Valores válidos: |
max_tokens (optional) | integer | - | El número máximo de tokens que el modelo puede generar. Por ejemplo, si el modelo admite hasta 2k tokens de salida, puede establecer esto en 1k para evitar respuestas excesivamente largas. Diferentes modelos tienen distintos límites de salida. Consulte la lista de modelos para obtener más detalles. |
seed (optional) | integer | - | La semilla aleatoria para la generación, utilizada para controlar la aleatoriedad de la salida del modelo. Admite enteros sin signo de 64 bits. |
stream (optional) | boolean | False | Controla si se debe utilizar la salida en streaming. Cuando el streaming está habilitado, la interfaz devuelve un generador. Itere sobre él para obtener resultados, donde cada salida es la secuencia incremental generada. |
stop (optional) | cadena o arreglo | None | Controla la detención precisa de la generación de contenido. La generación se detiene automáticamente cuando el modelo está a punto de producir la cadena especificada o token_id. Puede ser de tipo cadena o matriz. Cuando es de tipo cadena: la generación se detiene cuando el modelo está a punto de producir la palabra de parada especificada. Cuando es de tipo matriz: los elementos de la matriz pueden ser token_ids, cadenas o matrices de token_ids. La generación se detiene cuando el token generado o su token_id coincide con un elemento en stop. Cuando stop es de tipo arreglo, no puede mezclar token_ids y cadenas como elementos. |
tools (optional) | array | None | La biblioteca de herramientas disponible para que el modelo las invoque. Durante un flujo de llamada de función, el modelo selecciona una herramienta de esta biblioteca. Cada herramienta tiene la siguiente estructura: El parámetro tools no se puede utilizar simultáneamente con stream=True. |
stream_options (optional) | object | None | Configura si se debe mostrar el uso de tokens en la salida en streaming. Solo surte efecto cuando stream es True. Para contar tokens en modo streaming, establezca |
Parámetros de respuesta
Parámetro | Tipo | Descripción | Notas |
|---|---|---|---|
id | string | El ID generado por el sistema para esta solicitud. | - |
model | string | El nombre del modelo utilizado para esta solicitud. | - |
system_fingerprint | string | La versión de configuración utilizada por el entorno de ejecución del modelo. Actualmente no es compatible; devuelve una cadena vacía. | - |
choices | array | Los detalles del contenido generado por el modelo. | - |
choices[i].finish_reason | string | El motivo por el que se detuvo la generación. Valores: null (sigue generando), stop (detenido debido a una condición de parada), length (detenido por superar la longitud máxima). | - |
choices[i].message | object | El mensaje generado por el modelo. | - |
choices[i].message.role | string | El rol del modelo. Valor fijo: assistant. | - |
choices[i].message.content | string | El texto generado por el modelo. | - |
choices[i].index | integer | El número de secuencia del resultado generado. Predeterminado: 0. | - |
created | integer | La marca de tiempo (en segundos) del resultado generado. | - |
usage | object | Información de medición que indica el consumo de tokens para esta solicitud. | - |
usage.prompt_tokens | integer | El recuento de tokens del texto de entrada del usuario. | - |
usage.completion_tokens | integer | El recuento de tokens de la respuesta generada por el modelo. | - |
usage.total_tokens | integer | La suma de usage.prompt_tokens y usage.completion_tokens. | - |
Llamada mediante el SDK langchain_openai
Requisitos previos
- Python está instalado en su equipo.
- El SDK langchain_openai está instalado.
- Ha activado Model Studio y ha obtenido una clave de API. Para obtener instrucciones, consulte Obtener clave de API.
- (Recomendado) Configure la clave de API como variable de entorno para reducir el riesgo de exposición de la clave. También puede configurarla directamente en el código, pero esto aumenta el riesgo de exposición.
- Seleccione el modelo que want utilizar de la lista de modelos compatibles.
Uso
Los siguientes ejemplos muestran cómo utilizar el SDK langchain_openai para acceder a los modelos Qwen en Model Studio.
Salida sin streaming
La salida sin streaming utiliza el método invoke:
Salida por secuencias
La salida en streaming utiliza el método stream. No necesita configurar un parámetro de stream por separado.
Llamada mediante HTTP
Puede llamar a Model Studio mediante solicitudes HTTP y recibir respuestas con la misma estructura que las respuestas HTTP de OpenAI.
Requisitos previos
- Ha activado Model Studio y ha obtenido una clave de API. Para obtener instrucciones, consulte Obtener clave de API.
- (Recomendado) Configure la clave de API como variable de entorno para reducir el riesgo de exposición de la clave. También puede configurarla directamente en el código, pero esto aumenta el riesgo de exposición.
Endpoint
Ejemplos de solicitud
Los siguientes ejemplos utilizan comandos cURL para llamar a la API.
$DASHSCOPE_API_KEY con su clave de API real.Salida sin streaming
Salida por secuencias
Para utilizar la salida en streaming, establezca el parámetro stream en true en el cuerpo de la solicitud.
Respuesta de error
Cuando una solicitud falla, la respuesta incluye los campos code y message que indican la causa:
Configurar un cliente de terceros
Puede llamar a los modelos de Model Studio desde cualquier cliente de terceros que admita el protocolo compatible con OpenAI. Los siguientes pasos utilizan el cliente Zhipu como ejemplo:
- En la configuración del proveedor del cliente, seleccione Custom provider.
-
Base URL: Introduzca la URL base que el SDK de OpenAI utiliza para su región. Para consultar la URL base de cada región, véase BASE_URL. La URL base termina con
/compatible-mode/v1y no incluye/chat/completions. Dado que las URL base difieren según la región, utilice la correspondiente a la región de su clave de API. Por ejemplo, para la región de Singapore, introduzcahttps://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1. Reemplace{WorkspaceId}con su ID de espacio de trabajo, que puede encontrar en la página de detalles del espacio de trabajo en la consola de Model Studio. El dominio heredadohttps://dashscope.aliyuncs.comsigue disponible, pero utilice el dominio específico del espacio de trabajo siempre que sea posible. - API Key: Introduzca la clave de API de Model Studio correspondiente a la región a la que apunta la URL base. Puede crear y obtener una clave de API en la página de API Key management de la consola de Model Studio.
-
Nombre del modelo: Introduzca el nombre de un modelo de lenguaje grande que admita el protocolo compatible con OpenAI. Para ver los modelos entre los que puede elegir, consulte Modelos compatibles. Por ejemplo,
qwen3.7-plus. Este nombre de modelo es solo un ejemplo y no indica que el modelo proporcione una cuota gratuita. - Guarde la configuración e inicie una conversación para verificar que el cliente de terceros puede llamar al modelo.
error.message establecido en current user api does not support http call y error.type establecido en invalid_request_error. Este error significa que el modelo que introdujo no admite llamadas HTTP a través de la interfaz compatible con OpenAI. Reemplácelo con un modelo de Modelos compatibles e inténtelo de nuevo.
Códigos de error
Código de error | Descripción |
|---|---|
400 - Error de solicitud no válida | La solicitud no es válida. Consulte el mensaje de error para obtener más detalles. |
401 - Clave de API proporcionada incorrecta | La clave de API es incorrecta. |
429 - Límite de tasa alcanzado para solicitudes | Se ha excedido el límite de QPS o QPM. |
429 - Ha excedido su cuota actual; revise su plan y los detalles de facturación | Cuota excedida o cuenta con saldo pendiente. |
500 - El servidor tuvo un error al procesar su solicitud | Error del servidor. |
503 - El motor está actualmente sobrecargado, inténtelo de nuevo más tarde | Servidor sobrecargado. Inténtelo de nuevo más tarde. |