# InternVL3

**InternVL3** é um Multimodal Large Language Model avançado (MLLM) com capacidades para abranger tool calling, agentes GUI, análise de imagem industrial, percepção de visão 3D e mais.

## Detalhes do modelo

| Categoria | Detalhes |
|----------|-------|
| **Nome do modelo** | InternVL3 |
| **Versão** | Instruct 1B |
| **Categoria do modelo** | VLM |
| **Tamanho** | 1B parâmetros |
| **Modelo HuggingFace** | [opengvlab-internvl3-1b-instruct](https://huggingface.co/OpenGVLab/InternVL3-1B-Instruct) |
| **Endpoint compatível com a OpenAI** | [Chat API Overview](https://developers.openai.com/api/reference/overview) |
| **Licença** | [Apache 2.0](https://choosealicense.com/licenses/apache-2.0/) |

## Capacidades 

| Recurso | Detalhes |
|---------|--------|
| Tool Calling | ❌ |
| Tamanho do Contexto | 16k tokens |
| Suporta LoRA | ❌ |
| Dados de Entrada | Texto + Imagem |

## Uso 

### Exemplo básico de chat completion

Este é um exemplo básico de chat completion usando este modelo:

```ts
const modelResponse = await Azion.AI.run("opengvlab-internvl3-1b-instruct", {
  "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 por stream.                            |
| `messages[]`  | `array`   | Array de objetos de mensagem. |
| `messages[].role` | `string` | O papel do remetente da mensagem.                            |
| `messages[].content` | `string` | O conteúdo da mensagem.                                |

### Exemplo multimodal (texto + imagem)

Este é um exemplo de requisição multimodal usando este modelo:

```ts
const modelResponse = await Azion.AI.run("opengvlab-internvl3-1b-instruct", {
  "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                                                     |
| -------------------------------------- | --------- | ------------------------------------------------------------------- |
| `messages[]`                           | array    | Array contendo as mensagens enviadas.      |
| `messages[].role`                     | string   | O papel do remetente da mensagem.                            |
| `messages[].content`                  | string   | O conteúdo da mensagem.                                |
| `messages[].content[].type`          | string   | O tipo do item de conteúdo.        |
| `messages[].content[].text`          | string   | Conteúdo da mensagem (somente se `type` for `"text"`).                 |
| `messages[].content[].image_url`          | string   | Conteúdo da mensagem (somente se `type` for `"image_url"`).  |
| `messages[].content[].image_url.url` | string   | A URL real da imagem.          |

## 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"
                    }
                ]
            },
            "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"
                    }
                ]
            },
            "AssistantMessageWithoutToolCalls": {
                "type": "object",
                "required": [
                    "role",
                    "content"
                ],
                "properties": {
                    "role": {
                        "type": "string",
                        "enum": [
                            "assistant"
                        ]
                    },
                    "content": {
                        "$ref": "#/components/schemas/TextContent"
                    }
                },
                "not": {
                    "required": [
                        "tool_calls"
                    ]
                }
            },
            "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"
                            }
                        }
                    }
                }
            }
        }
    }
}
```