

# Usar a API Invoke
<a name="using-invoke-api"></a>

 A API Invoke fornece acesso direto aos modelos do Amazon Nova com mais capacidade de controlar o formato de solicitações e respostas. Ao contrário da API Converse, que abstrai detalhes específicos do modelo, a API Invoke permite que você trabalhe diretamente com as estruturas nativas de solicitações e respostas do modelo. 

**nota**  
A API Invoke é compatível com os mesmos recursos da API Converse, exceto pela modalidade de entrada de documentos, que é específica da API Converse.

## Estrutura de solicitações
<a name="invoke-api-request"></a>

Uma solicitação da API Invoke exige o ID do modelo e o corpo da solicitação JSON:

```
import boto3
import json

bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')

request_body = {
    'messages': [
        {
            'role': 'user',
            'content': [{'text': 'What is machine learning?'}]
        }
    ],
    'inferenceConfig': {
        'maxTokens': 512,
        'temperature': 0.7
    }
}

response = bedrock.invoke_model(
    modelId='us.amazon.nova-2-lite-v1:0',
    body=json.dumps(request_body)
)

response_body = json.loads(response['body'].read())
content_list = response_body["output"]["message"]["content"]
# Extract the first text block
text_block = next((item for item in content_list if "text" in item), None)
if text_block is not None:
    print(text_block["text"])
```

## Parâmetros de solicitação
<a name="invoke-api-parameters"></a>

A API Invoke é compatível com os seguintes parâmetros principais:
+ `messages`: matriz de mensagens de conversação com perfil e conteúdo
+ `system`: prompt opcional do sistema para contexto e instruções
+ `inferenceConfig`: parâmetros que controlam a saída do modelo (temperature, maxTokens, topP, topK, stopSequences, reasoningConfig)
+ `toolConfig`: especificações da ferramenta e escolha da ferramenta para chamada de função