> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Qwen3.8-Max-Preview - Documentación completa de parámetros

> > 🚧 **Este modelo aun no esta disponible, mantente atento**

- Llama a Qwen3.8-Max-Preview mediante el protocolo OpenAI Chat Completions
- **Conversación de varios turnos**: admite contexto de un solo turno o de varios turnos
- **Prompt de sistema**: define el rol y el comportamiento de la IA mediante un mensaje `role=system`
- **Entrada multimodal**: `content` acepta un array de content part, admite `text` / `image_url` / `input_audio` / `video_url`
- **Caché de contexto**: añade `cache_control` en un content part para declarar caché explícita; consulta los aciertos en `usage.prompt_tokens_details` de la respuesta
- **Modo de pensamiento**: se activa con `enable_thinking=true`, el contenido del pensamiento se devuelve mediante `reasoning_content`
- **Salida en streaming**: cuando `stream=true`, se devuelve por bloques mediante SSE

<Note>
  **Nota sobre la BaseURL**: la BaseURL predeterminada es `https://direct.evolink.ai`, que ofrece mejor soporte para modelos de texto y admite conexiones persistentes; `https://api.evolink.ai` es la dirección principal multimodal, úsala cuando incluyas entrada de imagen / audio / video.
</Note>


## OpenAPI

````yaml es/api-manual/language-series/qwen3.8-max-preview/qwen3.8-max-preview-chat.json POST /v1/chat/completions
openapi: 3.1.0
info:
  title: >-
    Qwen3.8-Max-Preview Documentación completa de parámetros (compatible con
    OpenAI)
  description: >-
    Referencia de la API de la interfaz de chat de Tongyi Qianwen
    Qwen3.8-Max-Preview (compatible con OpenAI Chat Completions).


    **Capacidades del modelo**:

    - Longitud de contexto: **1.000.000 tokens** (1M)

    - Modo de pensamiento: se activa mediante `enable_thinking`, el contenido
    del pensamiento se devuelve mediante `reasoning_content`

    - Entrada multimodal: `content` admite texto + imagen / audio / video
    combinados

    - Caché de contexto: admite caché explícita (`cache_control`) e implícita;
    los aciertos reducen notablemente el coste

    - Llamada de herramientas: admite Function Calling

    - Salida en streaming: admite respuestas en streaming por SSE
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: >-
      Producción (recomendado, mejor soporte de conexiones persistentes para
      modelos de texto)
  - url: https://api.evolink.ai
    description: >-
      Dirección principal multimodal (úsala cuando incluyas entrada de imagen /
      audio / video)
security:
  - bearerAuth: []
tags: []
paths:
  /v1/chat/completions:
    post:
      summary: Interfaz de chat de Qwen3.8-Max-Preview (compatible con OpenAI)
      description: >-
        > 🚧 **Este modelo aun no esta disponible, mantente atento**


        - Llama a Qwen3.8-Max-Preview mediante el protocolo OpenAI Chat
        Completions

        - **Conversación de varios turnos**: admite contexto de un solo turno o
        de varios turnos

        - **Prompt de sistema**: define el rol y el comportamiento de la IA
        mediante un mensaje `role=system`

        - **Entrada multimodal**: `content` acepta un array de content part,
        admite `text` / `image_url` / `input_audio` / `video_url`

        - **Caché de contexto**: añade `cache_control` en un content part para
        declarar caché explícita; consulta los aciertos en
        `usage.prompt_tokens_details` de la respuesta

        - **Modo de pensamiento**: se activa con `enable_thinking=true`, el
        contenido del pensamiento se devuelve mediante `reasoning_content`

        - **Salida en streaming**: cuando `stream=true`, se devuelve por bloques
        mediante SSE
      operationId: createChatCompletionQwen38MaxPreview
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
            examples:
              basic:
                summary: Conversación de texto básica
                value:
                  model: qwen3.8-max-preview
                  messages:
                    - role: system
                      content: You are a helpful assistant.
                    - role: user
                      content: Hola, preséntate
              multimodal:
                summary: Entrada multimodal (imagen)
                value:
                  model: qwen3.8-max-preview
                  messages:
                    - role: user
                      content:
                        - type: text
                          text: Describe el contenido de esta imagen
                        - type: image_url
                          image_url:
                            url: https://example.com/image.jpg
              explicit_cache:
                summary: Caché explícita (cache_control)
                value:
                  model: qwen3.8-max-preview
                  messages:
                    - role: system
                      content:
                        - type: text
                          text: <prompt de sistema estable de más de 1024 tokens...>
                          cache_control:
                            type: ephemeral
                    - role: user
                      content: Responde la pregunta con base en el contexto anterior
      responses:
        '200':
          description: Chat generado correctamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
        '400':
          description: Parámetros de solicitud no válidos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 400
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: No autenticado, token no válido o expirado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 401
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Saldo insuficiente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 402
                  message: Insufficient credits
                  type: insufficient_quota
        '429':
          description: Demasiadas solicitudes (límite de tasa)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 429
                  message: Rate limit exceeded
                  type: rate_limit_error
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 500
                  message: Internal server error
                  type: server_error
components:
  schemas:
    ChatCompletionRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
          description: Nombre del modelo de chat
          enum:
            - qwen3.8-max-preview
          example: qwen3.8-max-preview
        messages:
          type: array
          description: >-
            Lista de mensajes de la conversación, admite conversación de varios
            turnos. Los distintos roles (system / user / assistant / tool)
            tienen estructuras de campos diferentes; selecciona el rol
            correspondiente para ver los detalles.
          items:
            oneOf:
              - $ref: '#/components/schemas/SystemMessage'
              - $ref: '#/components/schemas/UserMessage'
              - $ref: '#/components/schemas/AssistantRequestMessage'
              - $ref: '#/components/schemas/ToolMessage'
        enable_thinking:
          type: boolean
          description: >-
            Indica si se activa el pensamiento profundo


            - `true`: el modelo devuelve el proceso de pensamiento mediante
            `reasoning_content`

            - `false` (predeterminado): no devuelve el proceso de pensamiento


            > Nota: algunos modelos requieren establecerlo explícitamente en
            `true` para devolver el contenido del pensamiento en llamadas sin
            streaming.
          default: false
        temperature:
          type: number
          description: >-
            Temperatura de muestreo, controla la aleatoriedad de la salida. Los
            valores más bajos son más deterministas y los más altos, más
            variados. Rango `[0, 2]`. Se recomienda no ajustar temperature y
            top_p a la vez.
          minimum: 0
          maximum: 2
        top_p:
          type: number
          description: >-
            Parámetro de muestreo de núcleo (Nucleus Sampling), muestrea de los
            primeros tokens por probabilidad acumulada. Rango `(0, 1]`. Se
            recomienda no ajustar temperature y top_p a la vez.
          minimum: 0
          maximum: 1
        max_completion_tokens:
          type: integer
          description: >-
            Límite de longitud del contenido generado (número de tokens),
            **incluye la cadena de pensamiento y la respuesta**. Se recomienda
            este parámetro para los modelos de pensamiento. El valor
            predeterminado y el máximo coinciden con la longitud máxima de
            salida del modelo; al superarlo se detiene anticipadamente con
            `finish_reason=length`.
        max_tokens:
          type: integer
          description: >-
            Parámetro heredado de límite de longitud de generación.


            > **Obsoleto**: para nuevas integraciones usa
            `max_completion_tokens`. Este parámetro solo limita la parte de la
            respuesta (sin la cadena de pensamiento).
        stream:
          type: boolean
          description: >-
            Indica si la respuesta se devuelve en streaming.


            - `true`: se devuelve por bloques mediante SSE (Server-Sent Events)

            - `false` (predeterminado): se devuelve la respuesta completa de una
            sola vez
          default: false
        stream_options:
          type: object
          description: >-
            Opciones de respuesta en streaming, solo válidas cuando
            `stream=true`.
          properties:
            include_usage:
              type: boolean
              description: >-
                Cuando es `true`, devuelve un bloque de datos adicional que solo
                contiene `usage` antes de finalizar el streaming.
        tools:
          type: array
          description: >-
            Lista de definiciones de herramientas para Function Calling. Cada
            herramienta debe definir un nombre, una descripción y un schema de
            parámetros.
          items:
            $ref: '#/components/schemas/Tool'
    ChatCompletionResponse:
      type: object
      properties:
        id:
          type: string
          description: Identificador único de esta conversación
          example: chatcmpl-xxxxxxxx
        object:
          type: string
          example: chat.completion
        created:
          type: integer
          description: Hora de creación (segundos Unix)
          example: 1735120033
        model:
          type: string
          example: qwen3.8-max-preview
        choices:
          type: array
          items:
            $ref: '#/components/schemas/Choice'
        usage:
          $ref: '#/components/schemas/Usage'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: Código de error de estado HTTP
            message:
              type: string
              description: Descripción del error
            type:
              type: string
              description: Tipo de error
            param:
              type: string
              description: Nombre del parámetro relacionado
    SystemMessage:
      type: object
      title: Mensaje de sistema
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - system
          description: Rol del mensaje, fijo en `system`
        content:
          description: >-
            Instrucciones del sistema. Usa una cadena para texto plano; usa un
            array de content part cuando necesites declarar caché explícita.
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ContentPart'
    UserMessage:
      type: object
      title: Mensaje de usuario
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
          description: Rol del mensaje, fijo en `user`
        content:
          description: >-
            Contenido del mensaje del usuario.


            - Para texto plano, pasa directamente una cadena

            - Para entrada multimodal o cuando necesites caché explícita, pasa
            un array de content part, admite `text` / `image_url` /
            `input_audio` / `video_url`
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ContentPart'
    AssistantRequestMessage:
      type: object
      title: Mensaje de asistente
      required:
        - role
      properties:
        role:
          type: string
          enum:
            - assistant
          description: Rol del mensaje, fijo en `assistant`
        content:
          description: >-
            Contenido de respuestas anteriores del asistente. Puede ser una
            cadena o un array de content part.
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ContentPart'
        tool_calls:
          type: array
          description: >-
            Lista de llamadas de herramientas iniciadas por el asistente en el
            turno anterior (para reconstruir el historial de Function Calling).
          items:
            type: object
    ToolMessage:
      type: object
      title: Mensaje de herramienta
      required:
        - role
        - content
        - tool_call_id
      properties:
        role:
          type: string
          enum:
            - tool
          description: >-
            Rol del mensaje, fijo en `tool` (resultado de ejecución de la
            herramienta)
        content:
          description: >-
            Contenido del resultado de ejecución de la herramienta. Puede ser
            una cadena o un array de content part.
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ContentPart'
        tool_call_id:
          type: string
          description: ID de la llamada de herramienta correspondiente
    Tool:
      type: object
      description: Definición de herramienta de Function Calling.
      required:
        - type
        - function
      properties:
        type:
          type: string
          enum:
            - function
          description: Tipo de herramienta, fijo en `function`
        function:
          type: object
          required:
            - name
          properties:
            name:
              type: string
              description: Nombre de la función
            description:
              type: string
              description: Descripción del propósito de la función
            parameters:
              type: object
              description: JSON Schema de los parámetros de la función
    Choice:
      type: object
      properties:
        index:
          type: integer
          example: 0
        message:
          $ref: '#/components/schemas/AssistantMessage'
        finish_reason:
          type: string
          description: |-
            Motivo de parada

            - `stop`: finalización normal
            - `length`: se alcanzó el límite de `max_completion_tokens`
            - `tool_calls`: se requiere llamar a una herramienta
          example: stop
    Usage:
      type: object
      description: Estadísticas de uso de tokens.
      properties:
        prompt_tokens:
          type: integer
          description: Número de tokens de entrada
          example: 3019
        completion_tokens:
          type: integer
          description: Número de tokens de salida (incluye pensamiento)
          example: 104
        total_tokens:
          type: integer
          description: Número total de tokens
          example: 3123
        completion_tokens_details:
          type: object
          description: Desglose de tokens de salida
          properties:
            reasoning_tokens:
              type: integer
              description: Número de tokens del proceso de pensamiento
              example: 0
        prompt_tokens_details:
          type: object
          description: Desglose de caché de los tokens de entrada
          properties:
            cached_tokens:
              type: integer
              description: >-
                Número de tokens de entrada servidos desde caché (lectura de
                caché)
              example: 2048
            cache_creation_input_tokens:
              type: integer
              description: >-
                Número de tokens de caché recién creados en esta solicitud
                (escritura de caché, se devuelve con caché explícita)
              example: 0
    ContentPart:
      type: object
      description: >-
        Fragmento de contenido multimodal; declara el tipo mediante `type` y
        rellena solo los campos que coincidan con ese tipo. Puedes añadir
        `cache_control` en cualquier fragmento para declarar caché explícita.
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - text
            - image_url
            - input_audio
            - video_url
          description: |-
            Tipo de contenido

            - `text`: bloque de texto
            - `image_url`: entrada de imagen
            - `input_audio`: entrada de audio
            - `video_url`: entrada de archivo de video
        text:
          type: string
          description: Contenido de texto cuando `type=text`
        image_url:
          type: object
          description: >-
            Entrada de imagen (cuando `type=image_url`). Admite JPEG / PNG / GIF
            / WEBP.
          required:
            - url
          properties:
            url:
              type: string
              description: URL de la imagen, o un data URL base64 que empiece por `data:`
            detail:
              type: string
              description: |-
                Precisión de análisis de la imagen

                - `low`: baja precisión, consume menos tokens
                - `high`: alta precisión, reconocimiento más detallado
                - `auto` (predeterminado): lo decide automáticamente el modelo
              enum:
                - low
                - high
                - auto
              default: auto
        input_audio:
          type: object
          description: Entrada de audio (cuando `type=input_audio`).
          required:
            - data
            - format
          properties:
            data:
              type: string
              description: URL del audio, o un data URL base64 que empiece por `data:`
            format:
              type: string
              description: Formato de audio, como `mp3`, `wav`, etc.
        video_url:
          type: object
          description: Entrada de archivo de video (cuando `type=video_url`).
          required:
            - url
          properties:
            url:
              type: string
              description: >-
                URL del archivo de video, o un data URL base64 que empiece por
                `data:`
        cache_control:
          type: object
          description: >-
            Marca de caché explícita. El sistema toma la posición de esta marca
            como punto final y retrocede para crear / acertar el bloque de
            caché.


            - Longitud mínima almacenable en caché: **1024 tokens**, válida
            durante **5 minutos** (se reinicia tras un acierto)

            - Máximo **4** marcas de caché por solicitud

            - Es excluyente con la caché implícita; cada solicitud aplica solo
            una


            Consulta los aciertos / creaciones en `usage.prompt_tokens_details`
            de la respuesta.
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - ephemeral
              description: Tipo de caché, fijo en `ephemeral` (caché temporal de 5 minutos)
    AssistantMessage:
      type: object
      description: Mensaje de respuesta del asistente.
      properties:
        role:
          type: string
          example: assistant
        content:
          type: string
          description: Cuerpo de la respuesta
          example: ¡Hola! Soy Tongyi Qianwen Qwen3.8-Max-Preview.
        reasoning_content:
          type: string
          description: >-
            Contenido del proceso de pensamiento (se devuelve cuando
            `enable_thinking=true`)
        tool_calls:
          type: array
          description: Lista de llamadas de herramientas iniciadas por el modelo
          items:
            type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Todas las API requieren autenticación con Bearer Token##


        **Obtener la API Key:**


        Visita la [página de gestión de API
        Keys](https://evolink.ai/dashboard/keys) para obtener tu API Key


        **Añadir al encabezado de la solicitud:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````