func sendPrompt() async {
   do {
      let tempResponse = response
         
      let answer = session.streamResponse(to: prompt, generating: CityResponse.self)
      for try await partial in answer {
         var message = ""
         if let city = partial.content.city {
            message += "City: \(city)\n"
         }
         if let country = partial.content.country {
            message += "Country: \(country)\n"
         }
         if let language = partial.content.language {
            message += "Language: \(language)\n"
         }
         if let currency = partial.content.currency {
            message += "Currency: \(currency)\n"
         }
         if let attractions = partial.content.attractions {
            message += "Attractions: \(attractions.joined(separator: ", "))\n\n"
         }
         var newPartial = AttributedString(message)
         newPartial.font = .system(size: 16, weight: .regular)

         var newResponse = tempResponse
         newResponse.append(newPartial)
         response = newResponse
      }
   } catch {
      response.append(AttributedString("Error accessing the model: \(error)\n\n"))
   }
   prompt = ""
}