Uso de la API de Converse
La API de Converse proporciona una interfaz unificada para interactuar con los modelos de Amazon Nova. Resume los detalles específicos del modelo y proporciona una forma coherente de gestionar las conversaciones de varios turnos, las peticiones del sistema y las respuestas de transmisión en todos los modelos de Amazon Nova.
Temas
Estructura de la solicitud
-
Conversaciones de varios turnos: mantenga el contexto en varios intercambios.
-
Peticiones del sistema: son instrucciones del sistema, como personalidades o directrices de respuesta.
-
Chat de documentos: interactúe con documentos o colecciones de documentos y consúltelos.
-
Visión: procese y analice imágenes y videos.
-
Uso de herramientas: permita que los modelos utilicen herramientas y API externas.
-
Barreras de protección: aplique filtros de contenido y controles de seguridad.
-
Razonamiento: habilite el pensamiento extendido para la resolución de problemas complejos.
Una solicitud básica de la API de Converse incluye el ID del modelo y una lista de mensajes:
import boto3 bedrock = boto3.client('bedrock-runtime', region_name='us-east-1') response = bedrock.converse( modelId='us.amazon.nova-2-lite-v1:0', messages=[ { 'role': 'user', 'content': [{'text': 'What is machine learning?'}] } ] ) content_list = response["output"]["message"]["content"] # Extract the first text block text = next((item["text"] for item in content_list if "text" in item), None) if text is not None: print(text)
Uso de peticiones del sistema
Las peticiones del sistema proporcionan instrucciones y contexto al modelo:
import boto3 bedrock = boto3.client('bedrock-runtime', region_name='us-east-1') response = bedrock.converse( modelId='us.amazon.nova-2-lite-v1:0', system=[ {'text': 'You are a helpful AI assistant specializing in cloud computing.'} ], messages=[ { 'role': 'user', 'content': [{'text': 'Explain serverless computing.'}] } ] ) # Print the response text content_list = response["output"]["message"]["content"] text = next((item["text"] for item in content_list if "text" in item), None) if text is not None: print(text)
Parámetros de inferencia
Controle la salida del modelo mediante parámetros de inferencia. A continuación se muestran los parámetros de influencia disponibles.
-
maxTokens (entero): número máximo de tokens que se generarán (hasta 65 000). Si no se especifica, el modelo utiliza un valor predeterminado dinámico basado en el contexto de la solicitud.
-
temperatura (flotante): controla la aleatoriedad (entre 0,0 y 1,0; predeterminado: 0,7). Los valores más bajos hacen que la salida sea más determinista.
-
topP (flotante): umbral de muestreo del núcleo (entre 0 y 1, predeterminado: 0,9). Los valores más bajos hacen que la salida sea más centrada.
-
stopSequences (matriz): secuencias de caracteres que detienen la generación cuando se encuentran.
Ejemplo:
import boto3 bedrock = boto3.client('bedrock-runtime', region_name='us-east-1') response = bedrock.converse( modelId='us.amazon.nova-2-lite-v1:0', messages=[ { 'role': 'user', 'content': [{'text': 'Write a short story.'}] } ], inferenceConfig={ 'maxTokens': 512, 'temperature': 0.7, 'topP': 0.9, 'stopSequences': ['END'] } ) content_list = response["output"]["message"]["content"] text = next((item["text"] for item in content_list if "text" in item), None) if text is not None: print(text)
Uso del razonamiento
Nova 2 Lite admite el pensamiento extendido para la resolución de problemas complejos. Habilite el razonamiento con reasoningConfig.
De forma predeterminada, el razonamiento está desactivado para optimizar la velocidad y el costo de las consultas sencillas. Cuando necesite ir más allá de estas sencillas tareas, puede habilitar el razonamiento. Nova 2 proporciona un control flexible sobre la profundidad del razonamiento a través de tres niveles de esfuerzo:
- Esfuerzo bajo (
maxReasoningEffort: "low") -
IDEAL PARA: TAREAS CON MAYOR COMPLEJIDAD QUE REQUIEREN UN PENSAMIENTO ESTRUCTURADO. Por ejemplo, puede utilizarlo para hacer sugerencias de revisión y mejora del código en las que el modelo deba tener en cuenta detenidamente la calidad del código existente, llevar a cabo tareas de análisis que requieran tener en cuenta detenidamente varios factores o situaciones de resolución de problemas que se beneficien de un enfoque metódico. El esfuerzo bajo es ideal para tareas complejas en las que el razonamiento básico mejore la precisión sin requerir una planificación profunda de varios pasos.
- Esfuerzo medio (
maxReasoningEffort: "medium") -
IDEAL PARA: TAREAS DE VARIOS PASOS Y FLUJOS DE TRABAJO DE CODIFICACIÓN. Por ejemplo, puede utilizarlo para el desarrollo y la depuración de software cuando el modelo necesite comprender la estructura del código existente antes de implementar los cambios, la generación de código que requiere la coordinación entre varios archivos o componentes, los cálculos de varios pasos con interdependencias o la planificación de tareas con varias restricciones. Un esfuerzo medio es óptimo para flujos de trabajo agénticos que coordinan varias herramientas y requieren que el modelo mantenga el contexto en varias operaciones secuenciales.
- Esfuerzo alto (
maxReasoningEffort: "high") -
IDEAL PARA: RAZONAMIENTO STEM Y RESOLUCIÓN AVANZADA DE PROBLEMAS. Por ejemplo, puede utilizarlo para pruebas y problemas matemáticos avanzados que requieran una verificación minuciosa, tareas de análisis e investigación que requieran una investigación exhaustiva, diseños de sistemas complejos con consideraciones arquitectónicas en varias dimensiones o casos críticos de toma de decisiones con implicaciones significativas. Un esfuerzo alto proporciona la máxima precisión para tareas que requieran un razonamiento sofisticado, una evaluación cuidadosa de las alternativas y una validación exhaustiva de las conclusiones.
En los siguientes ejemplos, se muestran los diferentes niveles de esfuerzo de razonamiento:
Parámetros de razonamiento:
A continuación se muestran los parámetros de razonamiento:
-
type:enabledodisabled(predeterminado:disabled) -
maxReasoningEffort:low,medium, ohigh. Es obligatorio cuando el razonamiento está habilitado.
nota
Temperatura, TopP y TopK no se pueden usar con maxReasoningEffort establecido en high. Producirá un error.
La respuesta incluye contenido de razonamiento:
{ "output": { "message": { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "[REDACTED]" } } }, { "text": "Based on the premises, we can conclude..." } ] } }, "stopReason": "end_turn" }
nota
Con Amazon Nova 2, el contenido de razonamiento se muestra como [REDACTED]. Se le continuará cobrando por los tokens de razonamiento, ya que contribuyen a mejorar la calidad de la salida. Ahora incluimos este campo en la estructura de la respuesta para preservar la opción de exponer el contenido del razonamiento en el futuro. Estamos trabajando activamente con los clientes para determinar el mejor enfoque para dar a conocer el proceso de razonamiento del modelo.