Diseñando flujos de trabajo de IA en varios pasos

Introducción a la IA Generativa en Snowflake

James Cha-Earley

Senior Developer Advocate, Snowflake

Flujo de reseñas de Cortex

Objetivo: Construir un sistema automatizado para comentarios de huéspedes internacionales

$$

  • Traducir cada reseña al inglés
  • Resumir el punto principal
  • Categorizar para dirigir al equipo correcto
  • Generar una respuesta
  • Traducir de nuevo al idioma original

Flujo de trabajo donde se recibe una reseña, se traduce, resume y categoriza, y se envía una respuesta

Introducción a la IA Generativa en Snowflake

Extrayendo reseñas

-- Celda SQL
SELECT DESCRIPTION
FROM HOTELS.REVIEWS
WHERE LANGUAGE = 'es'
LIMIT 1;
# Celda Python
df = cell1.to_pandas()
review_text = df["DECRIPTION"].iloc[0]
Introducción a la IA Generativa en Snowflake

Reseña en español

print(review_text)
Buen hotel y bien situado pero desafortunadamente no me toco buena suerte con 
el servicio; el aire no servía; pedí la cama extra tres veces; la cafetera estaba
dañada; y me sacaron las maletas fuera porque argumentaron que no hice Check out;
siendo que era un día despues; pero su sistema lo marco antes; una total
descortesía hecharme del cuarto y cancelar mis llaves; regresar de caminar y darse
cuenta que han tomado tus cosas fuera es increíble y mas aun sin ninguna disculpa;
yo no volvería ahí aunque la vrd el hotel es bueno y su jubilación el trato
me decepciono
Introducción a la IA Generativa en Snowflake

Traducción

translated = translate(
    text=review_text,
    from_language="es",
    to_language="en"
)

print(translated)
Good hotel and well located, but unfortunately, I didn't have good luck with the service; the air
conditioning didn't work; I asked for the extra bed three times; the coffee maker was broken; 
and they took my bags out because they argued that I hadn't checked out; even though it was a day
later; but their system marked it as checked out; a total discourtesy to throw me out of the room
and cancel my keys; returning from a walk and realizing they've taken your things out is
incredible and even more so without any apology; I wouldn't go back there even though the hotel
itself is good and their retirement the treatment disappoints me.
Introducción a la IA Generativa en Snowflake

Resumen

summary = summarize(text=translated)

print(summary)
El hotel estaba bien ubicado, pero el servicio fue decepcionante. El aire acondicionado
no funcionaba, no se proporcionó una cama extra a pesar de múltiples solicitudes, y la cafetera
estaba rota. El personal del hotel tomó las maletas del reclamante y canceló sus
llaves a pesar de una fecha de salida posterior, lo cual fue descortés y dejó al reclamante
sintiéndose decepcionado.
Introducción a la IA Generativa en Snowflake

Clasificación

topic = classify_text(
    text=summary,
    labels=["staff", "cleanliness", "pricing", "room", "food"]
)

print(topic)
{
  "label": "staff"
}
Introducción a la IA Generativa en Snowflake

Generación de texto

response = complete(
        prompt=f"Write a brief and professional response to this review: {summary}",
        model='llama3.1-8b',
        options={'temperature':0.3, 'max_tokens':120})

print(response)
Gracias por compartir sus comentarios. Aunque nos alegra que haya encontrado conveniente la ubicación,
lamentamos sinceramente los problemas de servicio que experimentó. Entendemos lo frustrante que debió
haber sido enfrentar múltiples inconvenientes durante su estancia. Sus comentarios han sido compartidos
con el equipo para asegurar que estas preocupaciones se aborden y no se repitan.
Introducción a la IA Generativa en Snowflake

Traducción de respuesta

translated_response = translate(
    text=response,
    from_language="en",
    to_language="es"
)

print(translated_response)
Gracias por compartir sus comentarios. Si bien nos alegra saber que encontró conveniente
la ubicación, lamentamos sinceramente los inconvenientes que experimentó con el servicio.
Entendemos lo frustrante que debió haber sido enfrentar múltiples inconvenientes durante
su estadía. Sus comentarios han sido compartidos con el equipo para asegurarnos de que
estas situaciones se aborden y no vuelvan a ocurrir.
Introducción a la IA Generativa en Snowflake

Modelo de costos de Cortex

Un flujo de trabajo de cortex que muestra que los tokens de entrada, cálculo y salida tienen un costo asociado

1 Imagen generada por ChatGPT-4o
Introducción a la IA Generativa en Snowflake

Limitando costos

$$

  • Recortar entradas, procesar solo texto relevante

  • Limitar tamaño de salida

  • Bajar temperatura

# Limitar costo de complete
complete(prompt=prompt, 
         model='llama3.1-8b', 
         options={
            'max_tokens':120,

'temperature':0})
Introducción a la IA Generativa en Snowflake

Mejores prácticas de Cortex

  • Encadenar modelos efectivamente
# Resumir primero si se llaman múltiples funciones posteriores
summarize()
text_classify()
complete()
translate()
  • Registro
  • Caché
  • Procesos por lotes
Introducción a la IA Generativa en Snowflake

¡Vamos a practicar!

Introducción a la IA Generativa en Snowflake

Preparing Video For Download...