Skip to main content

Descripción general

Un modelo de generación de texto genera texto a partir de prompts en lenguaje natural para aplicaciones como chatbots, creación de contenido, resumen de documentos y generación de código.

La entrada puede variar desde una sola palabra clave hasta indicaciones complejas de múltiples pasos con contexto. Los casos de uso comunes incluyen:
  • Creación de contenido: Genere artículos de noticias, descripciones de productos y guiones para videos cortos.
  • Atención al cliente: Cree chatbots automatizados 24/7 para responder preguntas frecuentes.
  • Traducción de textos: Traduce texto entre múltiples idiomas.
  • Resumen: Resume artículos largos, informes y correos electrónicos.
  • Redacción de documentos legales: Redacta plantillas de contratos y dictámenes legales.

Conceptos clave

La entrada a un modelo de generación de texto es una indicación (prompt), que consiste en uno o más objetos de mensaje, cada uno conteniendo un rol y contenido:
  • Mensaje del sistema: Establece la personalidad del modelo, las pautas de comportamiento o instrucciones específicas de la tarea. El valor predeterminado es "You are a helpful assistant".
  • Mensaje de usuario: La pregunta, instrucción o entrada del usuario al modelo.
  • Mensaje del asistente: La respuesta del modelo. En una conversación de múltiples turnos, pase los mensajes históricos del asistente para mantener el contexto.
Para llamar al modelo, construya un array de estos objetos de mensaje llamado messages. Una solicitud típica consiste en un mensaje system que define las pautas de comportamiento y un mensaje user con la entrada del usuario.
El mensaje system es opcional pero recomendado. Definir el rol del modelo y sus restricciones de comportamiento produce resultados más consistentes y predecibles.
[
    {"role": "system", "content": "You are a helpful assistant who provides precise, efficient, and insightful responses, ready to assist users with various tasks and questions."},
    {"role": "user", "content": "Who are you?"}
]
La respuesta contiene la réplica del modelo en un mensaje de assistant.
{
    "role": "assistant",
    "content": "Hello! I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you with tasks like answering questions, creating text, logical reasoning, and coding. I understand and generate multiple languages, and can handle multi-turn conversations and complex instructions. If there is anything you need help with, just let me know!"
}

Inicio rápido

Requisitos previos: Obtener una clave de API y Configurar la clave de API como variable de entorno. Si utiliza un SDK, también debe instalar el SDK de OpenAI o DashScope. El {WorkspaceId} en las URL base de ejemplo es su ID de espacio de trabajo. Para saber cómo obtenerlo, consulte Regiones y dominios de acceso.
  • API Chat Completions compatible con OpenAI
  • API de Responses compatible con OpenAI
  • DashScope
  • Python
  • Java
  • Node.js
  • Go
  • C# (HTTP)
  • PHP (HTTP)
  • curl
import os
from openai import OpenAI

try:
    client = OpenAI(
        # API keys vary by region. To obtain an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
        # If you haven't set the environment variable, replace the following line with your Alibaba Cloud Model Studio API key: api_key="sk-xxx",
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        # Endpoint for the Asia Pacific SE 1 (Singapore) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
        base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    )

    completion = client.chat.completions.create(
        model="qwen3.8-max",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Who are you?"},
        ],
    )
    print(completion.choices[0].message.content)
    # To view the full response, uncomment the following line.
    # print(completion.model_dump_json())
except Exception as e:
    print(f"Error message: {e}")
    print("For more information, see the documentation: https://www.alibabacloud.com/help/model-studio/error-code")

Respuesta

I am Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, program, share opinions, play games, and more. If you have any questions or need help, feel free to ask!

Procesamiento de datos de imagen y video

Los modelos multimodales procesan datos no textuales (imágenes, videos) para tareas como respuesta a preguntas visuales y detección de eventos. Se diferencian de los modelos solo de texto en dos aspectos:
  • Construcción de mensajes de usuario: Los mensajes de usuario multimodales incluyen texto y datos no textuales, como imágenes y audio.
  • Interfaces del SDK de DashScope: Utilice la interfaz client.multimodal.chat.create para el SDK de Python de DashScope 2.0 y la clase MultiModalConversation para el SDK de Java de DashScope.
Para limitaciones sobre archivos de imagen y video, consulte Comprensión de imágenes y videos.
  • Chat completions compatible con OpenAI
  • DashScope
  • Python
  • Node.js
  • curl
from openai import OpenAI
import os

client = OpenAI(
    # API keys vary by region. To get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
    # If the environment variable is not set, provide your Model Studio API key directly, for example: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # This is the endpoint for the Singapore region. Replace {WorkspaceId} with your WorkspaceId. Endpoints vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20251031/ownrof/f26d201b1e3f4e62ab4a1fc82dd5c9bb.png"
                },
            },
            {"type": "text", "text": "What products are shown in the image?"},
        ],
    }
]
completion = client.chat.completions.create(
    model="qwen3.6-plus",
    messages=messages,
)
print(completion.choices[0].message.content)

Llamadas asíncronas

Las llamadas asíncronas mejoran el rendimiento para cargas de trabajo de alta concurrencia.
  • API de chat completions compatible con OpenAI
  • DashScope
Python
import os
import asyncio
from openai import AsyncOpenAI
import platform

# Create an asynchronous client instance.
client = AsyncOpenAI(
    # API keys vary by region. To get an API key, see https://www.alibabacloud.com/help/model-studio/get-api-key
    # If you have not set the environment variable, replace the following line with your Model Studio API key: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # This is the URL for the Singapore region. Replace {WorkspaceId} with your workspace ID.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
)

# Define an asynchronous task.
async def task(question):
    print(f"Sending question: {question}")
    response = await client.chat.completions.create(
        messages=[
            {"role": "user", "content": question}
        ],
        model="qwen-plus",  # For a list of models, see https://www.alibabacloud.com/help/model-studio/getting-started/models
    )
    print(f"Model response: {response.choices[0].message.content}")

# Main asynchronous function.
async def main():
    questions = ["Who are you?", "What can you do?", "What's the weather like?"]
    tasks = [task(q) for q in questions]
    await asyncio.gather(*tasks)

if __name__ == '__main__':
    # Set the event loop policy.
    if platform.system() == 'Windows':
        asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    # Run the main coroutine.
    asyncio.run(main(), debug=False)

Respuesta de ejemplo
Dado que las llamadas son asíncronas, el orden de las respuestas puede diferir de este ejemplo.
Sending question: Who are you?
Sending question: What can you do?
Sending question: What's the weather like?
Model response: Hello! I'm Qwen, a large-scale language model developed by Tongyi Lab at Alibaba Group. I can help you answer questions and create content, such as writing stories, official documents, emails, and scripts. I can also do logical reasoning, programming, share opinions, play games, and more. If you have any questions or need help, feel free to ask!
Model response: Hello! I am currently unable to access real-time weather information. You can tell me your city or region, and I will do my best to provide you with general weather advice or information. Alternatively, you can use a weather app to check the real-time weather conditions.
Model response: I have many skills, for example:

1. Answering questions: Whether it's academic questions, general knowledge, or professional topics, I can try to help you find answers.
2. Creating text: I can write various types of text, such as stories, official documents, emails, and scripts.
3. Logical reasoning: I can help you solve logical reasoning problems, such as math problems and riddles.
4. Programming: I can provide programming assistance, including code writing, debugging, and optimization.
5. Multilingual support: I support multiple languages, including but not limited to Chinese, English, French, and Spanish.
6. Expressing opinions: I can offer you some perspectives and suggestions to help you make decisions.
7. Playing games: We can play text-based games together, such as riddles or idiom solitaire.

If you have any specific needs or questions, feel free to let me know, and I will do my best to help you!

Uso en producción

Construcción de contexto de alta calidad

Alimentar al modelo con grandes cantidades de datos sin procesar aumenta los costos y puede degradar el rendimiento debido a las limitaciones de la ventana de contexto. La ingeniería de contexto —cargar dinámicamente conocimiento preciso— mejora la calidad y eficiencia de la generación. Las técnicas clave incluyen:
  • ingeniería de prompts: Diseñe y optimice prompts de texto para guiar al modelo hacia el resultado deseado. Para más información, consulte la página Guía de prompts para generación de texto.
  • Generación Aumentada por Recuperación (RAG): Permite al modelo responder preguntas a partir de una base de conocimientos externa, como documentación de productos o manuales técnicos.
  • llamada a herramientas: Recupera información en tiempo real (clima, tráfico) o realiza acciones (llamadas a API, envío de correos electrónicos) en nombre del modelo.
  • memory: Proporciona memoria a largo y corto plazo para que el modelo pueda recordar el contexto a través de conversaciones de múltiples turnos.

Control de la diversidad de respuestas

Los parámetros temperature y top_p controlan la diversidad del texto generado. Valores más altos aumentan la diversidad; valores más bajos aumentan el determinismo. Para aislar el efecto de cada parámetro, ajuste solo uno a la vez.
  • temperature: Rango: [0, 2). Ajusta principalmente la aleatoriedad.
  • top_p: Rango: [0, 1]. Filtra las respuestas basándose en un umbral de probabilidad.
Los siguientes ejemplos muestran cómo la configuración de parámetros afecta la salida. Prompt de entrada: "Escribe un cuento corto de tres oraciones donde los personajes principales son un gato y un rayo de sol".
  • Alta diversidad (Ejemplo: temperature=0.9): Ideal para escritura creativa, lluvia de ideas o textos de marketing.
Sunlight slanted across the windowsill, and the orange cat crept toward the bright patch as its fur turned the color of melted honey.
It reached out and tapped the light, then sank into it as if stepping into a warm pool, and the sunlight flowed up its back in a quiet tide.
The afternoon grew heavy—curled in drifting gold, the cat heard time melt softly inside its purr.
  • Alto determinismo (Ejemplo: temperature=0.1): Ideal para preguntas y respuestas basadas en hechos, generación de código o textos legales.
In the afternoon, an old cat curled on the windowsill and dozed while counting the spots of light.
Sunlight hopped across its mottled back, like turning the pages of an old photo album.
Dust rose and fell, as if time whispered: you were once young, and I was once fierce.
temperature:
  • Una temperatura más alta aplana la distribución de probabilidad de los tokens, haciendo que los tokens menos probables sean más probables y aumentando la aleatoriedad de la salida.
  • Una temperatura más baja agudiza la distribución, haciendo que los tokens de alta probabilidad sean aún más probables y reduciendo la aleatoriedad de la salida.
top_p:El muestreo top_p (núcleo) selecciona del conjunto más pequeño de tokens cuya probabilidad acumulada cumple o supera el umbral de top_p. Los tokens se ordenan por probabilidad y se acumulan hasta alcanzar el umbral; luego, el siguiente token se muestrea aleatoriamente de este conjunto reducido.
  • Un valor más alto de top_p amplía el grupo de selección de tokens, produciendo un texto más diverso.
  • Un valor más bajo de top_p reduce el grupo, produciendo un texto más enfocado y determinista.
# Configuraciones de parámetros recomendadas para escenarios comunes
SCENARIO_CONFIGS = {
    # Escritura creativa
    "creative_writing": {
        "temperature": 0.9,
        "top_p": 0.95
    },
    # Generación de código
    "code_generation": {
        "temperature": 0.2,
        "top_p": 0.8
    },
    # Preguntas y respuestas fácticas
    "factual_qa": {
        "temperature": 0.1,
        "top_p": 0.7
    },
    # Traducción
    "translation": {
        "temperature": 0.3,
        "top_p": 0.8
    }
}

# Ejemplo con OpenAI
# completion = client.chat.completions.create(
#     model="qwen-plus",
#     messages=[{"role": "user", "content": "Write a poem about the moon"}],
#     **SCENARIO_CONFIGS["creative_writing"]
# )
# Ejemplo con DashScope
# client = dashscope.Client(api_key=os.getenv("DASHSCOPE_API_KEY"), workspace="{WorkspaceId}", region="ap-southeast-1")
# response = client.chat.completions.create(
#     model="qwen-plus",
#     messages=[{"role": "user", "content": "Write a Python function that determines whether the input n is a prime number. Output code only."}],
#     **SCENARIO_CONFIGS["code_generation"]
# )

Más funciones

Para escenarios más complejos, están disponibles las siguientes funciones:
  • conversación de múltiples turnos: Para interacción continua, como preguntas de seguimiento o recopilación de información.
  • salida en streaming: Devuelve tokens incrementalmente a medida que se generan, evitando tiempos de espera en chatbots y generación de código en tiempo real.
  • pensamiento profundo: Produce respuestas de mayor calidad y más estructuradas para razonamientos complejos o análisis estratégicos.
  • salida estructurada: Restringe las respuestas a un formato JSON consistente para su uso programático y el análisis de datos.
  • Completado de prefijo: Continúa la generación a partir de texto existente, útil para completado de código o escritura de formato largo.

Referencia de API

Para todos los parámetros, consulte la referencia de API compatible con OpenAI y la referencia de API de DashScope.

FAQ

P: ¿Por qué el recuento de tokens de entrada es mayor que el recuento de tokens del texto que envié?

R: Al procesar una conversación, el sistema utiliza una Plantilla de Chat para envolver el texto de entrada sin formato, agregando marcadores de control como identificadores de rol y límites de mensaje. Estos marcadores generados por el sistema también se cuentan como tokens. Por ejemplo, cuando envía el mensaje {"role": "user", "content": "Hi"} a qwen3.8-max, qwen3.8-max-0902, el texto "Hi" corresponde a solo 1 token después de la tokenización. Sin embargo, durante el procesamiento del sistema, el texto de entrada completo real se formatea de la siguiente manera: <|im_start|>user\nHi<|im_end|>\n<|im_start|>assistant\n<think>. Después de la tokenización, este texto completo aumenta el recuento total de tokens de entrada a 11.

P: ¿Por qué la API de Qianwen no puede analizar enlaces de páginas web?

R: La API de Qianwen no puede acceder directamente al contenido de páginas web. En su lugar, utilice llamada a funciones o una herramienta de web scraping como Beautiful Soup de Python para extraer el contenido y pasarlo al modelo.

P: Diferencias de respuesta: Qianwen (Web) vs. API de Qianwen

R: Qianwen (Web) añade funciones sobre la API de Qianwen, incluyendo análisis de páginas web, búsqueda web, creación de imágenes y generación de PPT. Estas no están incluidas en la API base, pero puede crear funcionalidades similares utilizando llamada a funciones.

P: Generación de archivos Word, Excel, PDF o PPT

R: No. Los modelos de generación de texto solo generan texto plano. Convierta la salida al formato deseado utilizando su propio código o bibliotecas de terceros.