Rapportkategorisering med en grundmodell
Du arbetar nu med en AI-funktion som hjälper användare att snabbt få en överblick över väderförhållanden. I stället för att läsa långa rapporter vill användarna se en enkel sammanfattning på ett enda ord i SkyCast Assistant-appen. Som ett konceptbevis använder du Amazon Bedrock för att sammanfatta en väderrapport till ett enda ord från en fördefinierad lista.
Biblioteken boto3 och json är förinstallerade. En exempelväderrapport sparad som report och en lista med giltiga categories är också förinstallerade.
Den här övningen är en del av kursen
Introduktion till Amazon Bedrock
Övningsinstruktioner
- Skapa en prompt som anger de tillåtna kategorierna från listan
categoriesoch som inkluderarreport. - Lägg till prompten i begäransdatan när du anropar modellen.
- Extrahera sammanfattningen från det
responsesom returneras av Bedrock.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
def summarize_weather(report):
bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")
# Create prompt with allowed categories and pass in the report
prompt = f"""Summarize the following weather report as one word from: {', '.join(____)}. Report: {____}"""
# Pass the prompt to the body
body = {"messages": [{"role": "user", "content": [{"text": ____}]}]}
response = bedrock.invoke_model(modelId="us.amazon.nova-2-lite-v1:0", body=json.dumps(body))
# Extract the summary from the response
data = json.loads(response.get("body").read()____)
return data["output"]["message"]["content"][0]["text"]
print(f"Weather Summary: {summarize_weather(report)}")