

# Uso de la API de Invoke
<a name="using-invoke-api"></a>

 La API de Invoke proporciona acceso directo a los modelos de Amazon Nova con más capacidad para controlar el formato de solicitud y respuesta. A diferencia de la API de Converse, que resume los detalles específicos del modelo, la API de Invoke le permite trabajar directamente con las estructuras de solicitud y respuesta nativas del modelo. 

**nota**  
La API de Invoke admite las mismas características que la API de Converse, excepto la modalidad de entrada de documentos, que es específica de la API de Converse.

## Estructura de la solicitud
<a name="invoke-api-request"></a>

Una solicitud de la API de Invoke requiere el ID del modelo y el cuerpo de la solicitud en formato 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 solicitud
<a name="invoke-api-parameters"></a>

La API de Invoke admite los siguientes parámetros claves:
+ `messages`: matriz de mensajes de conversación con rol y contenido
+ `system`: petición del sistema opcional para el contexto y las instrucciones
+ `inferenceConfig`: parámetros que controlan la salida del modelo (temperatura, maxTokens, topP, topK, stopSequences, reasoningConfig)
+ `toolConfig`: especificaciones y elección de la herramienta para la llamada a funciones