<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Fernando Gutierrez</title>
    <description>The latest articles on Forem by Fernando Gutierrez (@fernando_gutierrez_ad99f7).</description>
    <link>https://forem.com/fernando_gutierrez_ad99f7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3699133%2F4045a8d0-bf98-4f9c-b2c9-8de4ba83a233.jpg</url>
      <title>Forem: Fernando Gutierrez</title>
      <link>https://forem.com/fernando_gutierrez_ad99f7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/fernando_gutierrez_ad99f7"/>
    <language>en</language>
    <item>
      <title>🧱How to use Amazon Bedrock with Python (boto3)</title>
      <dc:creator>Fernando Gutierrez</dc:creator>
      <pubDate>Wed, 07 Jan 2026 20:13:47 +0000</pubDate>
      <link>https://forem.com/fernando_gutierrez_ad99f7/how-to-use-amazon-bedrock-with-python-boto3-5d6m</link>
      <guid>https://forem.com/fernando_gutierrez_ad99f7/how-to-use-amazon-bedrock-with-python-boto3-5d6m</guid>
      <description>&lt;p&gt;Amazon Bedrock makes it incredibly easy to work with foundation models like Claude without worrying about infrastructure.&lt;/p&gt;

&lt;p&gt;In this post, I’ll show you how to invoke a Bedrock model using Python and boto3 in a clean and production-ready way.&lt;/p&gt;

&lt;p&gt;🧰 &lt;strong&gt;Requirements&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.9+&lt;/li&gt;
&lt;li&gt;AWS account with Bedrock enabled&lt;/li&gt;
&lt;li&gt;AWS credentials configured (CLI, env vars, or IAM role)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📦 &lt;em&gt;Install boto3&lt;/em&gt;&lt;br&gt;
&lt;code&gt;pip install boto3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Python example&lt;/strong&gt;: Claude on Amazon Bedrock&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import boto3
import json

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

payload = {
    "prompt": "Human: Explain what Amazon Bedrock is in simple terms.\nAssistant:",
    "max_tokens_to_sample": 200
}

response = client.invoke_model(
    modelId="anthropic.claude-v2",
    body=json.dumps(payload)
)

result = response["body"].read().decode("utf-8")
print(result)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🔍 What’s happening here?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bedrock-runtime is used to call foundation models&lt;/li&gt;
&lt;li&gt;invoke_model() sends a prompt to Claude&lt;/li&gt;
&lt;li&gt;The response is streamed back and decoded&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🚀 Final thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon Bedrock + Python is a powerful combo for building AI-powered applications quickly and securely.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Perfect for:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI assistants&lt;/li&gt;
&lt;li&gt;Knowledge bots&lt;/li&gt;
&lt;li&gt;Cloud-native AI projects&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>aws</category>
      <category>programming</category>
    </item>
    <item>
      <title>🌸 Nikte – Reconocimiento de flores con arquitectura serverless en AWS</title>
      <dc:creator>Fernando Gutierrez</dc:creator>
      <pubDate>Wed, 07 Jan 2026 19:52:17 +0000</pubDate>
      <link>https://forem.com/fernando_gutierrez_ad99f7/nikte-reconocimiento-de-flores-con-arquitectura-serverless-en-aws-5660</link>
      <guid>https://forem.com/fernando_gutierrez_ad99f7/nikte-reconocimiento-de-flores-con-arquitectura-serverless-en-aws-5660</guid>
      <description>&lt;p&gt;&lt;strong&gt;Resumen del proyecto&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nikte es un proyecto de reconocimiento de flores que utiliza una arquitectura serverless en AWS para procesar imágenes enviadas por los usuarios y devolver resultados en tiempo casi real. El objetivo fue diseñar una solución escalable, sin administración de servidores, y que integrara servicios de inteligencia artificial.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Objetivo&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Permitir que un usuario envíe una imagen de una flor.&lt;/li&gt;
&lt;li&gt;Analizar la imagen automáticamente usando IA.&lt;/li&gt;
&lt;li&gt;Almacenar tanto la imagen original como los resultados del análisis.&lt;/li&gt;
&lt;li&gt;Responder de forma rápida y escalable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Arquitectura general&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La solución se construyó usando los siguientes servicios:&lt;/li&gt;
&lt;li&gt;Amazon S3 – Almacenamiento de imágenes.&lt;/li&gt;
&lt;li&gt;AWS Lambda – Orquestación y procesamiento serverless.&lt;/li&gt;
&lt;li&gt;Amazon Rekognition – Análisis de imágenes (visión por computadora).&lt;/li&gt;
&lt;li&gt;Amazon DynamoDB – Almacenamiento de resultados y metadatos.&lt;/li&gt;
&lt;li&gt;Meta Webhooks (WhatsApp) – Entrada de imágenes desde el usuario.&lt;/li&gt;
&lt;li&gt;Flask – Servidor intermediario para manejar webhooks y lógica inicial.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Flujo del sistema&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El usuario envía una imagen de una flor por WhatsApp.&lt;/li&gt;
&lt;li&gt;El webhook de Meta recibe el evento y lo envía al servidor Flask (gronk).&lt;/li&gt;
&lt;li&gt;Flask sube la imagen a un bucket de Amazon S3.&lt;/li&gt;
&lt;li&gt;La carga en S3 dispara una función AWS Lambda.&lt;/li&gt;
&lt;li&gt;Lambda envía la imagen a Amazon Rekognition usando DetectLabels.&lt;/li&gt;
&lt;li&gt;Rekognition devuelve etiquetas y niveles de confianza.&lt;/li&gt;
&lt;li&gt;Lambda guarda los resultados en Amazon DynamoDB.&lt;/li&gt;
&lt;li&gt;El sistema responde al usuario con el nombre de la flor identificada.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Uso de Amazon Rekognition&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon Rekognition fue el componente central de inteligencia artificial del proyecto.&lt;/li&gt;
&lt;li&gt;Se utilizó la operación DetectLabels para identificar objetos presentes en la imagen.&lt;/li&gt;
&lt;li&gt;Rekognition devuelve un conjunto de etiquetas con porcentajes de confianza.&lt;/li&gt;
&lt;li&gt;El sistema filtra las etiquetas relacionadas con flores y selecciona la más relevante.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ejemplo de respuesta procesada:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`{
  "label": "Rose",
  "confidence": 97.2
}`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Rekognition permitió evitar el entrenamiento de un modelo propio, reduciendo complejidad y tiempo de desarrollo.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uso de Amazon S3&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Las imágenes se almacenan como objetos en un bucket S3.&lt;/li&gt;
&lt;li&gt;Los archivos pueden:&lt;/li&gt;
&lt;li&gt;Ser visualizados desde la consola.&lt;/li&gt;
&lt;li&gt;Ser descargados directamente si es necesario.&lt;/li&gt;
&lt;li&gt;S3 actúa como fuente de entrada para Rekognition y como respaldo de las imágenes originales.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Decisión técnica:&lt;/em&gt;&lt;br&gt;
S3 fue elegido porque está optimizado para almacenamiento de objetos grandes, algo que no es eficiente en bases de datos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uso de Amazon DynamoDB&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DynamoDB se utilizó para almacenar información estructurada:&lt;/li&gt;
&lt;li&gt;ID de la imagen&lt;/li&gt;
&lt;li&gt;Flor identificada&lt;/li&gt;
&lt;li&gt;Nivel de confianza&lt;/li&gt;
&lt;li&gt;Fecha y usuario&lt;/li&gt;
&lt;li&gt;Permite consultas en milisegundos y escalado automático.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ejemplo de registro:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "image_id": "rosa.jpg",
  "flower": "Rosa Roja",
  "confidence": 0.97,
  "timestamp": "2025-09-15T15:30:00Z"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Ventaja clave:&lt;/em&gt;&lt;br&gt;
La baja latencia de DynamoDB permite mostrar historiales y resultados sin reprocesar imágenes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diferencia clave entre S3 y DynamoDB&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;S3 → almacenamiento de objetos (imágenes).&lt;/li&gt;
&lt;li&gt;DynamoDB → almacenamiento de datos estructurados (resultados).
&lt;em&gt;Ambos servicios se complementan y cumplen roles distintos dentro de la arquitectura.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nikte demuestra cómo una arquitectura serverless puede integrar almacenamiento, procesamiento y análisis de imágenes de forma eficiente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;S3 maneja los archivos.&lt;/li&gt;
&lt;li&gt;Rekognition aporta inteligencia artificial.&lt;/li&gt;
&lt;li&gt;Lambda automatiza el flujo.&lt;/li&gt;
&lt;li&gt;DynamoDB permite respuestas rápidas.&lt;/li&gt;
&lt;li&gt;Webhooks de Meta conectan el sistema con usuarios reales.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Este proyecto fue una experiencia práctica para entender cómo elegir el servicio correcto según el tipo de dato y la necesidad del sistema.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Te comparto el diagrama de flujo&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj4lbyhvw0hsie8196p0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj4lbyhvw0hsie8196p0.png" alt=" " width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>python</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
