# Qwen 2.5 VL AWQ 7B

O **Qwen 2.5 VL AWQ 7B** é um modelo de linguagem e visão que suporta 7 bilhões de parâmetros, oferecendo capacidades avançadas como análise visual, raciocínio de agente, compreensão de vídeo longo, localização visual e geração de saída estruturada.

## Detalhes do modelo

| Categoria | Detalhes |
|----------|-------|
| **Nome do modelo** | Qwen2.5 VL |
| **Versão** | AWQ 7B |
| **Categoria do modelo** | VLM |
| **Tamanho** | 7B parâmetros |
| **Modelo HuggingFace** | [Qwen/Qwen2.5-VL-7B-Instruct-AWQ](https://huggingface.co/Qwen/Qwen2.5-VL-3B-Instruct-AWQ) |
| **Endpoint compatível com a OpenAI** | [Chat API Overview](https://developers.openai.com/api/reference/overview) |
| **Licença** | [Apache 2.0](https://huggingface.co/datasets/choosealicense/licenses/resolve/main/markdown/apache-2.0.md) |

## Capacidades

| Recurso | Detalhes |
|---------|--------|
| Tool Calling | ✅ |
| Tamanho do contexto | 32k tokens |
| Suporta LoRA | ✅ |
| Dados de entrada | Texto + Imagem |

## Uso 

### Exemplo básico de chat completion

Este é um exemplo básico de uma requisição de chat completion usando este modelo:

```ts
const modelResponse = await Azion.AI.run("qwen-qwen25-vl-7b-instruct-awq", {
  "stream": true,
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": "Name the european capitals"
    }
  ]
})
```

| Propriedade      | Tipo  | Descrição                                                     |
| --------------------- | --------- | ------------------------------------------------------------------- |
| `stream`              | `boolean` | Indica se a resposta deve ser transmitida via stream.              |
| `messages[]`            | `array`   | Array de objetos de mensagem formando o histórico de conversa.          |
| `messages[].role`    | `string`  | O papel do remetente da mensagem.                                  |
| `messages[].content` | `string`  | O conteúdo da mensagem.    |


Exemplo de resposta:

```json
{
  "id": "chatcmpl-e27716424abf4b3f891ff4850470cb09",
  "object": "chat.completion",
  "created": 1746821581,
  "model": "qwen-qwen25-vl-7b-instruct-awq",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": null,
        "content": "Sure! Here is a list of some European capitals...",
        "tool_calls": []
      },
      "logprobs": null,
      "finish_reason": "stop",
      "stop_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "total_tokens": 527,
    "completion_tokens": 518,
    "prompt_tokens_details": null
  },
  "prompt_logprobs": null
}
```

| Propriedade                       | Tipo | Descrição                                         |
| -------------------------------------- | -------- | ------------------------------------------------------- |
| `id`                                   | `string` | Identificador único para a conclusão do chat.              |
| `object`                               | `string` | Tipo do objeto.           |
| `created`                              | `number` | Timestamp Unix de quando a resposta foi criada.        |
| `model`                                | `string` | Identificador do modelo que gerou a resposta.    |
| `choices`                              | `array`  | Array contendo possíveis conclusões.                  |
| `choices[]`                           | `object` | Primeira escolha retornada pelo modelo.                     |
| `choices[].index`                     | `number` | Índice desta escolha na lista.                       |
| `choices[].message`                   | `object` | O objeto de mensagem retornado como resposta.              |
| `choices[].message.role`              | `string` | Papel do remetente da mensagem.             |
| `choices[].message.reasoning_content` | `string`   | Campo para metadados de raciocínio.           |
| `choices[].message.content`           | `string` | O conteúdo textual da resposta do assistente.        |
| `choices[].message.tool_calls`        | `array`  | Quaisquer chamadas de ferramenta feitas pelo assistente.      |
| `choices[].logprobs`                  | `string`   | Detalhes de probabilidades logarítmicas.                |
| `choices[].finish_reason`             | `string` | Razão pela qual a resposta foi concluída.       |
| `choices[].stop_reason`               | `string`   | Razão pela qual a resposta foi interrompida.                |
| `usage`                                | `object` | Estatísticas de uso de tokens para a requisição.                 |
| `usage.prompt_tokens`                  | `number` | Número de tokens no prompt.                         |
| `usage.total_tokens`                   | `number` | Total de tokens.           |
| `usage.completion_tokens`              | `number` | Número de tokens na resposta do modelo.               |
| `usage.prompt_tokens_details`          | `string`   | Quebra opcional de tokens do prompt.    |
| `prompt_logprobs`                      | `number`   | Probabilidades logarítmicas gerais para o prompt.   |


### Exemplo de Tool Calling

Este é um exemplo de uma requisição de Tool Calling usando este modelo:

```ts
const modelResponse = await Azion.AI.run("qwen-qwen25-vl-7b-instruct-awq", {
  "stream": true,
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant with access to tools."
    },
    {
      "role": "user",
      "content": "What is the weather in London?"
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get the current weather for a location",
        "parameters": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "The city and state"
            }
          },
          "required": [
            "location"
          ]
        }
      }
    }
  ]
})
```

| Propriedade                                               | Tipo  | Descrição                                                    |
| -------------------------------------------------------------- | --------- | ------------------------------------------------------------------ |
| `stream`                                                       | `boolean` | Se a resposta deve ser transmitida por stream.                           |
| `messages[]`                                                     | `array`   | Lista de mensagens na conversa.                              |
| `messages[].role`                                             | `string`  | Papel do remetente da mensagem.                             |
| `messages[].content`                                          | `string`  | O prompt do usuário.            |
| `tools[]`                                                        | `array`   | Lista de ferramentas que o assistente pode usar.                   |
| `tools[].type`                                                | `string`  | Tipo de ferramenta sendo registrada.                      |
| `tools[].function.name`                                       | `string`  | Nome da função.                            |
| `tools[].function.description`                                | `string`  | Descrição da função.                                       |
| `tools[].function.parameters`                                 | `object`  | Esquema para os parâmetros da função.                              |

Exemplo de resposta:

```json
{
  "id": "chatcmpl-88affc4730cf4219a06d2b15aad9ad44",
  "object": "chat.completion",
  "created": 1746821866,
  "model": "qwen-qwen25-vl-7b-instruct-awq",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": null,
        "content": null,
        "tool_calls": [
          {
            "id": "chatcmpl-tool-fd3311e75aed4cbfbeb7244ced77379f",
            "type": "function",
            "function": {
              "name": "get_weather",
              "arguments": "{\"location\": \"London\"}"
            }
          }
        ]
      },
      "logprobs": null,
      "finish_reason": "tool_calls",
      "stop_reason": null
    }
  ],
  "usage": {
    "prompt_tokens": 293,
    "total_tokens": 313,
    "completion_tokens": 20,
    "prompt_tokens_details": null
  },
  "prompt_logprobs": null
}
```

| Propriedade                                      | Tipo | Descrição                                                               |
| ----------------------------------------------------- | -------- | ----------------------------------------------------------------------------- |
| `id`                                                  | `string` | Identificador único para a resposta.                                         |
| `object`                                              | `string` | Tipo de objeto retornado.                                |
| `created`                                             | `number` | Timestamp Unix de quando a resposta foi criada.                            |
| `model`                                               | `string` | Nome do modelo usado para gerar a resposta.                                     |
| `choices`                                             | `array`  | Lista de escolhas de resposta retornadas pelo modelo.                               |
| `choices[].index`                                    | `number` | Índice desta escolha na lista retornada.                                    |
| `choices[].message.role`                             | `string` | Papel do remetente da mensagem.                                   |
| `choices[].message.reasoning_content`                | `string`   | Placeholder para conteúdo de raciocínio.                            |
| `choices[].message.content`                          | `string`   | Conteúdo textual principal da resposta do assistente.     |
| `choices[].message.tool_calls[]`                       | `array`  | Lista de ferramentas/funções que o assistente pretende chamar.                        |
| `choices[].message.tool_calls[].id`                 | `string` | Identificador único para esta chamada de ferramenta.                                         |
| `choices[].message.tool_calls[].type`               | `string` | Tipo da ferramenta.                                              |
| `choices[].message.tool_calls[].function.name`      | `string` | Nome da função a ser chamada.                          |
| `choices[].message.tool_calls[].function.arguments` | `string` | String JSON com argumentos passados para a função. |
| `choices[].logprobs`                                 | `string`   | Detalhes de probabilidades logarítmicas.                                          |
| `choices[].finish_reason`                            | `string` | Razão pela qual a resposta foi finalizada.                    |
| `choices[].stop_reason`                              | `string`   | Razão pela qual a resposta foi interrompida.                                         |
| `usage.prompt_tokens`                                 | `number` | Número de tokens usados no prompt.                                 |
| `usage.total_tokens`                                  | `number` | Tokens totais usados.                                                    |
| `usage.completion_tokens`                             | `number` | Tokens usados na resposta do modelo.                                 |
| `usage.prompt_tokens_details`                         | `string`   | Detalhes do uso de tokens do prompt.                                   |
| `prompt_logprobs`                                     | `number`   | Probabilidades logarítmicas para tokens do prompt.                        |


### Exemplo multimodal (texto + imagem)

Este é um exemplo multimodal usando este modelo:

```ts
const modelResponse = await Azion.AI.run("qwen-qwen25-vl-7b-instruct-awq", {
  "stream": true,
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "What is in this image?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://example.com/image.jpg"
          }
        }
      ]
    }
  ]
})
```

| Propriedade                       | Tipo  | Descrição                                                      |
| -------------------------------------- | --------- | -------------------------------------------------------------------- |
| `stream`                               | `boolean` | Indica se a resposta deve ser transmitida por stream.                             |
| `messages[]`                             | `array`   | Array de mensagens na conversa.                               |
| `messages[].role`                     | `string`  | Papel do remetente da mensagem.                       |
| `messages[].content[]`                  | `array`   | Array de blocos de conteúdo.                            |
| `messages[].content[].type`          | `string`  | Tipo do bloco de conteúdo.                                    |
| `messages[].content[].text`          | `string`  | O conteúdo textual real.                |
| `messages[].content[].image_url`     | `object`  | Objeto contendo a URL da imagem.                      |
| `messages[].content[].image_url.url` | `string`  | URL da imagem a ser analisada. |

A resposta será semelhante à do exemplo básico de conclusão de chat.

## Schema JSON

```json
{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "required": [
        "messages"
    ],
    "properties": {
        "messages": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/Message"
            }
        },
        "temperature": {
            "type": "number",
            "minimum": 0,
            "maximum": 2
        },
        "top_p": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "default": 1
        },
        "n": {
            "type": "integer",
            "minimum": 1,
            "default": 1
        },
        "stream": {
            "type": "boolean",
            "default": false
        },
        "max_tokens": {
            "type": "integer",
            "minimum": 1
        },
        "presence_penalty": {
            "type": "number",
            "minimum": -2,
            "maximum": 2,
            "default": 0
        },
        "frequency_penalty": {
            "type": "number",
            "minimum": -2,
            "maximum": 2,
            "default": 0
        },
        "tools": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/ToolDefinition"
            }
        }
    },
    "components": {
        "schemas": {
            "Message": {
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/SystemMessage"
                    },
                    {
                        "$ref": "#/components/schemas/UserMessage"
                    },
                    {
                        "$ref": "#/components/schemas/AssistantMessage"
                    },
                    {
                        "$ref": "#/components/schemas/ToolMessage"
                    }
                ]
            },
            "SystemMessage": {
                "type": "object",
                "required": [
                    "role",
                    "content"
                ],
                "properties": {
                    "role": {
                        "type": "string",
                        "enum": [
                            "system"
                        ]
                    },
                    "content": {
                        "$ref": "#/components/schemas/TextContent"
                    }
                }
            },
            "UserMessage": {
                "type": "object",
                "required": [
                    "role",
                    "content"
                ],
                "properties": {
                    "role": {
                        "type": "string",
                        "enum": [
                            "user"
                        ]
                    },
                    "content": {
                        "oneOf": [
                            {
                                "type": "string"
                            },
                            {
                                "type": "array",
                                "items": {
                                    "oneOf": [
                                        {
                                            "$ref": "#/components/schemas/TextContentItem"
                                        },
                                        {
                                            "$ref": "#/components/schemas/ImageContentItem"
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            },
            "AssistantMessage": {
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/AssistantMessageWithoutToolCalls"
                    },
                    {
                        "$ref": "#/components/schemas/AssistantMessageWithToolCalls"
                    }
                ]
            },
            "ToolMessage": {
                "type": "object",
                "required": [
                    "role",
                    "content",
                    "tool_call_id"
                ],
                "properties": {
                    "role": {
                        "enum": [
                            "tool"
                        ]
                    },
                    "content": {
                        "type": "string"
                    },
                    "tool_call_id": {
                        "type": "string"
                    }
                }
            },
            "AssistantMessageWithoutToolCalls": {
                "type": "object",
                "required": [
                    "role",
                    "content"
                ],
                "properties": {
                    "role": {
                        "type": "string",
                        "enum": [
                            "assistant"
                        ]
                    },
                    "content": {
                        "$ref": "#/components/schemas/TextContent"
                    }
                },
                "not": {
                    "required": [
                        "tool_calls"
                    ]
                }
            },
            "AssistantMessageWithToolCalls": {
                "type": "object",
                "required": [
                    "role",
                    "tool_calls"
                ],
                "properties": {
                    "role": {
                        "type": "string",
                        "enum": [
                            "assistant"
                        ]
                    },
                    "tool_calls": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ToolCalls"
                        }
                    }
                }
            },
            "TextContent": {
                "oneOf": [
                    {
                        "type": "string"
                    },
                    {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/TextContentItem"
                        }
                    }
                ],
                "description": "Text content that can be provided either as a simple string or as an array of TextContentItem objects"
            },
            "ImageContent": {
                "type": "array",
                "items": {
                    "$ref": "#/components/schemas/ImageContentItem"
                }
            },
            "TextContentItem": {
                "type": "object",
                "required": [
                    "type",
                    "text"
                ],
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "text"
                        ]
                    },
                    "text": {
                        "type": "string"
                    }
                }
            },
            "ImageContentItem": {
                "type": "object",
                "required": [
                    "type",
                    "image_url"
                ],
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "image_url"
                        ]
                    },
                    "image_url": {
                        "type": "object",
                        "required": [
                            "url"
                        ],
                        "properties": {
                            "url": {
                                "type": "string",
                                "format": "uri"
                            }
                        }
                    }
                }
            },
            "ToolCalls": {
                "type": "object",
                "required": [
                    "function",
                    "id",
                    "type"
                ],
                "properties": {
                    "function": {
                        "type": "object",
                        "required": [
                            "name",
                            "arguments"
                        ],
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "arguments": {
                                "type": "string"
                            }
                        }
                    },
                    "id": {
                        "type": "string"
                    },
                    "type": {
                        "enum": [
                            "function"
                        ]
                    }
                },
                "description":"The name and arguments of a function that should be called, as generated by the model."
            },
            "ToolDefinition": {
                "type": "object",
                "required": [
                    "type",
                    "function"
                ],
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "function"
                        ]
                    },
                    "function": {
                        "type": "object",
                        "required": [
                            "name"
                        ],
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string"
                            },
                            "parameters": {
                                "type": "object",
                                "additionalProperties": true
                            },
                            "strict": {
                                "type": "boolean",
                                "default": false
                            }
                        }
                    }
                },
                "description": "Definition of a tool that can be used by the model"
            }
        }
    }
}
```