Answer extraction

Introduction to Generative AI in Snowflake

James Cha-Earley

Senior Developer Advocate, Snowflake

Why use answer extraction?

$$

  • Identifying complaints
  • Extracting feedback about amenities
  • Answering questions from long documents

A document with a question mark surrounded by emojis with smiling or sad faces, representing that we do not know what each review is about

Introduction to Generative AI in Snowflake

A common business problem

review = """
The property needs updating and management needs to hire more staff. 
The staff does everything they can but it is not enough for the number of guests. 
The rooms look old as well as everything in the bathrooms. 
Definitely better options in the hotel zone.
"""
  • Snowflake Cortex to the rescue!
Introduction to Generative AI in Snowflake

Extracting an answer

from snowflake.cortex import extract_answer

response = extract_answer( from_text=review, question="What did the guest complain about?" )
Introduction to Generative AI in Snowflake

Output

print(response)
[
    {
    "answer": "Management needs to hire more staff.",
    "score": 0.8013839254
    }
]
  • Scores ranging from 0 to 1
Introduction to Generative AI in Snowflake

Building a workflow

SELECT DESCRIPTION
FROM HOTELS.REVIEWS
WHERE RATING < 6
    AND DATE = '2023-08-23';
Introduction to Generative AI in Snowflake

SQL output

I will never book a vacation through Expedia not only did I pay over 5;000 dollars
but they false advertise the resort; in my reservation It clearly stated that
breakfast and dinner was included. When I got to the resort they informed me that 
these issues have happed before with Expedia because the resort does not offer an
all exclusive. After flighting practically all day I called Expedia and they had me
on hold for 45min and nothing got resolved. I ended up spending over 1000.00 more
just on food. I am beyond me they are not only false advertising but refused to
take any responsibility on their part for the issues they caused me and my family.  Again I will never chose Expedia to plan a vacation!!!
Introduction to Generative AI in Snowflake

Asking a question

negative_review = cell1.to_pandas()['DESCRIPTION'].iloc[0]

response = extract_answer( from_text=negative_review, question="What was the primary issue that the guest mentioned?" ) print(response)
Introduction to Generative AI in Snowflake

Reviewing the response

[
    {
    "answer" : "Expedia falsely advertised that meals were included, but the
                resort did not offer an all-inclusive package.",
    "score": 0.75829312442
    }
]
Introduction to Generative AI in Snowflake

Limitations

$$

  • May return partial or vague phrases
  • Best used on paragraphs, not multi-topic documents
  • Always review critical outputs

Caution sign

Introduction to Generative AI in Snowflake

Let's practice!

Introduction to Generative AI in Snowflake

Preparing Video For Download...