Skip to main content

Interfaz de archivos compatible con OpenAI

Cargue archivos para preguntas y respuestas sobre documentos y extracción de datos con Qwen-Long y Qwen-Doc-Turbo. Esta interfaz también admite la carga de archivos de entrada para tareas por lotes.

Uso

Llame a la interfaz de archivos utilizando el SDK de OpenAI (Python o Java) o la API HTTP. La interfaz admite la subida, consulta y eliminación de archivos.

Requisitos previos

Disponibilidad de modelos

Puede utilizar los ID de archivo en los siguientes escenarios:
  • Qwen-Long: Realizar preguntas y respuestas sobre documentos largos.
  • Qwen-Doc-Turbo: Extraer datos y realizar preguntas y respuestas sobre archivos.
  • Procesamiento por lotes: Subir archivos por lotes.

Introducción

Cargar un archivo

Los límites de almacenamiento son de 10,000 archivos como máximo y 100 GB en total. Los archivos no caducan.
  • Para análisis de documentos
  • Para procesamiento por lotes
Establezca purpose en file-extract. Los formatos admitidos incluyen archivos de texto (TXT, DOCX, PDF, XLSX, EPUB, MOBI, MD, CSV, JSON) e imágenes (BMP, PNG, JPG/JPEG, GIF, PDF escaneados). El tamaño máximo del archivo es de 150 MB.
Para obtener más información sobre el análisis de documentos utilizando un file_id, consulte contexto largo (Qwen-Long).

Ejemplos de solicitud

import os
from pathlib import Path
from openai import OpenAI

client = OpenAI(
    # If you have not configured an environment variable, replace the following line with api_key="sk-xxx" and use your Model Studio API key.
    # API keys for the Singapore and China (Beijing) regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # The following is the URL for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

# test.txt is a local sample file.
file_object = client.files.create(file=Path("test.txt"), purpose="file-extract")

print(file_object.model_dump_json())

Respuesta de ejemplo

{
    "id": "file-fe-xxx",
    "bytes": 2055,
    "created_at": 1729065448,
    "filename": "test.txt",
    "object": "file",
    "purpose": "file-extract",
    "status": "processed",
    "status_details": null
}

Consultar información del archivo

Especifique el file_id en el método retrieve o GET para consultar la información del archivo.
  • SDK de Python de OpenAI
  • SDK de Java de OpenAI
  • HTTP

Ejemplos de solicitud

import os
from openai import OpenAI

client = OpenAI(
    # API keys for the Singapore and China (Beijing) regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # The following is the URL for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

file = client.files.retrieve(file_id="file-batch-xxx")

print(file.model_dump_json())

Respuesta de ejemplo

{
  "id": "file-batch-xxx",
  "bytes": 27,
  "created_at": 1722480306,
  "filename": "test.txt",
  "object": "file",
  "purpose": "batch",
  "status": "processed",
  "status_details": null
}

Consultar una lista de archivos

Esta operación devuelve toda la información de los archivos, incluidos los archivos subidos y los archivos de resultados por lotes.
Esta operación admite más parámetros de filtrado. Para obtener más información, consulte Descripción de parámetros.
  • SDK de Python de OpenAI
  • SDK de Java de OpenAI
  • HTTP

Ejemplos de solicitud

import os
from openai import OpenAI

client = OpenAI(
    # API keys for the Singapore and China (Beijing) regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
     # The following is the URL for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

file_stk = client.files.list(after="file-batch-xxx",limit=20)
print(file_stk.model_dump_json())

Respuesta de ejemplo

{
  "data": [
    {
      "id": "file-batch-xxx",
      "bytes": 27,
      "created_at": 1722480543,
      "filename": "test.txt",
      "object": "file",
      "purpose": "batch",
      "status": "processed",
      "status_details": null
    },
    {
      "id": "file-batch-yyy",
      "bytes": 431986,
      "created_at": 1718089390,
      "filename": "test.pdf",
      "object": "file",
      "purpose": "batch",
      "status": "processed",
      "status_details": null
    }
  ],
  "object": "list",
  "has_more": false
}

Eliminar un archivo

Elimine un archivo mediante file_id. Utilice la API Consultar una lista de archivos para encontrar los ID de archivo.
  • SDK de Python de OpenAI
  • SDK de Java de OpenAI
  • HTTP

Ejemplos de solicitud

import os
from openai import OpenAI

client = OpenAI(
    # API keys for the Singapore and China (Beijing) regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # The following is the URL for the Singapore region. If you use a model in the China (Beijing) region, replace the URL with: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)

file_object = client.files.delete("file-batch-xxx")
print(file_object.model_dump_json())

Respuesta de ejemplo

{
  "object": "file",
  "deleted": true,
  "id": "file-batch-xxx"
}

Facturación

La subida, el almacenamiento y la consulta de archivos son gratuitos. Los cargos se aplican solo a los tokens de entrada y salida al llamar a los modelos.

Limitación de tasa

El límite de QPS para la subida de archivos es 3. El límite total de QPS para operaciones de consulta, listado y eliminación es 10.

Puesta en marcha

  • Limpieza periódica: Elimine los archivos no utilizados regularmente para mantenerse dentro del límite de 10,000 archivos.
  • Verificación de estado: Compruebe el estado del archivo después de la subida. Un status igual a processed indica que la subida se completó y que el archivo se puede referenciar, pero no que el análisis haya finalizado. Antes de que finalice el análisis, las llamadas pueden devolver File parsing in progress; vuelva a intentarlo más tarde.
  • Verificación de límite de tasa: Asegúrese de cumplir con los límites de QPS (subida: 3 QPS, consulta/listado/eliminación: 10 QPS en total).
  • Manejo de errores: Implemente manejo de excepciones para errores de red, errores de API y otros fallos.

FAQ

1. ¿Qué hago si el estado del archivo permanece como "processing" después de la subida?

El procesamiento de archivos generalmente se completa en segundos. Si el estado permanece como "processing" durante un período prolongado:
  • Verifique si el formato del archivo es compatible.
  • Verifique si el tamaño del archivo excede el límite.
  • Utilice la API retrieve para consultar el estado periódicamente.

2. ¿Se pueden utilizar los ID de archivo en diferentes cuentas?

No. Los ID de archivo solo son válidos dentro de la cuenta de Alibaba Cloud que los creó y no se pueden compartir entre cuentas.

3. ¿Los archivos subidos se almacenan permanentemente?

Sí. Los archivos se almacenan permanentemente en su cuenta a menos que se eliminen. Limpie periódicamente los archivos innecesarios.

4. ¿Cuáles son las posibles razones de un fallo en la subida de archivos?

  • La clave de API no es válida o no se ha exportado.
  • El formato del archivo no es compatible.
  • El tamaño del archivo excede el límite (file-extract: 150 MB, batch: 500 MB).
  • Se ha alcanzado el número máximo de archivos (10,000) o el límite de tamaño total (100 GB).
  • Se ha excedido el límite de QPS para la interfaz de subida de archivos. El límite es de 3 QPS.

5. ¿Debería elegir file-extract o batch para el parámetro purpose?

  • file-extract: Utilice esto para escenarios de análisis de documentos con Qwen-Long o Qwen-Doc-Turbo.
  • batch: Utilice esto para tareas por lotes. El archivo debe ser un archivo JSONL que cumpla con los requisitos de formato.

6. ¿Por qué Qwen-Long sigue indicando que el archivo se está analizando después de que el estado sea "processed"?

Un status igual a processed solo indica que la subida del archivo se completó y que el archivo se puede referenciar; no significa que el análisis haya finalizado. Si Qwen-Long devuelve File parsing in progress, please try again later., vuelva a intentarlo más tarde, cuando el archivo haya terminado de analizarse.

Descripción de parámetros

CategoríaParámetroTipoObligatorioDescripciónEjemplo
Carga de archivosfileArchivoSíEl archivo a subir.Path("test.txt")
purposeStringSíEspecifica el propósito del archivo subido. Valores válidos:file-extract: Para comprensión de documentos con el modelo qwen-long.batch: Para trabajos de Compatible con OpenAI - Lote (entrada de archivo). El archivo debe tener el formato especificado en Compatible con OpenAI - Lote (entrada de archivo)."file-extract"
Consulta de archivofile_idStringSíEl ID del archivo a consultar."file-fe-xxx"
afterStringNoEl cursor utilizado para la paginación en la tarea Consultar una lista de archivos.Establezca after en el último file_id de la página actual para recuperar la siguiente página. Ejemplo: si el último file_id es file-batch-xxx, establezca after="file-batch-xxx" en la siguiente consulta."file-fe-xxx"
create_beforeStringNoMarca de tiempo (formato de cadena) para Consultar una lista de archivos. Devuelve los ID de archivo creados antes de la hora especificada."20250306123000", "2025-11-12 10:10:10", "2025-11-12", "20251112"
create_afterStringNoMarca de tiempo (formato de cadena) para Consultar una lista de archivos. Devuelve los ID de archivo creados después de la hora especificada."20250306123000", "2025-11-12 10:10:10", "2025-11-12", "20251112"
purposeStringNoPara Consultar una lista de archivos: filtra por propósito (file-extract o batch)."batch"
limitIntegerNoNúmero de archivos por consulta en Consultar una lista de archivos. Rango: 1-2,000. Valor predeterminado: 2,000.2000
Eliminación de archivofile_idStringSíEl ID del archivo a eliminar."file-fe-xxx"
Parámetros de respuesta
Parámetros de respuesta comunesidString\El ID del archivo.Para Eliminar un archivo: el ID del archivo eliminado."file-fe-xxx"
bytesIntegerEl tamaño del archivo en bytes.81067
created_atIntegerLa marca de tiempo UNIX en segundos cuando se creó el archivo.1617981067
filenameStringEl nombre del archivo subido."text.txt"
objectStringEl tipo de objeto. Siempre es "list" para Consultar una lista de archivos, y "file" para otras operaciones."file"
purposeStringEl propósito del archivo. Los valores válidos son batch, file-extract y batch_output."file-extract"
statusStringEl estado actual del archivo. processed indica que la subida se completó y que el archivo se puede referenciar; no significa que el análisis haya finalizado."processed"
Consultar lista de archivoshas_moreBooleanIndica si hay una página siguiente de datos.false
dataArrayLista de archivos. Cada elemento sigue el formato de parámetros de respuesta comunes.
[{
 "id": "xxx",
 "bytes": 27,
 "created_at": 1722480543,
 "filename": "test.txt",
 "object": "file",
 "purpose": "batch",
 "status": "processed",
 "status_details": null
 }]
Eliminar archivodeletedBooleanIndica el éxito de la eliminación. Devuelve true si tiene éxito.true

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.