Referencia del uso heredado y correspondencia de migración de 1.x a 2.0 para el SDK de Python de DashScope, orientada a proyectos existentes que aún usan la versión 1.x.
Esta página está dirigida a proyectos existentes que todavía usan DashScope Python SDK 1.x. Reúne en un solo lugar el uso típico de las interfaces 1.x y muestra el código equivalente en 2.0.
La versión 1.x se configura mediante variables globales a nivel de módulo; la 2.0 se configura mediante argumentos del constructor
Las tareas por pasos (en 1.x
El control por pasos (el antiguo
La versión 1.x usa clases de callback (
El reconocimiento puntual de archivos locales (en 1.x
En 1.x,
La síntesis puntual usa
Los embeddings por lotes (en 1.x
Las llamadas en streaming a aplicaciones conservan el parámetro
Además de los nombres de las interfaces, tenga en cuenta las siguientes diferencias de comportamiento al migrar:
Asignación de migración de interfaces
| Capacidad | Interfaz 1.x | Interfaz 2.0 |
|---|---|---|
| Generación de texto | Generation.call / AioGeneration.call | client.chat.completions.create |
| Chat multimodal | MultiModalConversation.call | client.multimodal.chat.create |
| Generación de imágenes | ImageSynthesis.call/async_call/fetch/wait | client.images.generate / client.images.jobs.* |
| Generación de video | VideoSynthesis.call/async_call/fetch/wait | client.videos.generate / client.videos.jobs.* |
| Transcripción de archivos de audio | Transcription.async_call/fetch/wait | client.audio.asr.transcribe / client.audio.asr.jobs.* |
| Reconocimiento de voz en tiempo real | Recognition.start/send_audio_frame/stop | client.audio.asr.recognize(...) context manager |
| Síntesis de voz | SpeechSynthesizer (tts_v2 callback style) | client.audio.tts.synthesize/stream/connect |
| Embeddings de texto | TextEmbedding.call / BatchTextEmbedding | client.embeddings.create / client.embeddings.jobs.* |
| Rerank | TextReRank.call | client.rerank.create |
| Aplicación de agente | Application.call | client.apps.completions.create |
| Gestión de archivos | Files.upload/list/get/delete | client.files.upload/list/get/delete |
| Lista de modelos | Models.list/get | client.models.list/get |
Construcción del cliente y autenticación
La versión 1.x se configura mediante variables globales a nivel de módulo; la 2.0 se configura mediante argumentos del constructor Client (prioridad: constructor > dashscope.settings > variables de entorno > ~/.dashscope/config.toml).
Generación de texto
Chat multimodal
Generación de imágenes
async_call/fetch/wait) se corresponden con client.images.jobs.create/fetch/wait; la comprobación del estado de la tarea cambia de rsp.output.task_status == 'SUCCEEDED' a job.succeeded.
Generación de video
En 1.x,
extend_prompt de VideoSynthesis tiene el valor predeterminado True; en 2.0 se llama prompt_extend y el valor predeterminado lo decide el servidor. Las llamadas que dependían del valor predeterminado anterior deben pasar prompt_extend=True de forma explícita.Transcripción de archivos de audio
async_call + bucle fetch) se corresponde con client.audio.asr.jobs.create + un bucle jobs.fetch.
Reconocimiento de voz en tiempo real
La versión 1.x usa clases de callback (Recognition + RecognitionCallback); la 2.0 usa un gestor de contexto + iteración de eventos.
Recognition.call(file)) se corresponde con for event in client.audio.asr.recognize_file(path, model=...):.
Síntesis de voz
En 1.x, tts_v2 recibe el audio mediante callbacks; en 2.0 se usa el estilo de iteración/sesión.
client.audio.tts.synthesize(text, model=..., voice=...); el streaming puro itera client.audio.tts.stream(text, ...).
Embeddings y rerank
BatchTextEmbedding) se corresponden con client.embeddings.jobs.create/fetch/wait. TextReRank.call se corresponde con client.rerank.create, y los resultados pasan de resp.output.results[i] a resp.results[i].
Llamadas a aplicaciones de agente
incremental_output (determina la forma de las tramas); la salida por trama pasa de response.output.text a partial.text.
Diferencias de comportamiento
Además de los nombres de las interfaces, tenga en cuenta las siguientes diferencias de comportamiento al migrar:
- Manejo de errores: en 1.x se comprueban
status_code/codeen la respuesta; 2.0 lanza por defecto la familia de excepcionesDashScopeError(cone.code/e.status_code/e.request_id/e.message). Para un comportamiento de tipo envolvente, construyaClient(raise_on_error=False). - Salida en streaming: en 1.x,
Generation.call(stream=True)reenvía por defecto el texto completo en cada trama (incremental_output=Truepara obtener solo los incrementos); en 2.0 el streaming es siempre incremental. Las aplicaciones de Model Studio (apps.completions) conservan el interruptorincremental_output. - Espera de tareas asíncronas: en 1.x,
waitespera indefinidamente por defecto y devuelve una respuesta de error al agotar el tiempo de espera; en 2.0,jobs.waittiene un presupuesto total predeterminado de 24 horas, realiza sondeo con retroceso exponencial y lanza una excepción si la tarea termina en estado FAILED. - Estructura de la respuesta: en 1.x el contenido útil va envuelto bajo
output(response.output.choices[...]); en 2.0 es plano (response.choices[...]), con accesos directos comoresp.output_textyjob.succeeded. - Parámetros fuera de la firma: los métodos de recursos de 2.0 tienen firmas nombradas cerradas; los parámetros específicos del modelo que en 1.x se pasaban directamente deben enviarse vía
parameters={...}(los materiales de imagen víaextra_input=).
Documentación relacionada
- Instalación y actualización: Instalar el SDK
- Generación de texto: Generación de texto, Salida en streaming, Conversación de múltiples turnos
- Imágenes y video: Generación de imágenes, Generación de video
- Voz: Transcripción de archivos de audio, Reconocimiento de voz en tiempo real, TTS en tiempo real
- Embeddings y rerank: Embedding, Rerank
- Llamadas a aplicaciones: Llamada a aplicaciones