I have made a custom chatbot with Streamlit and deployed it on the community cloud that lets users reflect on their own beliefs based on GPT4, to test the hypothesis that this kind of reflection weakens belief in conspiracy theories over time. To do so, I want to send a couple of thousand survey participants to the app from the survey and check a few months later how their views have developed compared to a control group. I have tested this yesterday with just 20 participants, and the participants report that performance was bad, some could not finish the interaction with the bot. I think this is because participants all rush in at the same time, and that exceeds the resourcing of the instance. In full deployment, there could be at the peak hundreds of people using the app at the same time, for a very short time.
I was wondering whether there is any way to increase the resources for the app, or whether I need to deploy it somewhere else. I have absolutely no idea about cloud deployment, so am hoping there are ways of giving more resources to the app on the community cloud, but could not find options in the app.
We’re able to offer increased resources for apps used by educational or nonprofit organizations. Shoot me a DM if this applies and we can get that process going for you. I can also look up the memory usage of your app if you can share the URL, if you want to confirm that memory usage is the culprit/get an idea of what level of resources you may need for your app.
The way it is deployed now the app could not handle 10 people using it at the same time, and for the research study to work it needs to be able to support 100+ people using the chatbot simultaneously.
Let me briefly explain why I need the resourcing so that many people can run the app at the same time, and what this is all about anyway.
I am a researcher at the University of Hamburg, and this is an educational app to help people reflect on your own beliefs. I research this because reflection about the reasons for why we hold our political or moral beliefs may be one of the most effective ways of changing one’s mind, and my research group hopes that this can help address issues like polarization and conspiracy theorizing.
If you run it without additional arguments, you can select the belief you want to reflect on yourself. However, we plan to run it as part of a representative survey of the US population on conspiracy beliefs, which gathers data on what proportion of people believes which kinds of conspiracies, testing more than 70 such theories. We’ll randomly select a conspiracy theory a given respondent endorses – for instance ‘Climate change is a hoax perpetrated by corrupt scientists and politicians.’ – and pass it to the app as a URL parameter, I which case it invites participants to a friendly chat about this specific belief. We hope that we find in waves 2 and 3 that those who interacted with the chatbot will become less convinced of the conspiracy theory compared to a control group.
The survey works such that a panel of participants is invited to complete the survey. We’ll survey 4000 people overall over the course of a week, three times. My experience is that once the survey is released, a bunch of people, at peak perhaps 100+, start responding at the same time. As a result, they will also all be redirected to the app at the same time, leading to a crunch for the server on which the app is deployed. When I ran a test yesterday with 20 people, of which about 10 people answered simultaneously, for about half of them the app froze and they could not complete the task.
I have absolutely no idea how to think about the resourcing the app would need. I asked a friend who works on backend and he said RAM is the likely culprit, and that he thinks this should be deployed on one “large” machine or two in parallel with a “load balancer”, in which case he’d recommend 2x 4GB RAM – but he has little context so this may be way off, and I understand barely what he is talking about.
Does that help? Thank you for helping me looking into this!
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.