Generar texto con modelos de lenguaje

Introducción a Amazon Bedrock

Nikhil Rangarajan

Data Scientist

Enviar prompts a modelos de lenguaje

  • Prompt: el texto de entrada que envías al modelo
    • "Explain how AWS Lambda works"

Un icono que representa el prompt.

Introducción a Amazon Bedrock

Enviar prompts a modelos de lenguaje

  • Prompt: el texto de entrada que envías al modelo
    • "Explain how AWS Lambda works"
  • Completion: el texto generado por el modelo
    • "AWS Lambda is a serverless compute service that..."

Iconos que representan el prompt y la completion.

Introducción a Amazon Bedrock

Enviar prompts a modelos de lenguaje

  • Prompt: el texto de entrada que envías al modelo
    • "Explain how AWS Lambda works"
  • Completion: el texto generado por el modelo
    • "AWS Lambda is a serverless compute service that..."
  • Response:
    • Texto generado (completion)
    • Metadatos (tokens, info del modelo)
    • Información de estado

Tres iconos en secuencia que representan el prompt, la completion y la response.

Introducción a Amazon Bedrock

Aplicar técnicas básicas de prompt engineering

  • Técnicas para mejores resultados:
    • Claridad y precisión: da instrucciones detalladas
    • Asignar un rol: usa una persona para dar contexto
    • Instrucciones de formato: añade restricciones para guiar la respuesta
"Explain the benefits of exercise 
in simple terms."
"You are a nutritionist. Explain the 
benefits of a balanced diet."
"List the top 3 benefits of cloud 
computing in bullet points."
Introducción a Amazon Bedrock

Técnicas avanzadas de análisis de texto

  • Gestiona claves ausentes o inesperadas
data = json.loads(response['body'].read())
if 'completion' in data:
    output = data['completion']

else: output = "Key not found"
  • Análisis JSON multinivel para navegar estructuras anidadas
try:
    nova_output = data.decode()["output"]

except (KeyError, IndexError) as e: nova_output = f"Error: {str(e)}"
Introducción a Amazon Bedrock

Procesamiento de respuestas y manejo de texto

  • Problemas de Unicode o codificación: gestiona caracteres especiales en respuestas de texto
    # Ensure proper encoding
    output = data['completion'].encode('utf-8').decode('unicode_escape')
    print(output)
    
  • Procesar respuestas largas: divide o recorta salidas grandes para usabilidad
    # Truncate response for display
    output = data['completion'][:500]  # Limit to 500 characters
    print(output)
    
Introducción a Amazon Bedrock

Extracción de categorías con Bedrock

  • Ejemplo: clasificar texto
  • Usa prompts estructurados con categorías claras
  • Da instrucciones explícitas para una sola categoría
  • Procesa respuestas del modelo con eficiencia
  • Resultado: categorización precisa

Iconos que representan la clasificación de texto

Introducción a Amazon Bedrock

Extracción de categorías con Bedrock

def categorize_ticket(ticket, categories):
  prompt = f"Categorize into one: {', '.join(categories)}. 
  Ticket: {ticket}"
  response = bedrock.invoke_model(
    modelId='amazon.nova-micro-v1:0',
    body=json.dumps({"messages": [{"role": "user", "content": 
                                   [{"text": prompt}]}]}))

return json.loads(nova_response.get("body").read().decode())["output"]
{"output": {"message": {"role": "assistant","content": [
        {
          "text": "Customer Service"
        }]}, "stop_reason": "stop_sequence"}}
Introducción a Amazon Bedrock

¡Vamos a practicar!

Introducción a Amazon Bedrock

Preparing Video For Download...