Skip to main content

Contexto largo (Qwen-Long)

Qwen-Long gestiona documentos de hasta 10 millones de tokens mediante un mecanismo de carga y referencia de archivos, superando los límites de contexto de los modelos estándar.

Este documento se aplica únicamente a la región de China continental (Pekín). Para utilizar el modelo, debe usar una clave de API de la región de China continental (Pekín).

Cómo usar

Utilice Qwen-Long en dos pasos: cargue los archivos y luego llame a la API.
  1. Carga y análisis de archivos:
    • Cargue un archivo mediante la API. Para obtener detalles sobre los formatos de archivo admitidos y los límites de tamaño, consulte Formatos admitidos.
    • Después de una carga exitosa, el sistema devuelve un único file-id para su cuenta y comienza el análisis. No se cobran tarifas por la carga, el almacenamiento o el análisis de archivos.
  2. Llamada a la API y facturación:
    • Cuando llame al modelo, haga referencia a uno o más file-ids en el mensaje system.
    • El modelo realiza la inferencia basándose en el contenido de texto asociado al file-id.
    • Para cada llamada a la API, el número de tokens en el contenido del archivo referenciado se cuenta como tokens de entrada para esa solicitud.
Esto evita transferir archivos grandes en cada solicitud, pero tenga en cuenta que los tokens de archivo se facturan por cada llamada a la API.

Introducción

Requisitos previos

Cargar un documento

Este ejemplo carga Model_Studio_Phone_Product_Introduction.docx en el almacenamiento seguro de Model Studio a través de la interfaz compatible con OpenAI y obtiene un file-id. Consulte la documentación de la API para ver los parámetros de carga.
Python
import os
from pathlib import Path
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # If not configured, replace with your API key.
    # The following URL is for the China (Beijing) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)

file_object = client.files.create(file=Path("Model_Studio_Phone_Product_Introduction.docx"), purpose="file-extract")
print(file_object.id)
Ejecute el código para obtener el file-id del archivo cargado.

Pasar información y chatear mediante un ID de archivo

Pase el file-id en los mensajes del sistema: el primer mensaje define el rol, el segundo contiene el file-id y luego agregue las preguntas del usuario.
Los documentos más extensos requieren más tiempo de análisis. Espere a que finalice el análisis antes de realizar la llamada.
Python
import os
from openai import OpenAI, BadRequestError

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # If not configured, replace with your API key.
    # Endpoint for the China (Beijing) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
try:
    # Initialize messages list.
    completion = client.chat.completions.create(
        model="qwen-long",
        messages=[
            # sys1: Role definition.
            {'role': 'system', 'content': 'You are a helpful assistant.'},
            # sys2: Document content (plain text or file-id).
            # Replace '{FILE_ID}' with the file-id used in your conversation.
            {'role': 'system', 'content': f'fileid://{FILE_ID}'},
            # When the request includes a second system message, the user message content is limited to 9,000 tokens.
            {'role': 'user', 'content': 'What is this article about?'}
        ],
        # All examples use streaming output to show the model's response process. For non-streaming examples, see https://www.alibabacloud.com/help/model-studio/text-generation
        stream=True,
        stream_options={"include_usage": True}
    )

    full_content = ""
    for chunk in completion:
        if chunk.choices and chunk.choices[0].delta.content:
            # Concatenate the output content.
            full_content += chunk.choices[0].delta.content
            print(chunk.model_dump())

        # Get token usage.
        if chunk.usage:
            print(f"Total tokens: {chunk.usage.total_tokens}")

    print(full_content)

except BadRequestError as e:
    print(f"Error: {e}")
    print("See documentation: https://www.alibabacloud.com/help/model-studio/error-code")

Pasar varios documentos

Pase múltiples file-ids en un solo mensaje del sistema o agregue mensajes del sistema separados para cada documento.
  • Pasar varios documentos
  • Añadir documentos
Python
import os
from openai import OpenAI, BadRequestError

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # If not configured, replace with your API key.
    # Endpoint for the China (Beijing) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
try:
    # Initialize messages list.
    completion = client.chat.completions.create(
        model="qwen-long",
        messages=[
            {'role': 'system', 'content': 'You are a helpful assistant.'},
            # Replace '{FILE_ID1}' and '{FILE_ID2}' with the file-ids used in your conversation.
            {'role': 'system', 'content': f"fileid://{FILE_ID1},fileid://{FILE_ID2}"},
            {'role': 'user', 'content': 'What are these articles about?'}
        ],
        # All examples use streaming output to show the model's response process. For non-streaming examples, see https://www.alibabacloud.com/help/model-studio/text-generation
        stream=True,
        stream_options={"include_usage": True}
    )

    full_content = ""
    for chunk in completion:
        if chunk.choices and chunk.choices[0].delta.content:
            # Concatenate the output content.
            full_content += chunk.choices[0].delta.content
            print(chunk.model_dump())

    print(full_content)

except BadRequestError as e:
    print(f"Error: {e}")
    print("See documentation: https://www.alibabacloud.com/help/model-studio/error-code")

Pasar información como texto sin formato

En lugar de utilizar file-ids, pase el contenido del documento directamente como una cadena. Agregue la configuración de roles en el primer mensaje para evitar confusiones con el contenido del documento.
Si el contenido del documento supera 1 millón de tokens, utilice un ID de archivo en su lugar debido a los límites de tamaño de la API.
  • Ejemplo sencillo
  • Pasar varios documentos
  • Añadir documentos
Puede introducir el contenido del documento directamente en el mensaje del sistema.
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # Replace your API key here if you haven't set the environment variable
    # Endpoint for the China (Beijing) region. Replace {WorkspaceId} with your Workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
# Initialize the messages list
completion = client.chat.completions.create(
    model="qwen-long",
    messages=[
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'system', 'content': 'Alibaba Cloud Model Studio smartphone product introduction: Alibaba Cloud Model Studio X1 —————— Enjoy an ultimate visual experience: features a 6.7-inch 1440 x 3200 pixel ultra-clear screen...'},
        {'role': 'user', 'content': 'What does the article talk about?'}
    ],
    # All code examples use streaming output to clearly and intuitively show the model's output process. For non-streaming examples, see https://www.alibabacloud.com/help/model-studio/text-generation
    stream=True,
    stream_options={"include_usage": True}
)

full_content = ""
for chunk in completion:
    if chunk.choices and chunk.choices[0].delta.content:
        # Append output content
        full_content += chunk.choices[0].delta.content
        print(chunk.model_dump())

print(full_content)

Precios del modelo

Nombre del modeloVersiónLongitud del contextoEntrada máximaSalida máximaCosto de entradaCosto de salida
(Tokens)(por 1 millón de tokens)
qwen-long
Batch API al 50% de las tarifas en tiempo real
Estable10,000,00010,000,00032,768$0.072$0.287

FAQ

  1. ¿El modelo Qwen-Long admite el envío de trabajos por lotes? Sí. Qwen-Long admite la Batch API de OpenAI al 50% de las tarifas de llamada en tiempo real. Envíe trabajos por lotes como archivos; los trabajos se ejecutan de forma asíncrona y devuelven resultados al completarse o agotarse el tiempo de espera.
  2. ¿Dónde se guardan los archivos después de cargarlos mediante la API de archivos compatible con OpenAI? Los archivos se cargan en su bucket de Model Studio sin costo alguno. Consulte la API de archivos de OpenAI para consultar y gestionar archivos.
  3. ¿Cómo puedo garantizar que el modelo genere una cadena JSON en un formato estándar? qwen-long y todas las instantáneas admiten salida estructurada. Especifique un esquema JSON para garantizar un JSON válido que coincida con su estructura.

Referencia de API

Consulte Qwen detalles de la API para conocer los parámetros de entrada y salida del modelo Qwen-Long.

Códigos de error

Si la llamada al modelo falla y devuelve un mensaje de error, consulte Códigos de error para su resolución.

Límites

  • Dependencias del SDK:
    • Las operaciones con archivos (carga, eliminación, consulta) requieren un SDK compatible con OpenAI.
    • Invoque modelos mediante un SDK compatible con OpenAI o Dashscope SDK.
  • Carga de archivos:
    • Formatos admitidos: TXT, DOCX, PDF, XLSX, EPUB, MOBI, MD, CSV, JSON, BMP, PNG, JPG/JPEG y GIF.
    • Tamaño de archivo: El tamaño máximo para archivos de imagen es de 20 MB. El tamaño máximo para otros formatos de archivo es de 150 MB.
    • Cuota de la cuenta: Máximo 10,000 archivos o 100 GB por cuenta. Las cargas fallan cuando se alcanza cualquiera de los límites. Elimine archivos para liberar cuota. Consulte Compatible con OpenAI - Archivo.
    • Periodo de almacenamiento: Actualmente, no existe un límite de caducidad para los archivos almacenados.
  • Entradas de API:
    • El primer mensaje system define el rol. El segundo contiene el contenido del documento o fileid://xxx. El mensaje user contiene la consulta.
    • Al hacer referencia a archivos mediante un file-id, una sola solicitud puede referenciar un máximo de 100 archivos.
    • Con un segundo mensaje system, el límite del mensaje user es de 9,000 tokens. No hay límite si solo hay un mensaje del sistema.
    • La longitud total del contexto está limitada a 10 millones de tokens.
  • Salidas de API:
    • La longitud máxima de salida es de 32,768 tokens.
  • Uso compartido de archivos:
    • Los file-ids son específicos de la cuenta y no pueden utilizarse entre cuentas ni con claves de API de usuarios RAM.
  • Limitación de tasa: Para obtener información sobre las condiciones de limitación de tasa del modelo, consulte Limitación de tasa.