Projektowanie wieloetapowych przepływów pracy AI

Wprowadzenie do generatywnej AI w Snowflake

James Cha-Earley

Senior Developer Advocate, Snowflake

Przepływ pracy Cortex dla recenzji

Cel: Zbudowanie zautomatyzowanego systemu obsługi opinii gości zagranicznych

$$

  • Przetłumaczenie każdej recenzji na język angielski
  • Podsumowanie głównego punktu
  • Kategoryzacja w celu przekierowania do właściwego zespołu
  • Wygenerowanie odpowiedzi
  • Przetłumaczenie odpowiedzi na oryginalny język

Przepływ pracy, w którym recenzja jest odbierana, tłumaczona, podsumowywana, kategoryzowana i wysyłana jest odpowiedź

Wprowadzenie do generatywnej AI w Snowflake

Pobieranie recenzji

-- SQL cell
SELECT DESCRIPTION
FROM HOTELS.REVIEWS
WHERE LANGUAGE = 'es'
LIMIT 1;
# Python cell
df = cell1.to_pandas()
review_text = df["DECRIPTION"].iloc[0]
Wprowadzenie do generatywnej AI w Snowflake

Recenzja w języku hiszpańskim

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
Wprowadzenie do generatywnej AI w Snowflake

Tłumaczenie

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.
Wprowadzenie do generatywnej AI w Snowflake

Podsumowanie

summary = summarize(text=translated)

print(summary)
The hotel was well-located, but the service was disappointing. The air conditioning
didn't work, an extra bed was not provided despite multiple requests, and the coffee
maker was broken. The hotel staff took the complainant's bags and canceled their
keys despite a later checkout date, which was discourteous and left the complainant
feeling disappointed.
Wprowadzenie do generatywnej AI w Snowflake

Klasyfikacja

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

print(topic)
{
  "label": "staff"
}
Wprowadzenie do generatywnej AI w Snowflake

Generowanie tekstu

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)
Thank you for sharing your feedback. While we're glad you found the location
convenient, we're truly sorry to hear about the service issues you experienced.
We understand how frustrating it must have been to face multiple inconveniences
during your stay. Your comments have been shared with the team to ensure these concerns
are addressed and do not recur.
Wprowadzenie do generatywnej AI w Snowflake

Tłumaczenie odpowiedzi

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.
Wprowadzenie do generatywnej AI w Snowflake

Model kosztów Cortex

Przepływ pracy Cortex pokazujący, że tokeny wejściowe, obliczenia i tokeny wyjściowe mają przypisany koszt

1 Obraz wygenerowany przez ChatGPT-4o
Wprowadzenie do generatywnej AI w Snowflake

Ograniczanie kosztów

$$

  • Przycinanie danych wejściowych, przetwarzanie tylko istotnego tekstu

  • Ograniczenie rozmiaru wyników

  • Obniżenie temperatury

# Limit cost of complete
complete(prompt=prompt, 
         model='llama3.1-8b', 
         options={
            'max_tokens':120,

'temperature':0})
Wprowadzenie do generatywnej AI w Snowflake

Najlepsze praktyki Cortex

  • Efektywne łączenie modeli w łańcuch
# Summarize first if calling multiple downstream functions
summarize()
text_classify()
complete()
translate()
  • Logowanie
  • Buforowanie
  • Potoki wsadowe
Wprowadzenie do generatywnej AI w Snowflake

Czas na ćwiczenia!

Wprowadzenie do generatywnej AI w Snowflake

Preparing Video For Download...